C语言程序设计循环语句实验报告.docx
- 文档编号:3745668
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:14
- 大小:352.09KB
C语言程序设计循环语句实验报告.docx
《C语言程序设计循环语句实验报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计循环语句实验报告.docx(14页珍藏版)》请在冰点文库上搜索。
C语言程序设计循环语句实验报告
实验报告
专业软件工程班级X班学号__姓名XXX
实验日期:
2014年10月16日报告退发(订正、重做)
课程C程序设计实验实验名称循环语句
一、实验目的
1 了解和掌握C语言中的循环语句;
2 掌握各类循环语句的区别和联系;
3 掌握break以及continue的用法;
二、实验环境(描述实验的软件、硬件环境)
1 软件环境:
windowsxp/win7等操作系统,MicrosoftVisualC++6.0编译器;
2 硬件环境:
PC机一台
三、实验内容、步骤和结果分析
题目一:
编程找出用户输入的一串数值中的最大数。
要求:
(1)需要提示用户一个一个地输入数据;
(2)当用户输入一个不大于0的数值时,表示输入结束。
此时应输出一串数值中的最大值;
#include
floatmain()
{
floatnumber,largest;
printf("Pleaseenterapositivenumber:
");
loop:
scanf("%f",&largest);
if(largest<=0)
{
printf("Sorry,youenterawrongfulnumber!
\nThefirstnumbermustbeapositivenumber!
\nPleasetryagain:
");
gotoloop;
}
/*引导用户第一个数字输入为正数,以便正确执行本程序*/
for(number=1;number>0;)
{
printf("Pleasecontinuetoenteranumber:
");
scanf("%f",&number);
if(number>=largest)
{
largest=number;
}
}
printf("Thelargestnumberenteredis:
%.2f\n",largest);
return0;
}
题目二:
编程程序计算两个正整数的最大公约数(GCD)
要求:
1 提示用户输入两个数;
2 输出最大公约数。
#include
#include
intmain()
{
floatnum1,num2;
printf("\n————————————这是求两个正整数最大公约数的程序————————————\n请输入两个正整数:
");
loop:
scanf("%f%f",&num1,&num2);
if(num1!
=0&&num2!
=0)
{
if(num1<0||num2<0)
{
num1=abs((int)num1);
num2=abs((int)num2);
//当用户输入为浮点型数据时强制转换为整形
//当用户输入为负数时取绝对值
}
}
else
{
printf("数字0不能求最大公约数!
\n********************************************************************************请重新输入:
");
gotoloop;
//当用户输入数字为0时提示用户重新输入
}
intGcd;
intgcd(intm,intn);
Gcd=gcd(num1,num2);
printf("\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为用户从键盘上输入的一个正整数。 #include #include main() { printf("\n————————————求解1/1! +1/2! +1/3! +……1/n! ————————————\nPleaseenterapositivenumber: "); floatsum=0,n; intnumber,i,j; scanf("%d",&number); if(number<=0) { number=abs(number);//当用户输入负数取绝对值 } for(i=1;i<=number;i++) { for(j=1,n=1;j<=i;j++) { n*=j;//求n! 赋值给n } sum+=1/n; } printf("sum=%.2f\n",sum); } 题目四: 编程打印出所有“水仙花数” 要求: 所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 如: 153=13+53+33 #include intmain() { printf("\n——————这是四个“水仙花数”——————\n"); inta,b,c; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;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 main() { printf("\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)&&(sen[i]<=90))) num1++; else if(sen[i]=='') num2++; else if(sen[i]>='0'&&sen[i]<='9') num3++; else num4++; i++; } printf("\n其中的英文字母个数为%d\n",num1); printf("\n其中的空格个数为%d\n",num2); printf("\n其中的数字个数为%d\n",num3); printf("\n其中的其他字符个数为%d\n\n",num4); } 题目六: 编程序找出三队赛手的名单 要求: 1 两个乒乓球队进行比赛,各出三人 2 甲队为a,b,c三人,乙队为x,y,z三人 3 已抽签决定比赛名单,a说他不和x比,c说他不和x,z比 #include main() { chara,b,c,x,y,z; printf("\n两个乒乓球队进行比赛,各出三人\n甲队为a,b,c三人,乙队为x,y,z三人\n已抽签决定比赛名单,a说他不和x比,c说他不和x,z比\n**********************************************************************\n"); printf("三队赛手的名单是: \n"); for(a='x';a<='z';a++) for(b='x';b<='z';b++) for(c='x';c<='z';c++) if(b! =a&&c! =a&&c! =b) if(a! ='x'&&c! ='x'&&c! ='z') printf("a--->%c\nb--->%c\nc--->%c\n",a,b,c); return0; } 题目七: 猴子吃桃问题 要求: 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 问第一天共摘了多少个桃子? #include intmain() { intday,sum; printf("\n问题: \n\t猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 问第一天共摘了多少个桃子? \n\n\n"); for(day=1,sum=1;day<10;day++) sum=(sum+1)*2; printf("答案: \n\t猴子第一天共摘了%d个桃子\n",sum); return0; } 题目八: 计算: a+aa+aaa+……(共n项)的结果 要求: a和n为从键盘上输入的两个正整数。 #include #include intmain() { printf("\t========计算: a+aa+aaa+……(共n项)的结果=========\n"); floatnum1,num2;//num代表底数,num2代表几个底数 printf("请输入第一个数(正整数): "); loop1: scanf("%f",&num1); if(num1<=0) { printf("\t注意: 第一个数必须大于0! \n请重新输入: "); gotoloop1; } printf("请输入第二个数(正整数): "); loop2: scanf("%f",&num2); if(num2<=0) { printf("\t注意: 第一个数必须大于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);//输出式子 } printf("\n"); return0; } 四、讨论 (1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 循环 语句 实验 报告