printf(\ scanf(\
printf(\
scanf(\ i=f=1; while(f<=n){
if(f>=m) printf(\ i++; f=fib(i); }
return 0; }
int fib(int n) {
int i,x1,x2,x;
if(n==1||n==2) return 1; else{ x1=x2=1; for(i=3;i<=n;i++){
x=x1+x2; x1=x2; x2=x; }
} return x; }
5. 使用函数验证哥德巴赫猜想:任何一个不小于 6 的偶数均可表示为两个奇素数之和。例如 6=3+3,8=3+5,…,18=5+13。将 6~100 之间的偶数都表示成两个素数之和,打印时一行打印 5 组。试编写相应程序。 解答:
#include
int count, i,number;
count=0;
for(number=6;number<=100;number=number+2){ for(i=3;i<=number/2;i=i+2)
if(prime(i)&&prime(number-i)){
printf(\ \
count++;
if(count%5==0) printf(\ } } return 0; }
int prime(int m) { }
6.使用函数输出一个整数的逆序数:输入一个整数,将它逆序输出。要求定义并调用函数 reverse(number),它的功能是返回 number 的逆序数。例如,reverse(12345)的返回值是 54321。试编写相应程序。 解答:
#include
int k,i;
for(i=2;i<=m/2;i++) if(m%i==0)return 0; if(i>m/2&&m!=1)return 1;
}
int number;
printf(\scanf(\printf(\ return 0;
int reverse(int number) { }
7.简单计算器:模拟简单运算器的工作:输入一个算式(没有空格),遇等号\说明输入结
int res,a; res=0;
while(number!=0){ a=number;
number=number; res=res*10+number; number=a/10;}
return res;
束,输出结果。假设计算器只能进行加、减、乘、除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。例如,输入“1+2*10-10/2=”后,输出 10。试编写相应程序。 解答:
#include
char op;
int operand1,operand2,res;
scanf(\ op=getchar(); while(op!='='){
scanf(\ switch(op){
case '+': res=operand1+operand2; break; case '-': res=operand1-operand2; break; case '*': res=operand1*operand2; break; case '/': res=operand1/operand2; break; default: res=0; }