文档详情

c语言经典问题课件.ppt

发布:2017-08-15约6.18千字共30页下载文档
文本预览下载声明
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ;main() { int i,j,k,n; printf(water flowernumber is:);   for(n=100;n1000;n++)   {    i=n/100;    j=n/10%10;    k=n%10;    if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)         printf(%-5d,n);       } printf(\n); };最大数问题:从键盘上任意输入10个整数,求出其中的最大数。 算法分析: (1)设第一个数就是最大数max; (2)若最大数max下一个数next,则该数应为所输入的所有数中的最大数(max← next),否则最大数保持不变; (3)n个数要进行n-1次比较;#include “stdio.h” main() {int max, next, n; scanf(“%d”,next); max=next; for (n=2;n=10; n++) {scanf(“%d”,next); if (nextmax) max=next; } printf(“max=%d\n”, max); };问题:求出以“9999”作为结束标志的一组整数的最大数。例如输入:123 45 5678 34 9999 67 23456,输出结果为5678,即对9999及其以后的数不作处理。;古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 即从第三项开始,其每一项是前两项之和 ;main() { long f1,f2; int i; f1=f2=1; for(i=1;i=20;i++)   { printf(%12ld %12ld,f1,f2);     if(i%2==0) printf(\n);     f1=f1+f2;     f2=f1+f2;   } };问题描述:5位跳水高手参加10米高台跳水决赛,有好事者让5人据实力预测比赛结果.   A选手说:B第二,我第三;   B选手说:我第二,E第四;   C选手说:我第一,D第二;   D选手说:C最后,我第三;   E选手说:我第四,A第一. 决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错.请编程解出比赛的实际名次.;#include iostream.h void main() { int cc1,cc2,cc3,cc4,cc5; int A,B,C,D,E; int g; for(A=1; A=5; A++) for(B=1; B=5; B++) for(C=1; C=5; C++) for(D=1; D=5; D++) for(E=1; E=5; E++) { cc1=((B==2)(!(A==3)))||((!(B==2))(A==3)); cc2=((B==2)(!(E==4)))||((!(B==2))(E==4)); cc3=((C==1)(!(D==2)))||((!(C==1))(D==2)); cc4=((C==5)(!(D==3)))||((!(C==5))(D==3)); cc5=((E==4)(!(A==1)))||((!(E==4))(A==1)); if(((cc1+cc2+cc3+cc4+cc5)==5)(A!=B)(A!=C)(A!=D)(A!=E)(B!=C)(B!=D)(B!=E)(C!=D)(C!=E)(D!=E)) {
显示全部
相似文档