以前写的C语言的小程序(七)(供学习C语言初期的练习和参考)统计一篇文章中的字符个数 验证哥德巴赫猜想 杨辉三角 以数组的形式输入10个数按从小到大排列 以数组的形式输入10个数求最大值

供初学者练习和参考使用,代码直接可以运行,这里我就不贴出结果截图了,可以自己运行看看。

1.统计一篇文章中的字符个数

#include <stdio.h>
int main()
{
	int i,j,a,b,c,d,e;
	a=b=c=d=e=0;
	char text[3][80];
	for(i=0;i<3;i++)
	{
		printf("请输入第%d行字符串:\n",i+1);
		gets(text[i]);
	}
	for(i=0;i<3;i++)
	{
	for(j=0;j<80&&text[i][j]!='\0';j++)
	{
		if('A'<=text[i][j]&&text[i][j]<='Z')
		a++;
		else if('a'<=text[i][j]&&text[i][j]<='z') 
		b++;
		else if('0'<=text[i][j]&&text[i][j]<='9')
		c++;
		else if(text[i][j]==' ')
		d++;
		else
		e++;	
	}
	}
	 printf("有英文大写字母%d个\n有英文小写字母%d个\n有数字%d个\n有空格%d个\n有其他字符%d个\n",a,b,c,d,e);
	 return 0;
}

2.验证哥德巴赫猜想

#include <stdio.h>
int primer(int n)
{
	int i,count=0;
	for(i=2;i<n;i++)
	{
		if(n%i!=0)
		count++;
	}
	if(count==n-2)
	return 1;
	else
	return 0;
}
int gotbaha(int m)
{
	int i;
	for(i=2;i<=m/2;i++)
	{
		if(primer(i)==1&&primer(m-i)==1)
		printf("%d=%d+%d  ",m,i,m-i);
	}
}
int main()
{
	int i;
	for(i=6;i<=100;i+=2)
	gotbaha(i);
	return 0;
}

3.杨辉三角(打印10行)

#include <stdio.h>
int main()
{
	int a[10][10];
	int i,j;
	for(i=0;i<10;i++)
	{
		a[i][0]=1;
		a[i][i]=1;
	}
	for(i=2;i<10;i++)
	{
		for(j=1;j<i;j++)
		a[i][j]=a[i-1][j]+a[i-1][j-1];	
	}
	for(i=0;i<10;i++)
	{
		for(j=0;j<20-2*i;j++)
		printf(" ");
		for(j=0;j<=i;j++)
		printf("%4d",a[i][j]);
		printf("\n");
	}
	return 0;
 } 

4.一个不多于5位的正整数求出它是几位数

#include <stdio.h>
int main()
{
	int a,b,c,d,e,f,g,h,count;
	count=0;
	printf("请输入一个不多于5位的正整数:");
	scanf("%d",&a);
	c=a;
	printf("按逆向输出每位数:");
	while(a!=0)
	{
		b=a%10;
		printf("%d ",b);
		count++;
		a=a/10;
	}
	 printf("\n");
	 printf("该数是一个%d位数\n",count);
	 
	 if(count==1)
	 printf("按正向输出每位数:%d",c);
	 else if(count==2)
	 {
	 	d=c%10;
	 	e=c/10;
	 	printf("按正向输出每位数:%d %d",e,d);
	 }
	 else if(count==3)
	 {
	 	d=c%10;
	 	e=c/10%10;
	 	f=c/100;
	 	printf("按正向输出每位数:%d %d %d",f,e,d);
	 }
	 else if(count==4)
	 {
	 	d=c%10;
	 	e=c/10%10;
	 	f=c/100%10;
	 	g=c/1000;
	 	printf("按正向输出每位数:%d %d %d %d",g,f,e,d);
	  } 
	 else if(count==5)
	 {
	 	d=c%10;
	 	e=c/10%10;
	 	f=c/100%10;
	 	g=c/1000%10;
		h=c/10000;
		printf("按正向输出每位数:%d %d %d %d %d",h,g,f,e,d);
	 }
	     
	 return 0;

}

5.以数组的形式输入10个数按从小到大排列

#include <stdio.h>
int main()
{
	int a[10];
	int min,i,j,t,z;
	printf("请输入10个整数:"); 
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
	for(j=0;j<10;j++)
	{
		min=a[j];
		z=j;
		for(i=j+1;i<10;i++)
		{
			if(min>a[i])
			{
				min=a[i];
				z=i;
			}	
		}
		if(z!=j)
		{
			t=a[j]; 
			a[j]=a[z];
			a[z]=t;				
		}	
	}
	for(i=0;i<10;i++)
	printf("%d ",a[i]);
	return 0;
}

6.以数组的形式输入10个数求最大值

#include <stdio.h>
int main()
{
	int a[10];
	int max,i,j,t;
	t=0;
	printf("请输入10个整数:"); 
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
	max=a[0];
	for(j=1;j<10;j++)
	{
		if(max<a[j])
		{
			max=a[j];
			t=j;
		}
		else
		max=max;
		
		
	}
	printf("max=a[%d]=%d",t,max);
	return 0;
}

7.以数组的形式输入10个数求最小值

#include <stdio.h>
int main()
{
	int a[10];
	int min,i,j,t;
	printf("请输入10个整数:"); 
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
	min=a[0];
	for(j=1;j<=10;j++)
	{
		if(min>a[j])
		{
			min=a[j];
			t=j+1;
		}
	}
	printf("min=a[%d]=%d",t,min);
	return 0;
}

8.用递归法将一个整数n转换成字符串

#include <stdio.h>
void fun(int n)
{
	if(n==0)
	return ;
	else
	fun(n/10);
	printf("%d",n%10);
	return ;	
}
int main()
{
	int n;
	printf("请输入一个整数:");
	scanf("%d",&n);
	fun(n);
	return 0;
}

发布了21 篇原创文章 · 获赞 11 · 访问量 1863

猜你喜欢

转载自blog.csdn.net/qq_42455308/article/details/104825044