实验3-1 分别使用while循环、do while循环、for循环求 (即求1+2+3+ ……+100)。
#include <stdio.h>
int main(){
//For
int i,sum=0;
for(i=1;i<=100;i++)
sum+=i;
printf("sum=%d\n",sum);
//While
i=1;
sum=0;
while(i<=100){
sum=sum+i;
i++;
}
printf("sum=%d\n",sum);
return 0;
}
实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
#include<stdio.h>
int main(){
int n,i,jiec=1;
printf("请输入一个整数n:");
scanf("%d",&n);
i=n;
while(i>1){
jiec=jiec*i;
i--;
}
printf("%d!=%d\n",n,jiec);
return 0;
}
实验3-3 求 。
#include<stdio.h>
int main()
{
int k,sum=0;
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.0/k;
printf("sum=%d\n",sum);
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>='0'&&c<='9')
sz++;
else
qt++;
}
printf("字母个数;%d\n",zm);
printf("空格个数;%d\n",kg);
printf("数字个数;%d\n",sz);
printf("其他字符个数;%d\n",qt);
return 0;
}
实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
#include<stdio.h>
int main()
{
int m,n,t,i,gys=1,gbs;
printf("请输入两个整数;");
scanf("%d%d",&m,&n);
if(n>m){
t=m;
m=n;
n=t;
}
for(i=n;i>=1;i--)
if(m%i==0&&n%i==0)
break;
printf("m=%d,n=%d",m,n);
if(i!=0){
gys=i;
printf(",最大公约数为;%d\n",gys);
}
gbs=m*n/gys;
printf("最大公倍数为;%d\n",gbs);
return 0;
}
实验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);
}
return 0;
}