- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
循环结构作业2:编程练习
注:请将调试成功的程序代码(或截图)拷贝到后面的作业模板中,打印出待提交,同时请保存好作业的电子版。
1.编写程序,要求找到用户输入的一串数中的最大值。程序需要提示用户一个一个输入数。当用户输入0或负数时, 程序必须显示输入的最大非负数:
Enter a number : 60
Enter a number : 38.3
Enter a number : 4.89
Enter a number : 100.62
Enter a number : 75.2295
Enter a number : 0
The largest number entered was 100.62
注意,输入的数不要求一定是整数。(While)
#includestdio.h
int main()
{
float a=1,b=0;
while(a0)
{
printf(Enter a number :);
scanf(%f,a);
if(ab)
b=a;
}
printf(The largest number entered was :%f\n,b);
}
编写程序,要求用户输入两个整数然后计算并显示这两个整数的最大公约数(GCD):
Enter two integers: 12 28
Greatest common divisor :4
提示:求最大公约数的经典算法是Euclid算法,方法如下:分别让变量m 和n存储两个数的值,始终保证m最后存储的是两个数中较大的值;用m除以n;把除数保存在m中,而把余数保存在n中;如果n为0,那么停止操作,m中的值是GCD;否则,从m除以n开始重复上述除法过程。 (While)
#includestdio.h
int main()
{
int m,n,t;
printf(Enter two integers :);
scanf(%d%d,m,n);
if (nm)
{t=m;m=n;n=t;}
while(n!=0)
{
t=m;
m=n;
n=t%n;
if (nm)
{t=m;m=n;n=t;}
}
printf(The largest number entered was :%d \n,m);
}
编写程序(While),要求用户输入一个分数,然后将其约分为最简分式:
Enter a fraction:6/12
In lowest terms:1/2
#includestdio.h
int main()
{
int m,n,t,a,b;
printf(Enter a fraction :);
scanf(%d/%d,m,n);
a=m;b=n;
if (nm)
{t=m;m=n;n=t;}
while(n!=0)
{
t=m;
m=n;
n=t%n;
if (nm)
{t=m;m=n;n=t;}
}
a=a/m;b=b/m;
printf(The largest number entered was :%d/%d \n,a,b);
}
编写程序可,实现1位或者多位数的反向输出。例如输入12345,则输出54321。提示:使用do_while循环重复执行求余和求商操作,让求出的商重置该数,直到值达到0为止。而余数r则通过算式n=n*10+r重复累加到新数n上。
#includestdio.h
int main()
{
int a;
int b = 0;
scanf(%d,a);
do
{
b = b * 10 +(a % 10);
a = a / 10;
}while( a );
printf(%d\n,b);
}
编写程序,将输入的一个长整型数x中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:程序运行时输入:124578902,程序输出:24802. 若输入:1357,输出:0
#includestdio.h
int main()
{
int a,c=0,i=0;
int b = 0;
scanf(%d,a);
do
{
b=a%10;
a =a/10;
if(b%2==0)
{ if(i=0)
{c=b;i++;}
else
{ c=b*i*10+c; i++;}
文档评论(0)