实验3
一
#include<stdio.h>
char score_to_grade(int score);
int main()
{
int score;
char grade;
while(scanf("%d",&score)!=EOF)
{
grade=score_to_grade(score);
printf("分数:%d,等级:%c\n\n",score,grade);
}
return 0;
}
char score_to_grade(int score)
{
char ans;
switch(score/10)
{
case 10:
case 9: ans='A';break;
case 8: ans='B';break;
case 7: ans='C';break;
case 6: ans='D';break;
default: ans='E';
}
return ans;
}

1:分数划级,整形,字符形
2:从上往下一直运行,结果是E
二
#include<stdio.h>
int sum_digits(int n);
int main()
{
int n;
int ans;
while(printf("Enter n:"),scanf("%d",&n)!=EOF)
{
ans=sum_digits(n);
printf("n=%d,ans=%d\n\n",n,ans);
}
return 0;
}
int sum_digits(int n)
{
int ans=0;
while(n!=0)
{
ans+=n%10;
n/=10;
}
return ans;
}

1:所有位数上数字相加
2:能,改前迭代,改后递归
三
#include<stdio.h>
int power(int x,int n);
int main()
{
int x,n;
int ans;
while(printf("Enter x and n :"),scanf("%d%d",&x,&n)!=EOF)
{
ans=power(x,n);
printf("n=%d,ans=%d\n\n",n,ans);
}
return 0;
}
int power(int x,int n)
{
int t;
if(n==0)
return 1;
else if(n%2)
return x*power(x,n-1);
else
{
t=power(x,n/2);
return t*t;
}
}

1:求N次方
2:是
四
#include<stdio.h>
#include<stdlib.h>
int prime(int x);
int main()
{
int cnt=0,n=1;
printf("100以内的孪生素数:\n");
while(n<=100)
{
if(prime(n)&&prime(n+2))
{
cnt+=1;
printf("%d %d\n",n,n+2);
}
n++;
}
printf("100以内的孪生素数共有%d个",cnt);
system("pause");
return 0;
}
int prime(int x)
{
int i,flag=0;
for(i=2;i<=x/2;++i)
{
if(x%i==0)
{
flag=1;
break;
}
}
if(x<=1)
{
flag=1;
}
if(flag==0)
return x;
else
return 0;
}

五
#include<stdio.h>
int func(int n,int m);
int main()
{
int n,m;
int ans;
while(scanf("%d%d",&n,&m)!=EOF)
{
ans=func(n,m);
printf("n=%d,m=%d,ans=%d\n\n",n,m,ans);
}
return 0;
}
int func(int n,int m)
{
int i;
int sum2=1,sum3=1,sum1=1;
if(m>n||m<0)
return 0;
else if(m==0)
return 1;
else
{
for(i=1;i<=n;i++)
{
sum1=sum1*i;
}
for(i=1;i<=m;i++)
{sum2=sum2*i;
}
for(i=1;i<=n-m;i++)
{sum3=sum3*i;
}
}
return sum1/(sum2*sum3);
}

#include<stdio.h>
int func(int n,int m);
int main()
{
int n,m;
int ans;
while(scanf("%d%d",&n,&m)!=EOF)
{
ans=func(n,m);
printf("n=%d,m=%d,ans=%d\n\n",n,m,ans);
}
return 0;
}
int func(int n,int m)
{
int i,sum=0;
if(m>n||m<0)
return 0;
else if(m==0)
return 1;
else
{
return func(n-1,m)+func(n-1,m-1);
}
}

六
#include<stdio.h>
int gcd(int z,int x,int c);
int main()
{
int a,b,c;
int ans;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
ans=gcd(a,b,c);
printf(" 最大公约数:%d\n\n",ans);
}
return 0;
}
int gcd(int z,int x,int c)
{
int g,i,min=0;
min=(z<x)?z:x;
min=(min<c)?min:c;
for(i=1;i<=min;++i)
{
if(z%i==0&&x%i==0&&c%i==0)
g=i;
}
return g;
}

七
#include<stdio.h>
#include<stdlib.h>
void print_charman(int x);
int main()
{
int n;
printf("Enter n:");
scanf("%d",&n);
print_charman(n);
return 0;
}
void print_charman(int x)
{
int i,j,k;
for(i=2*x-1;i>=1;i=i-2)
{
int a=(2*x-1-i)/2;
for(j=0;j<a;j++)
{
printf("\t");
}
for(k=0;k<i;k++)
{
printf(" O \t");
}
printf("\n");
for(j=0;j<a;j++)
{
printf("\t");
}
for(k=0;k<i;k++)
{
printf("<H>\t");
}
printf("\n");
for(j=0;j<a;j++)
{
printf("\t");
}
for(k=0;k<i;k++)
{
printf("I I\t");
}
printf("\n\n");
}
}



浙公网安备 33010602011771号