实验3-1 分别使用while循环、do while循环、for循环求 (即求1+2+3+ ……+100)。
参考: 源码
方法一#include<stdio.h>
int main(){
int i,sum=0;
for(i=1;i<=100;i++)
sum+=1;
printf("sum=%d\n",sum);
return 0;
}
运行结果抓图
方法二 #include<stdio.h>
int main(){
int i,sum=0;
i=1;
while(i<=100){
sum+=i;
i++;
}
printf("%d\n",sum);
return 0;
} 方法三 #include<stdio.h>
int main(){
int i,sum=0;
i=1;
do{
sum+=i;
i++;
}while(i<=100);
printf("%d\n",sum);
return 0;
}
实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
提示:
1. 依照实验3-1求n!,其中n!=1*2*3……*n
源码
While方法:
#include <stdio.h>
int main(){
int i,sum=1,n;
i=1;
printf("请输入n的值:");
scanf("%d",&n);
while(i<=n)
{
sum=sum*i;
i++;
}
printf("sum=%d\n",sum);
return 0;
} do while:
include <stdio.h>
int main(){
int i,sum=1,n;
i=1;
printf("请输入n的值:");
scanf("%d",&n);
do{}
sum=sum*i;
i++;
}while(i<=n);
printf("sum=%d\n",sum);
return 0;
} For循环
#include <stdio.h>
int main(){
int i,sum=1,n;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;
printf("sum=%d\n",sum);
return 0;
} 运行结果抓图:
实验3-3 求 。
程序源码
#include<stdio.h>
int main(){
int k,sum=0,Z;
for(k=1;k<=100;k++)
sum +=k;
printf("sum=%d\n",sum); for(k=1;k<=50;k++)
sum= sum+k*k;
printf("sum=%d\n",sum); for(k=1;k<=10;k++)
sum= sum+1/k;
printf("sum=%d\n",sum);
Z=(sum +=k)+(sum= sum+k*k)+(sum= sum+1/k);
printf("Z=%d\n",Z);
return 0;
}
运行结果抓图
实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
实验提示: 程序源码
#include<stdio.h>
int main(){
char c;
int zm=0,sz=0,kg=0,qt=0;
while((c=getchar())!='\n'){
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
zm++;
else if(c==' ')
kg++;
else if(c<='9' && c>='0')
sz++;
else
qt++;
}
printf("字母数:%d\n",zm);
printf("数字个数:%d\n",sz);
printf("空格个数:%d\n",kg);
printf("其他个数:%d\n",qt);
return 0;
} 运行结果抓图
实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
程序源码
#include<stdio.h>
int main(){
int a,b,m,n;
printf("请输入正整数m和n:\n");
scanf("%d%d",&a,&b);
m=a;
n=b;
while(a!=b)
if(a>b)
a=a-b;
else
b=b-a;
printf("最大公约数为:%d\n",a);
printf("最小公倍数为:%d\n",m*n/a);
} 运行结果抓图
实验3-6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。
程序源码
#include<stdio.h>
int main(){
int n,k1,k2,k3;
for(n=100;n<=999;n++){
k1=n%10;
k2=n/10%10;
k3=n/100;
if(n==k1*k1*k1+k2*k2*k2+k3*k3*k3)
printf("%d\n",n);} } 运行结果抓图
实验心得:
还是有很多困难的地方,最大公倍数和最小公倍数用的时间最长,或许因为忘了所以耽误了很多的时间,sum*i这个语句一直没编辑正确,然后还要继续努力编辑,多写代码,目前写代码有一些思路,但是不是很明确以及准确还需要多多练习