#include <stdio.h>
int sign(int x)
{
if(x>0)
return 1;
else if(x==0)
return 0;
else
return -1;
}
int even(int n)
{
int x;
if(n%2==0)
x=1;
else
x=0;
return x;
}
int prime(int m)
{
int i;
for(i=2;i<=m;i++){
if(m%i==0)
return 0;
else
return 1;
}
}
int countdigit(int number,int digit)
{
int count,i;
count=0;
i=0;
while(number%10!=0){
i=number%10;
number=number/10;
if(i==digit)
count++;
}
return count;
}
int is(int number){
int a,b,c;
a=number/100;
b=number/10-a*10;
c=number%10;
if(number==a*a*a+b*b*b+c*c*c)
return 1;
else
return 0;
}
int main()
{
int choice=1;
int n,y,sum=0,x;
int m,i,count;
int number,digit;
do{
printf("****实验六:函数****\n");
printf("****1.计算并输出分段函数f(x)的值****\n");
printf("****2.使用函数求奇数和****\n");
printf("****3.计算素数个数并求和****\n");
printf("****4.统计制定数字的个数****\n");
printf("****5.输出m~n之间所有的水仙花数****\n");
printf("****0.退出****\n");
printf("请选择题号:");
scanf("%d",&choice);
switch(choice){
case 1:
printf("请输入x:");
scanf("%d",&x);
printf("f(%d)=%d\n",x,sign(x));
break;
case 2:
do{
scanf("%d",&n);
if(n>0){
y=even(n);
if(y==0){
sum=sum+n;
}
}
}while(n>0);
printf("sum=%d\n",sum);
break;
case 3:
printf("输入两个整数m(m>1)和n(n<500):");
scanf("%d%d",&m,&n);
sum=0;
count=0;
for(i=1;i<=n;i++){
if(prime(i)==0){
count++;
sum+=prime(i);
}
}
printf("一共有%d个素数,sum=%d\n",count,sum);
break;
case 4:
digit=2;
printf("输入一个整数:");
scanf("%d",&number);
printf("%d中有%d个2\n",number,countdigit(number,digit=2));
break;
case 5:
int number,m,n,i;
printf("输入两个个整数m(m=>1)和n(n<=1000):");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++){
if(is(i)){
printf("%5d\n",i);
}
}
break;
case 0:break;
}
} while(choice!=0);
return 0;
}
一、知识点总结:
1.长度运算符:sizeof
2.单目运算符:计算变量或数据类型的字节长度
Int a;
Sizeof(a)
求整形变量a的长度,值为4(bytes)
Sizeof(int)
求整形的长度,值为4(bytes)
3.逗号表达式:
表达式1,表达式2,表达式3,.... 表达式N
4.++运算符:
自增,自减运算符使变量的值增1或减1。
有四种形式:i++ ++i i-- --i
5.算数表达式: 单目:+, -, ++, --
双目:+,-,*,/,%
6.赋值表达式: 简单赋值:=
复合赋值:+=,-=,*=,,/=%=,!=
7.关系表达式:>,>=,<,<=,!=
逻辑表达式:!,&&,||
条件表达式:?
逗号表达式:,
其他运算:sizeof
8.数组:数组必须先定义然后使用。C语言规定只能逐个引用,而不能一次引用整个数组。
对数组元素的初始化可以用以下方式实现:
①在定义数组时,对数组元素赋以初值。如:int a[10]={0,1,2,3,4,5,6,7,8,9};
②可以给一部分元素赋值。如:int a[10]={0,1,2,3,4},表示只给前五个元素赋初值,后五个元素自动赋予0值。
③对static数组不赋初值,系统会对所有元素自动赋予0值。即:如果想要使数组a中全部元素值为0,可以这样定义数组:static int a[5];