c语言回顾--函数
一、问题及代码:
/*
* 文件名称:函数回顾
* 完成日期:2016 年 3 月 2日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:使用函数解题
* 输入描述: 无
* 问题描述: 编制2个返回值为int型的函数,用于判断参数是否为素数
和回文,调用函数回答以下问题
(请包括在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)
* 程序输出:
(1)输出10000以内的所有素数。
(2)输出10000以内的所有回文数。
(3)输出10000以内的所有回文素数。
(4)若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。
* 问题分析: 无
* 算法设计: 无
*/
#include<stdio.h>
//判断是否为素数
int ifsu(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0) return 0;
}
if(n==1)return 0;
else return 1;
}
//判断是否为回文数
int ifhw(int n)
{
int a[20],i,j;
for(i=0;n>0;i++)
{
a[i]=n%10;
n/=10;
}
for(j=0;j<i/2;j++)
{
if(a[j]!=a[i-j-1]) return 0;
}
return 1;
}
//反转数值
zhuan(int n)
{
int a[20],i,j;
for(i=0;n>0;i++)
{
a[i]=n%10;
n/=10;
}
for(j=0;j<i;j++)
{
n+=a[j];
n*=10;
}
return n/10;
}
int main()
{
int i;
printf("1到100内的素数:\n");
for(i=1;i<100;i++)
{
if(ifsu(i))printf("%d ",i);
}
printf("\n1到1000内的回文数:\n");
for(i=1;i<1000;i++)
{
if(ifhw(i))printf("%d ",i);
}
printf("\n1到10000内的回文素数:\n");
for(i=1;i<10000;i++)
{
if(ifhw(i)&&ifsu(i))printf("%d ",i);
}
printf("\n1到10000内的可逆素数:\n");
for(i=1;i<10000;i++)
{
if(ifsu(i)&&ifsu(zhuan(i)))printf("%d ",i);
}
printf("\n");
return 0;
}
二、运行结果:
三、心得体会: ;
四、知识点总结: ;
还没有评论,来说两句吧...