C语言程序设计循环语句实验报告.docx

上传人:b****7 文档编号:10182466 上传时间:2023-02-09 格式:DOCX 页数:14 大小:352.09KB
下载 相关 举报
C语言程序设计循环语句实验报告.docx_第1页
第1页 / 共14页
C语言程序设计循环语句实验报告.docx_第2页
第2页 / 共14页
C语言程序设计循环语句实验报告.docx_第3页
第3页 / 共14页
C语言程序设计循环语句实验报告.docx_第4页
第4页 / 共14页
C语言程序设计循环语句实验报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言程序设计循环语句实验报告.docx

《C语言程序设计循环语句实验报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计循环语句实验报告.docx(14页珍藏版)》请在冰豆网上搜索。

C语言程序设计循环语句实验报告.docx

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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1