C语言教程 第35页

C 练习实例31-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例31

C 练习实例31 C 语言经典100例 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> int main() { char i,j; printf("请输入第一个字母:\n"); scanf("%c",&i); getchar();//scanf("%c",&j);的问题,第二次是读入的一个换行符,而不是输入的字符,因此需要加一个getchar() 吃掉换行符 switch(i) { case 'm': printf("monday\n"); break; case 'w': printf("wednesday\n"); break; case 'f': printf("friday\n"); break; case 't': printf("请输入下一个字母\n"); scanf("%c",&j); if (j=='u') {printf("tuesday\n");break;} if (j=='h') {printf("thursday\n");break;} case 's': printf("请输入下一个字母\n"); scanf("%c",&j); if (j=='a') {printf("saturday\n");break;} if (j=='u') {printf("sunday\n"); break;} default : printf("error\n"); break; } return 0; } 以上实例输出结果为: 请输入第一个字母: s 请输入下一个字母 a saturday C 语言经典100例

C 练习实例26-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例26

C 练习实例26 C 语言经典100例 题目:利用递归方法求5!。 程序分析:递归公式:fn=fn_1*4! 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include <stdio.h> int main() { int i; int fact(); for(i=0;i<6;i++){ printf("%d!=%d\n",i,fact(i)); } } int fact(int j) { int sum; if(j==0){ sum=1; } else { sum=j*fact(j-1); } return sum; } 以上实例输出结果为: 0!=1 1!=1 2!=2 3!=6 4!=24 5!=120 C 语言经典100例

C 练习实例36 – 求100之内的素数-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例36 – 求100之内的素数

C 练习实例36 – 求100之内的素数 C 语言经典100例 题目:求100之内的素数。 程序分析:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> #include<math.h> int main() { int i,j,k,n=0; for(i=2;i<=100;i++) { k=(int)sqrt(i); for(j=2;j<=k;j++) if(i%j==0) break; if(j>k) { printf("%d ",i); n++; if(n%5==0) printf("\n"); } } return 0; } 以上实例输出结果为: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 C 语言经典100例

C 练习实例37 – 排序-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例37 – 排序

C 练习实例37 – 排序 C 语言经典100例 题目:对10个数进行排序。 程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> #define N 10 int main() { int i,j,a[N],temp; printf("请输入 10 个数字:\n"); for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) { int min=i; for(j=i+1;j<N;j++) if(a[min]>a[j]) min=j; if(min!=i) { temp=a[min]; a[min]=a[i]; a[i]=temp; } } printf("排序结果是:\n"); for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); return 0; } 以上实例输出结果为: 请输入 10 个数字: 23 2 27 98 234 1 4 90 88 34 排序结果是: 1 2 4 23 27 34 88 90 98 234 C 语言经典100例

C 练习实例14 – 将一个正整数分解质因数-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例14 – 将一个正整数分解质因数

C 练习实例14 – 将一个正整数分解质因数 C 语言经典100例 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。 (2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> int main() { int n,i; printf("请输入整数:"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) { while(n%i==0) { printf("%d",i); n/=i; if(n!=1) printf("*"); } } printf("\n"); return 0; } 以上实例输出结果为: 请输入整数:90 90=2*3*3*5 C 语言经典100例

C 练习实例24-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例24

C 练习实例24 C 语言经典100例 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。 程序分析:请抓住分子与分母的变化规律。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include <stdio.h> int main() { int i,t; float sum=0; float a=2,b=1; for(i=1;i<=20;i++) { sum=sum+a/b; t=a; a=a+b; b=t; } printf("%9.6f\n",sum); } 以上实例输出结果为: 32.660263 C 语言经典100例

C 从函数返回指针-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 从函数返回指针

C 从函数返回指针 C 指针 在上一章中,我们已经了解了 C 语言中如何从函数返回数组,类似地,C 允许您从函数返回指针。为了做到这点,您必须声明一个返回指针的函数,如下所示: int * myFunction() { . . . } 另外,C 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。 现在,让我们来看下面的函数,它会生成 10 个随机数,并使用表示指针的数组名(即第一个数组元素的地址)来返回它们,具体如下: #include <stdio.h> #include <time.h> #include <stdlib.h> /* 要生成和返回随机数的函数 */ int * getRandom( ) { static int r[10]; int i; /* 设置种子 */ srand( (unsigned)time( NULL ) ); for ( i = 0; i < 10; ++i) { r[i] = rand(); printf("%d\n", r[i] ); } return r; } /* 要调用上面定义函数的主函数 */ int main () { /* 一个指向整数的指针 */ int *p; int i; p = getRandom(); for ( i = 0; i < 10; i++ ) { printf("*(p + [%d]) : %d\n", i, *(p + i) ); } return 0; } 当上面的代码被编译和执行时,它会产生下列结果: 1523198053 1187214107 1108300978 430494959 1421301276 930971084 123250484...

C 练习实例11-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例11

C 练习实例11 C 语言经典100例 题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可) 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21….,即下个月是上两个月之和(从第三个月开始)。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> int main() { int f1=1,f2=1,i; for(i=1;i<=20;i++) { printf("%12d%12d",f1,f2); if(i%2==0) printf("\n"); f1=f1+f2; f2=f1+f2; } return 0; } 以上实例输出结果为: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 C 语言经典100例

C 练习实例21-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例21

C 练习实例21 C 语言经典100例 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断。 1) 设x1为前一天桃子数,设x2为第二天桃子数, 则: x2=x1/2-1, x1=(x2+1)*2 x3=x2/2-1, x2=(x3+1)*2 以此类推: x前=(x后+1)*2 2) 从第10天可以类推到第1天,是一个循环过程。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include <stdio.h> #include <stdlib.h> int main(){ int day, x1 = 0, x2; day=9; x2=1; while(day>0) { x1=(x2+1)*2; // 第一天的桃子数是第2天桃子数加1后的2倍 x2=x1; day--; } printf("总数为 %d\n",x1); return 0; } 以上实例输出结果为: 总数为 1534 C 语言经典100例

C 练习实例18-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 练习实例18

C 练习实例18 C 语言经典100例 题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 程序分析:关键是计算出每一项的值。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> int main() { int s=0,a,n,t; printf("请输入 a 和 n:\n"); scanf("a=%d,n=%d",&a,&n); t=a; while(n>0) { s+=t; a=a*10; t+=a; n--; } printf("a+aa+...=%d\n",s); return 0; } 以上实例输出结果为: 请输入 a 和 n: a=2,n=5 a+aa+...=24690 C 语言经典100例