标签:load i++ inpu 利用 value res put 小吃 c语言
实验项目:循环结构实验
姓名:游文进 实验地点:514 实验时间:5.6
实验目的与要求:
1.掌握for,while,do...while语句用法
2.了解三种语句的区别与转换,适应性嵌套
3.掌握循环语句中break,continue改变顺序流程的方法
练习一:求数列第i项的值
编写程序求出1,1+2,1+2+3...第i项的值
main()
{
int n,k,s=0;
printf("Enter a numer: ");
scanf("%d",&n);
for(k=1;k<=n;k++)
{
s=s+k;
printf("%d ",s);
}
}
问题分析:探寻数列规律写入for循环,输出数值;
练习二:求数列前n项的值
main()
{
int n,i,j,sign=1;
float fac,sum;
printf("Plesae input value of n: ");
scanf("%d",&n);
sum=0.0;
for(i=1;i<=n;i++)
{
fac=1.0;
for(j=1;j<=2*i-1;j++)
{
fac=fac*j;
}
fac=fac*sign;
sum=sum+fac;
sign=-sign;
}
printf("sum=%0.f",sum);
}
问题分析:首先写好阶乘的代码,之后进行正负号的变换,再写项数值之和的代码,最后输出。
注意变量的类型
练习一
从键盘输入学生成绩,直至输入负数终止,输出最大最小值**
main()
{
float x,max,min;
printf("Please input scores:");
scanf("%f",&x);
max=min=x;
while(x>0)
{
if(x>max) max=x;
if(x<min) min=x;
scanf("%f",&x);
}
printf("\n max=%f \n min=%f",max,min);
}
问题分析:
先将输入第一个值赋给变量,第二个值嵌入循环将其写入if语句,进行比较,再重新赋值。直至循环中键入的值为负数;最后输出最大最小值。编写过程注意while语句循环条件。
练习二
求所有的水仙花数,三位自然数的百十个位上数值的立方和等于数本身的数称为水仙花数。
main()
{
int x,y,z,k=100;
while(k<=999)
{
x=k/100;
y=(k/10)%10;
z=k%10;
if(k==x*x*x+y*y*y+z*z*z)
printf("%d\n",k);
k++;
}
}
问题分析:
确定循环范围后,计算出百十个位上的值,之后利用if语句将满足条件的数进行输出,过程中注意立方xxx的书写,以及if语句的判断
求满足不等式1+1/2+1/3+1/4...1/n>input 的n值
main()
{
int n;
float sum ,value;
printf("Input value:");
scanf("%f",&value);
sum=0.0;
n=0;
do
{
++n;
sum=sum+1.0/(float)n;
}
while(sum<value);
printf("n=%d",n);
}
问题分析:编写过程中注意while语句条件,“;”。以及变量类型的设定。
输入四个字符型数字,将其十进制数显示出来。
main()
{
char c;
int k, data;
data=0;
for(k=0;k<4;k++)
{
while(1)
{
c=getchar();
if(c>=‘0‘&&c<=‘9‘)
break;
}
/*将数字转化为对应的十进制数*/
if(k==0)
data=data+(c-‘0‘)*1000;
if(k==1)
data=data+(c-‘0‘)*100;
if(k==2)
data=data+(c-‘0‘)*10;
if(k==3)
data=data+(c-‘0‘);
}
printf("Data=%d",data);
}
问题分析:明确变量类型后,将for与while嵌套,利用if语句进行变量类型转换
百马百担:100匹马驮100担货物,大3,中2,小1,求所有种组合,将其输出。
main()
{
int m,n,k;/*m,n,k分别代表大中小马*/
int sum=0;
printf("各种驮法如下:\n");
for(m=1;m<=100-m;m++)
for(n=1;n<=100-m;n++)
{
k=100-m-n;
if((m+n+k==100)&&(100==3*m+2*n+0.5*k))
{
printf("大马%d匹;中马%d匹;小马%d匹。\n",m,n,k);
sum++;
}
}
printf("共有%d种驮法。",sum);
}
问题分析:利用穷举法将组合列出,再利用if将满足的组合筛选出来,过程中注意if语句判断关系式的书写。
练习二
一正整数数列,前四项和为26,积为880,求该数列前六项值与和。
main()
{
int a,b,c,d,i,sum=0;
for(a=1;a<=26;a++)
{
for(d=1;d<=26;d++)
{
b=4*a+6*d;
c=a*a*a*a+6*a*a*a*d+11*a*a*d*d+6*a*d*d*d;
if(b==26&&c==880)
{
printf("数列初值为:%d 差值为:%d\n ",a,d);
printf("数列前六项的值为:\n");
for(i=0;i<6;i++)
{
printf("%d ",a+i*d);
sum=sum+a+i*d;
}
}
}
}
printf("\n前六项的和为:%d",sum);
}
问题分析:
利用第一个for循环然后穷举出首项,进行和与积计算,同样利用if进行唯一结果的输出,再计算前六项的值与和
练习三
食品分类:三个学生买小吃,共花费50元,大3,中2,小1.计算组合。
main()
{
int x,y,z,sum=0;
for(x=1;x<=30;x++)
{
for(y=1;y<=30;y++)
{
z=30-x-y;
if(50==3*x+2*y+z)
{
printf("大学生:%d 中学生:%d 小学生:%d \n",x,y,z);
sum=sum+1;
continue;
}
}
}
printf("共有%d种组合。",sum);
}
问题分析:穷举法,判断条件,输出,利用continue跳出内循环
main()
{
int i,j,k;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
k=j*i;
printf("%d*%d=%d ",j,i,k);
}
printf("\n");
}
}
1.利用不同语句进行程序设计,用来加深对语句的理解,
2.在语句需要嵌套时,判断外语句的优缺点再选用语句,例如while作为外语句需书写变量表达式在内部,要与循环体的内循环区分。
3.break用来终止循环,而不是终止所有程序语句,continue,可用来得到单次循环后输出数据后,跳出直接进行下一次循环。
标签:load i++ inpu 利用 value res put 小吃 c语言
原文地址:https://www.cnblogs.com/YWJN/p/14757309.html