C语言一些较重要的例题

上传人:宝路 文档编号:21534103 上传时间:2017-11-24 格式:DOC 页数:18 大小:178.56KB
返回 下载 相关 举报
C语言一些较重要的例题_第1页
第1页 / 共18页
C语言一些较重要的例题_第2页
第2页 / 共18页
C语言一些较重要的例题_第3页
第3页 / 共18页
C语言一些较重要的例题_第4页
第4页 / 共18页
C语言一些较重要的例题_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C语言一些较重要的例题》由会员分享,可在线阅读,更多相关《C语言一些较重要的例题(18页珍藏版)》请在金锄头文库上搜索。

1、- 1 -一些较重要的例题一例 6.1 求 1+2+3+100,即解题思路:这是累加问题,需要先后将 100 个数相加要重复 100 次加法运算,可用循环实现后一个数是前一个数加 1 而得加完上一个数 i 后,使 i 加 1 可得到下一个数。#include int main()int i=1,sum=0; while (i#include main() int n;double term, sum = 0; /*累加求和变量赋初值*/for (n=1; nmain() int n;double term = 1, sum = 1;/*累乘求积、累加求和变量赋初值*/for (n=2; nin

2、t main() int i,j,n=0;for (i=1;i#define SUM 100000int main() float amount,aver,total; int i;for (i=1,total=0;i=SUM) break; aver=total / i ; printf(“num=%dnaver=%10.2fn”,i,aver); return 0;例 6.6 要求输出 100200 之间的不能被 3 整除的数。编程思路:对 100 到 200 之间的每一个整数进行检查如果不能被 3 整除,输出,否则不输出无论是否输出此数,都要接着检查下一个数(直到 200 为止)。循环体

3、如下:for(n=100;n#include int main() int sign=1; double pi=0,n=1,term=1;while(fabs(term)=1e-6) pi=pi+term;n=n+2; sign=-sign; term=sign/n; pi=pi*4; printf(pi=%10.8fn,pi); return 0;例 6.8 求费波那西(Fibonacci)数列的前 40 个数。这个数列有如下特点:第1、2 两个数为 1、1。从第 3 个数开始,该数是其前面两个数之和。即:#include int main() int f1=1,f2=1,f3; int i

4、;printf(%12dn%12dn,f1,f2);for(i=1; iint main() int f1=1,f2=1; int i;for(i=1; imain() int x,y,z;printf(Man t Women t Childernn);for (x=0; x main() int x,y,z;printf(Man t Women t Childernn);for (x=0; xint main() int n,i;printf(“n=?); scanf(%d,&n);for (i=2;i=k+1) printf(%d ,n); m=m+1; if(m%10=0) printf

5、(“n”); 例 7.1 对 10 个数组元素依次赋值为 0,1,2,3,4,5,6,7,8,9,要求按逆序输出。解题思路:定义一个长度为 10 的数组,数组定义为整型要赋的值是从 0 到 9,可以用循环来赋值用循环按下标从大到小输出这 10 个元素#include int main() int i,a10;for (i=0; i=0; i-)printf(%d ,ai);printf(n);return 0;例 7.2 用数组处理求 Fibonacci 数列问题解题思路:例 6.8 中用简单变量处理的,缺点不能在内存中保存这些数。假如想直接输出数列中第 25 个数,是很困难的。如果用数组处理

6、,每一个数组元素代表数列中的一个数,依次求出各数并存放在相应的数组元素中#include - 7 -int main() int i; int f20=1,1; for(i=2;iai+1) t=ai;ai=ai+1;ai+1=t;printf(the sorted numbers :n);for(i=0;iint main() int a23=1,2,3,4,5,6;int b32,i,j;printf(array a:n);for (i=0;imax) max=aij; row=i; colum=j; printf(max=%dnrow=%dn colum=%dn,max,row,colu

7、m);从键盘输入某班学生某门课的成绩(每班人数最多不超过 40 人,具体人数由键盘输入) ,试编程打印最高分及其学生学号。从键盘输入学生人数 n;从键盘输入所有学生的学号和成绩分别存入数组 num 和 score假设其中的一个学生成绩为最高,同时记录其学号,即令maxScore = score0maxNum = num0;对所有学生成绩进行比较,即for (i=0; i maxScore,则修改 maxScore 值为 scorei,- 9 -并记录其学号 maxNum = numi;打印最高分 maxScore 及其学号 maxNum;#include #define ARR_SIZE 40

8、main() float scoreARR_SIZE, maxScore;int n, i;long maxNum, numARR_SIZE;/输入学生成绩及学号printf(Please enter total number:);scanf(%d, &n); printf(Please enter the number and score:n);for (i=0; i maxScore) maxScore = scorei; maxNum = numi; printf(maxScore = %.0f, maxNum = %ldn, maxScore, maxNum); 例 7.7 输出一个已

9、知的字符串。解题思路:定义一个字符数组,并用“初始化列表”对其赋以初值用循环逐个输出此字符数组中的字符#include int main() char c15=I, ,a,m, ,a, ,s,t,u,d,e,n,t,.;int i;for(i=0;iint main() char diamond5= , ,*, ,*, ,*,*, , , ,*, ,*, ,*, , ,*;int i,j;for (i=0;i#includeint main ( )char str310; char string10; int i;for (i=0;i0)strcpy(string,str0); else st

10、rcpy(string,str1); if (strcmp(str2,string)0)strcpy(string,str2); printf(nthe largest:n%sn,string); return 0;例 8.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。解题思路:(1)函数名应是见名知意,今定名为 max(2) 由于给定的两个数是整数,返回主调函数的值(即较大数)应该是整型(3)max 函数应当有两个参数,以便从主函数接收两个整数,因此参数的类型应当是整型max 函数:int max(int x,int y)int z; z=xy?x:y; return(z);

11、 例 8.5 输入 4 个整数,找出其中最大的数。用函数的嵌套调用来处理。解题思路:main 中调用 max4 函数,找 4 个数中最大者max4 中再调用 max2,找两个数中的大者max4 中多次调用 max2,可找 4 个数中的大者,然后把它作为函数值返回 main函数main 函数中输出结果#include int main() int max4(int a,int b,int c,int d); int a,b,c,d,max;printf(“4 interger numbers:); scanf(%d%d%d%d,&a,&b,&c,&d); max=max4(a,b,c,d); p

12、rintf(max=%d n,max); - 12 -return 0; int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); int max2(int a,int b) return(ab?a:b); 例 8.6 有 5 个学生坐在一起问第 5 个学生多少岁?他说比第 4 个学生大 2 岁问第 4 个学生岁数,他说比第 3 个学生大 2 岁问第 3 个学生,又说比第 2 个学生大 2 岁问第 2 个学生,说比第 1 个学

13、生大 2 岁最后问第 1 个学生,他说是 10 岁请问第 5 个学生多大#include int main() int age(int n);printf(NO.5,age:%dn,age(5); return 0; int age(int n) int c; if(n=1) c=10; else c=age(n-1)+2; return(c); 例 8.8 用递归方法求!。解题思路:求!可以用递推方法:即从开始,乘,再乘一直乘到。递推法的特点是从一个已知的事实(如 1!=1)出发,按一定规律推出下一个事实(如 2!=1!*2),再从这个新的已知的事实出发,再向下推出一个新的事实(3!=3*2

14、!)。n!=n*(n-1)!。#include int main()int fac(int n); int n; int y;printf(input an integer number:);scanf(%d,&n); y=fac(n);printf(%d!=%dn,n,y);- 13 -return 0;int fac(int n) int f;if(nbi6 次,biai3 次,其中 i 每次为不同的值),则认为 a数组大于 b 数组,并分别统计出两个数组相应元素大于、等于、小于的次数。 #include void main() int large(int x,int y); /* 函数声明 */int 10,10,,;/输入数组 aprintf(enter array a

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号