#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("****实验六:函数**** "); printf("****1.计算并输出分段函数f(x)的值**** "); printf("****2.使用函数求奇数和**** "); printf("****3.计算素数个数并求和**** "); printf("****4.统计制定数字的个数**** "); printf("****5.输出m~n之间所有的水仙花数**** "); printf("****0.退出**** "); printf("请选择题号:"); scanf("%d",&choice); switch(choice){ case 1: printf("请输入x:"); scanf("%d",&x); printf("f(%d)=%d ",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 ",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 ",count,sum); break; case 4: digit=2; printf("输入一个整数:"); scanf("%d",&number); printf("%d中有%d个2 ",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 ",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];