C语言程序设计循环语句实验报告文档格式.docx
《C语言程序设计循环语句实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计循环语句实验报告文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
loop:
scanf("
%f"
&
largest);
if(largest<
=0)
{
printf("
Sorry,youenterawrongfulnumber!
\nThefirstnumbermustbeapositivenumber!
\nPleasetryagain:
gotoloop;
}
/*引导用户第一个数字输入为正数,以便正确执行本程序*/
for(number=1;
number>
0;
)
Pleasecontinuetoenteranumber:
scanf("
number);
if(number>
=largest)
{
largest=number;
}
Thelargestnumberenteredis:
%.2f\n"
largest);
return0;
}
题目二:
编程程序计算两个正整数的最大公约数(GCD)
1 提示用户输入两个数;
2 输出最大公约数。
math.h>
intmain()
floatnum1,num2;
\n————————————这是求两个正整数最大公约数的程序————————————\n请输入两个正整数:
%f%f"
num1,&
num2);
if(num1!
=0&
&
num2!
=0)
if(num1<
0||num2<
0)
{
num1=abs((int)num1);
num2=abs((int)num2);
//当用户输入为浮点型数据时强制转换为整形
//当用户输入为负数时取绝对值
}
else
数字0不能求最大公约数!
\n********************************************************************************请重新输入:
//当用户输入数字为0时提示用户重新输入
intGcd;
intgcd(intm,intn);
Gcd=gcd(num1,num2);
\n%.f和%.f的最大公约数为:
%d\n"
num1,num2,Gcd);
/*求两个数最大公约数算法*/
intgcd(intm,intn)
{
inta,b;
//小的为a,大的为b
if(m>
n)
{
a=n;
b=m;
}
if(m<
a=m;
b=n;
if(m==n)
returnm;
inttemp=0;
for(;
b%a!
=0;
a=temp%a)//b与a的相除的余数肯定含有最大公约数
temp=b;
b=a;
//每次计算之后将上一轮的a给下一轮temp计算,从余数里找
returna;
//当不满足循环条件时,a就为最大公约数
}
题目三:
编程求解:
1/1!
+1/2!
+1/3!
+……1/n!
其中n为用户从键盘上输入的一个正整数。
main()
\n————————————求解1/1!
————————————\nPleaseenterapositivenumber:
floatsum=0,n;
intnumber,i,j;
scanf("
%d"
if(number<
number=abs(number);
//当用户输入负数取绝对值
for(i=1;
i<
=number;
i++)
for(j=1,n=1;
j<
=i;
j++)
n*=j;
//求n!
赋值给n
sum+=1/n;
sum=%.2f\n"
sum);
题目四:
编程打印出所有“水仙花数”
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
如:
153=13+53+33
intmain()
\n——————这是四个“水仙花数”——————\n"
inta,b,c;
for(a=1;
a<
=9;
a++)
for(b=0;
b<
b++)
for(c=0;
c<
c++)
if(a*a*a+b*b*b+c*c*c==100*a+10*b+c)
printf("
%d%d%d\n"
a,b,c);
return0;
题目五:
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
1 屏幕提示用户输入一行字符,以回车键结束
2 分别输出这行字符中包含的英文字母、空格、数字和其他字符的个数
#include<
#defineSIZE100
\n请输入一行字符(统计字符个数):
\n"
charsen[SIZE];
gets(sen);
inti=0,num1=0,num2=0,num3=0,num4=0;
while(sen[i]!
='
\0'
if(((sen[i]>
=97)&
(sen[i]<
=122))||((sen[i]>
=65)&
=90)))
num1++;
else
if(sen[i]=='
'
num2++;
else
if(sen[i]>
0'
sen[i]<
9'
num3++;
else
num4++;
i++;
\n其中的英文字母个数为%d\n"
num1);
\n其中的空格个数为%d\n"
num2);
\n其中的数字个数为%d\n"
num3);
\n其中的其他字符个数为%d\n\n"
num4);
题目六:
编程序找出三队赛手的名单
1 两个乒乓球队进行比赛,各出三人
2 甲队为a,b,c三人,乙队为x,y,z三人
3 已抽签决定比赛名单,a说他不和x比,c说他不和x,z比
chara,b,c,x,y,z;
\n两个乒乓球队进行比赛,各出三人\n甲队为a,b,c三人,乙队为x,y,z三人\n已抽签决定比赛名单,a说他不和x比,c说他不和x,z比\n**********************************************************************\n"
三队赛手的名单是:
\n"
for(a='
x'
;
z'
for(b='
for(c='
if(b!
=a&
c!
=b)
if(a!
a--->
%c\nb--->
%c\nc--->
%c\n"
题目七:
猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
问第一天共摘了多少个桃子?
intday,sum;
\n问题:
\n\t猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。
\n\n\n"
for(day=1,sum=1;
day<
10;
day++)
sum=(sum+1)*2;
答案:
\n\t猴子第一天共摘了%d个桃子\n"
题目八:
计算:
a+aa+aaa+……(共n项)的结果
a和n为从键盘上输入的两个正整数。
\t========计算:
a+aa+aaa+……(共n项)的结果=========\n"
//num代表底数,num2代表几个底数
请输入第一个数(正整数):
loop1:
num1);
if(num1<
\t注意:
第一个数必须大于0!
\n请重新输入:
gotoloop1;
请输入第二个数(正整数):
loop2:
if(num2<
第一个数必须大于0\请重新输入:
gotoloop2;
}//保证用户输入的数字是正值
num1=int(num1);
num2=int(num2);
//保证用户输入的数字是整数
floatsum=0;
for(floatm=1;
m<
=num2;
m++)
for(floatn=1,temp=0;
n<
=m;
n++)
temp+=num1*pow(10,n-1);
//得出每项值
sum+=temp;
//求和
if(m==num2)
printf("
%.f=%.f"
temp,sum);
elseprintf("
%.f+"
temp);
//输出式子
四、讨论
(1)