2、确结果。#include#includemain(){intn,m,a,b,x;inti;printf("输入两整数mn:");scanf("%d%d",&a,&b);//输入两整数m=abs(a);//取绝对值n=abs(b);if(m==0
3、
4、n==0){printf("不能为0.");}else{if(n>m){x=m,m=n,n=x;}//m为较大的数,n为较小的数,m,n辗转相减。while(m-n!=0){x=abs(m-n);m=n;n=x;}//辗转相减法求得
5、最大公约数(m)i=abs(a*b/m);//i为最小公倍数printf("a,b最大公约数:%d",m);printf("a,b最小公倍数:%d",i);}}(2). 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。#include#includemain(){chars[200];//定义字符串数组intL,i,qt,kg,zmxx,zmdx,num;/
6、/定义计量数:长度、位置、其他、字母小写、大写、数字。qt=kg=zmxx=zmdx=num=0;//计量数初始化printf("字符串:");gets(s);//输入字符串L=strlen(s);//取得字符串长度for(i=0;i<=L;i++){//计量……if(s[i]==32){kg++;}//空格elseif(s[i]>=48&&s[i]<=57){num++;}//数字elseif(s[i]>=97&&s[i]<=122){zmxx++;}//小写字母elseif(s[i]>=65&&s[i]<=9
7、0){zmdx++;}//大写字母else{qt++;}//其他字符}qt=qt-1;//除去“ ”这一个位printf("空格:%d数字:%d字母:%d大写:%d小写:%d其他:%d",kg,num,zmdx+zmxx,zmdx,zmxx,qt);}(3). 用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。在得到正确结果后,请修改程序使所设的x初值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?修改程序,使之能输出迭
8、代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。#include#includemain(){inti;longdoubley,x,y1;x=1.5;for(i=1;i<=20;i++){y=2*pow(x,3)-4*pow(x,2)+3*x-6;y1=6*x*x-8*x+3;x=x-y/y1;printf("%dx=%.10f",i,x);}}可见,初始值不同,不影响结果,但影响迭代次数。(4). 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半
9、,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程序,并运行,检查结果是否正确。#includemain(){inta,i;a=1;printf("每天吃一半零2个.");printf("第%2d天不吃也只剩%4d只",10,a);for(i=10-1;i>0;i--){a
10、=(a+2)*2;printf("第%2d天未吃前剩下%4d只",i,a);}printf("第1天总共摘来了%4d只",a);}三、实验心得