实验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

 

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;
}

  

2

 

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;
	}
}

  

3

 

1:求N次方

2:是46740904EA38EA05A7B9AB1A58E5411A

 

#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;
}

  

4

 

#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);
	}

  

5

 

#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);
	}
}

  

5.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;
}

  

6

 

#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");
	}
}

  

7

 

7.1

 

posted @ 2025-10-28 14:47  W12341  阅读(5)  评论(1)    收藏  举报