在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
八、输出9*9口诀。 #include<stdio.h> int main() { int r[9]={1,2,3,4,5,6,7,8,9}; int c[9]={1,2,3,4,5,6,7,8,9}; int i,j; printf("0\t1\t2\t3\t4\t5\t6\t7\t8\t9\n"); for(i=1;i<10;i++) { printf("%d",i); for(j=1;j<10;j++) printf("\t%d",r[i-1]*c[j-1]); printf("\n"); } getch(); return 0; }
十一、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析:每个月新增的兔子对数取决于上上个月的兔子对数;假设第i月有x只兔子,设第(i+1)个月有y只兔子,则第(i+2)个月比第(i+1)个月新增兔子数量为x,即(x+y)只兔子; 归纳为:F(i+2)=F(i+1)+F(i); 同时本题中F(1)=F(2)=2;因此本题可用递归方法解决。
#include<stdio.h> int F_rabbit(unsigned int x) { if(x==0) return 0; if(x==1||x==2) return 2; else return F_rabbit(x-1)+F_rabbit(x-2); } int main() { int month_num; printf("请输入第几个月:\n"); scanf("%d",&month_num); printf("第%d个月总共有%d只兔子。\n",month_num,F_rabbit(month_num)); getch(); return 0; }
十二、判断101-200之间有多少个素数,并输出所有素数。 #include<stdio.h> int Is_Prime(int x) { int i; for(i=2;i<=(x/2);i++) if(x%i==0) break; if(i==x/2+1) return 1; else return 0; } int main() { int x,n=0; int Is_Prime(int); for(x=101;x<201;x++) { if(Is_Prime(x)) { printf("\t%d",x); n++; if(n%5==0) printf("\n"); } } printf("\n101~200之间共有%d个素数。\n",n); getch(); return 0; }
十三、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 #include<stdio.h> int main() { int a,b,c; for(a=1;a<10;a++) for(b=1;b<10;b++) for(c=1;c<10;c++) if((a*a*a+b*b*b+c*c*c)==(100*a+10*b+c)) printf("\t%d",100*a+10*b+c); getch(); return 0; }
十四、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:非质数的正整数的最小因数必为其最小的质因数,先求其最小质因数,在求原数除去这个最小质因数的最小质因数,以此类推,直至除运算后商为质数为止。 因此,设计一个可以返回最小质因数的函数,并循环调用它。 #include<stdio.h> int min_pfactor(int x) { int i; if(x<=3) return 0; for(i=2;i<=x/2;i++) if(x%i==0) break; if(i==(x/2+1)) return 0; else return i; } int main() { int x,a; printf("请输入一个正整数:\n"); scanf("%d",&x); if(!min_pfactor(x)) { printf("你输入的是一个素数!\n"); getch(); return 0; } else { printf("分解质因数为:%d=",x); while(a=min_pfactor(x)) { printf("%d*",a); x=x/a; } printf("%d",x); getch(); return 0; } }
十五、利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 #include<stdio.h> int main() { int score; printf("please input the score:\n"); scanf("%d",&score); printf("level is:%c",(score>=90)?'A':((score<60)?'C':'B')); getch(); return 0; }
十六、输入两个正整数m和n,求其最大公约数和最小公倍数。 #include<stdio.h> int max_factor(int a,int b) { if(!b) return a; else return max_factor(b,a%b); } int main() { int m,n; printf("请从大到小依序输入两个正整数:\n"); scanf("%d%d",&m,&n); printf("%d和%d的最小公约数为%d,最大公倍数为%d",m,n,max_factor(m,n),m*n/(max_factor(m,n))); getch(); return 0; }
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论