P10 3 #include \"stdio.h\" void main() { 3. printf(\"***********************\\n\"); #include \"stdio.h\" printf(\"* Hello, C program! *\\n\"); void main() printf(\"***********************\\n\"); { } int kt; double sum; 4. 解法一: printf(\"please input kua tuo shu:\\n\"); #include printf(\"%d * %d = %d\\n\ } int jie(int x, int y) { return (x * y); } 解法2:不用函数 #include printf(“Please input two number(like:3,5): \\n”); scanf(\"%d,%d\ result = a*b; printf(\"%d * %d = %d\\n\ } P27 2 从建盘上输入一个小写字母,编程输出 其对应的大写字母及十进制ASCII码。 #include \"stdio.h\" void main() { char xxzm; printf(\"please input one small char:\\n\"); scanf(\"%c\ xxzm=xxzm-32; printf(\"da xie zi mu is :%c,shi jin zhi Ascii is :%d\\n\} sum=kt*950/3.0e-23; printf(\"shui fen zi ge shu is :%f\\n\} P 62 3.7 1、输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身,例如,153是一个水仙花数,因为 解法1 main() { int ge,shi,bai,number; for(number=100;number<1000;number++) { bai=number/100; shi=(number%100)/10; ge=number%10; if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge) printf(\"\\n%d is.\\n\ } } 解法2 #include \"stdio.h\" main() { int i,j,k; for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) {if( (i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k))) printf(\"%d is \} 3.3 判断闰年: 算法:假设定义一个整型变量year,表示年份,若year能被4整除,但不能被100整除,或year能被400整除,即为闰年,否则不是闰年。 #include \"stdio.h\" void main () { int year; printf (“please input one year:\\n”); scanf (“%d”,&year); if (year%4==0&&((year%100!=0)||(year%400==0))) printf(“%d is a leap year.\\n ”,year); else printf(“%d is not a leap year.\\n ”,year); } 3.5 求2/1,3/2,5/3,8/5,13/8,21/13,…前20项的和。 #include float a=1.0,b=2.0,x,sum=0,c; for(n=1;n<21;n++) { x=b/a; sum=sum+x; c=a; //此处注意! a=b; b=b+c; } printf(\"The answer is %f\ } 3.8 求两个数a和b的最大公约数和最小公倍数。 #include printf(\"请输入2个数:\\n\"); scanf(\"%d%d\ if(m x=m;y=n; z=x%y; while(z!=0) /*用辗除法,直到b为0为止*/ { x=y; y=z; z=x%y; } printf(\"最大公约数:%d\\n\ printf(\"最小公倍数:%d\\n\} 3.6 猴子吃桃子问题。 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子。 #include int day,x1,x2; day=9; x2=1; while(day>0) { x1=(x2+1)*2 /*第一天的桃子数是第二天的挑子数加1后的2倍*/ x2=x1; day--; } Printf(\"total=%d\\n\} 运行结果为:total=1534 #include float a,b,c,deta,x1,x2,realpart,imagpart; scanf(\"%f,%f,%f\ //求实系数(a,b,c)的一元二次方程的根 if(b*b-4*a*c<0) { deta=sqrt(4*a*c-b*b); realpart=-b/(2*a); imagpart=deta/(2*a); printf(\"%8.2f+%8.2fi\\n\ printf(\"%8.2f-%8.2fi\\n\ x2=(-b-deta)/(2*a); } printf(\"%8.2f,%8.2f\\n\ else } { deta=sqrt(b*b-4*a*c); } x1=(-b+deta)/(2*a); 逆序输出一个三位数的整数。例如你输入的整数scanf(\"%d\是:321,那么输出的就是:123, bai=a/100; #include 逆序输出任意一个整数 while(t>0) #include \"stdio.h\" { void main() printf(\"%d\{ t/=10; int t; } printf(\"请输入一个整数!\"); } scanf(\"%d\ P42,5.输出所有水仙花数.所谓水仙花数是指一个3位数.其各位数字立方和等于该数本身 解法1 #include \"stdio.h\" main() { int i,j,k; for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) if( (i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k))) printf(\"%d%d%d \} 解法2 main() { int ge,shi,bai,number; for(number=100;number<1000;number++) { bai=number/100; shi=(number%100)/10; ge=number%10; if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge) printf(\"\\nnumber=%d\\n\ } P42.7输入一行字符,分别统计处其中大写英文字母、小写英文字母、数字、空格和其他字符的个数 #include } else if(c>='a'&&c<='z') b++; else if(c>='0'&&c<='9') d++; P42.8将一元人民币兑换成1,2,5分的硬币,有多少种换法? #include for(i = 0 ; i <= 20; i++) for(j = 0; j <= 50; j++) { k = 100 - i * 5 - j * 2; if(k >= 0) printf(\"%d %d %d\ } } 解法2 #include int i,j,k; for (i=0;i<=100;i++) for (j=0;j<=50;j++) for (k=0;k<=20;k++) if (i+j*2+k*5==100) printf(\"%d %d %d\ } 解法3 #include \"stdio.h\" void main() { int i,j,k; for (int i = 0; i <= 20; i++) //5分最多20个 { for (int j = 0; j <= (100-5*i)/2; j++) //2分最多(100-5*i)/2个 { for (int k = 0; k <= 100-5*i-2*j; k++) //1分最多100-5*i-2*j个 { if (i*5+j*2+k == 100) //如果加起来是1元 { printf(\"%d %d %d\ } } } } } P78.8 输入一个含若干字符的字符串,分别统计出其中的字母和数字的个数。 解法1 #include \"stdio.h\" main() { char a[100]; //用数组来做,定义大一点,但一定要有确定的大小。 int i,zm=0,sz=0; scanf(\"%s\或者用gets(a); for(i=0;a[i]!= '\\0';i++) { if(('a'<=a[i]&&a[i]<='z')||('A'<=a[i]&&a[i]<='Z') ) zm++; if('0'<=a[i]&&a[i]<='9') sz++; } printf(\"%d %d \} 解法2//类似的题,出成用函数来做。编写一个C语言其首部为 int fun( char s[]), 函数的功能为统计字符数组 s 中的英文字母的个数。 #include printf(\"please enter a string:\\n\"); gets(s); count=fun(s); P78.9选择法排序 #include\"stdio.h\" void main() {int a[10],i,j,minindex,temp; int a[10]={2,3,1,6,7,8,9,10,4,5}; //或 for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) { minindex=i; for(j=i+1;j<10;j++)//这是找出第i个最小的。 { 解法2:写成函数的形式 #include if(k!=i) {t=a[i]; a[i]=a[k]; a[k]=t; } } } main() { int a[10],i; for(i=0;i<10;i++) scanf(\"%d\sort(a,10); printf(\"排好序的数组是:\\n\"); for(i=0;i<10;i++) printf(\"count=%d\}