资源描述:
《c语言一些较重要的例题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一些较重要的例题一.例6.1求1+2+3+…+100,即解题思路:这是累加问题,需要先后将100个数相加要重复100次加法运算,可用循环实现后一个数是前一个数加1而得加完上一个数i后,使i加1可得到下一个数。#includeintmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}printf("sum=%d",sum);return0;}国王的许诺。相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。一位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就
2、在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。国王能兑现他的许诺吗?试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)总粒数为:sum=1+2+20+23+…+263方法1:#defineCONST1.42e8#include#includemain(){intn;doubleterm,sum=0;/*累加求和变量赋初值*/for(n=1;n<=64;n++){term=po
3、w(2,n-1);/*根据累加项的规律计算累加项*/sum=sum+term;/*作累加运算*/-18-}printf("sum=%e",sum);/*打印总麦粒数*/printf("volum=%e",sum/CONST);/*打印折合的总麦粒体积数*/}方法2:#defineCONST1.42e8/*定义符号常量CONST值为1.42e8*/#includemain(){intn;doubleterm=1,sum=1;/*累乘求积、累加求和变量赋初值*/for(n=2;n<=64;n++){term=term*2;/*根据后项总是前项的2倍计算累加项*/
4、sum=sum+term;/*作累加运算*/}printf("sum=%e",sum);/*打印总麦粒数*/printf("volum=%e",sum/CONST);/*打印折合的总麦粒体积数*/}例6.5输出以下4*6的矩阵。12346246810369121648121620解题思路:可以用循环的嵌套来处理此问题。用外循环来输出一行数据。用内循环来输出一列数据。按矩阵的格式(每行5个数据)输出。#includeintmain(){inti,j,n=0;for(i=1;i<=4;i++)for(j=1;j<=5;j++,n++){if(n%5==0)pri
5、ntf(“”);printf("%dt",i*j);}printf("");return0;}例6.4在全系1000学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。编程思路:循环次数不确定,但最多循环1000次-18-在循环体中累计捐款总数用if语句检查是否达到10万元如果达到就不再继续执行循环,终止累加计算人均捐款数变量amount,用来存放捐款数变量total,用来存放累加后的总捐款数变量aver,用来存放人均捐款数定义符号常量SUM代表100000#include#defineSUM100000intma
6、in(){floatamount,aver,total;inti;for(i=1,total=0;i<=1000;i++){printf("pleaseenteramount:");scanf("%f",&amount);total=total+amount;if(total>=SUM)break;}aver=total/i;printf(“num=%daver=%10.2f”,i,aver);return0;}例6.6要求输出100~200之间的不能被3整除的数。编程思路:对100到200之间的每一个整数进行检查如果不能被3整除,输出,否则不输出无论是否输出此数,都要接着检
7、查下一个数(直到200为止)。循环体如下:for(n=100;n<=200;n++){if(n%3==0)continue;printf("%d",n);}例6.7用公式求的近似值,直到发现某一项的绝对值小于10-6为止(该项不累计加)。解题思路:求π近似值的方法很多,本题是一种每项的分子都是1后一项的分母是前一项的分母加2第1项的符号为正,从第2项起,每一项的符号与前一项的符号相反。数据分析累加和存入pi累加项为t分母为n-18-符号为s#include