设为首页 收藏本站
开启辅助访问 快捷导航
菜单
猿人部落 主页 资讯 查看内容

基于二级C语言的一些经典小程序

2019-7-26 17:52 发布者: 克格勃 评论 0 查看 1533
版权声明:署名,答应他人基于本文举行创作,且必须基于与原先答应协议雷同的答应协议分发本文 (Creative Commons)
知识共享答应协议 版权声明:署名,答应他人基于本文举行创作,且必须基于与原先答应协议雷同的答应协议分发本文 (Creative Commons)
  • 数学公式类(较为简朴,这里不做功能叙述):
#include
int main()
{
	int n,i,d;
	double y=0.0;
	printf("please enter your ideal number\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		d=i*i;
		y+=1.0/d;
	}
	printf("The result is %f\n",y);
}
#include
int main()
{
	int i,n;
	double A=1.0;
	printf("Enter your ideal number:\n");
	scanf("%d",&n);
	for(i=2;i<=n;i++)//目标是为了A的值与i的值下标对应相当。
		A=1.0/(1+A);
	printf("The result is:%f\n",A);
}
  • 字符串类:

1.字符大VS小:

#include
void fun(char *s,int *a,int *b)
{
	while(*s)
	{
		if(*s>='A'&&*s<='Z')
			++*a;//留意这里万万不能用*a++,为确保万一可以接纳*a+=1来替换。
		if(*s>='a'&&*s<='z')
			++*b;
		s++;
	}
}
int main()
{
	char s[100];
	int upper=0,lower=0;
	printf("please enter a string:\n");
	gets(s);
	fun(s,&upper,&lower);
	printf("upper=%d lower=%d\n",upper,lower);
	return 0;
}

2.统计行式单词数:

#include
#include
int LINE_WORDS(char *s)
{
 int i,count=0;
 for(i=0;s[i]!='\0';i++)
	 if((s[i]!=' ')&&((s[i+1]==' ')||(s[i+1]=='\0')))//这里万万不能写成s[i++]如许的情势,s[i++]如许的情势在表现的照旧是s[i],i++先用后增!                                          
		 count++;
 return count;
}
 int main()
{
	char words[80];
	printf("Enter a string:\n");
	gets(words);//留意这里万万不能用scanf("%s",&words)!
	printf("The number of word is %d\n",LINE_WORDS(words));
	return 0;
}

3.搜索串中元音数:

#include
void fun(char *s,int num[5])//这个fun()函数太美丽了!
{

	//第一步:分配输出数组。
	int k,i=5;
	for(k=0;k<i;k++)
		num[k]=0;


  //第二步:给输出数组分配标识变量。
	for(;*s;s++)
		{
			i=-1;
			switch(*s)
		{
			case'A':
			case'a':
				{
					i=0;
					break;
				}
            case'E':
			case'e':
				{
					i=1;
					break;
				}
			 case'I':
			 case'i':
				{
					i=2;
					break;
				}
			case'O':
			case'o':
				{
					i=3;
					break;
				}
		     case'U':
			 case'u':
				{
					i=4;
					break;
				}
			}



			//统计各变量计数下的值。
             if(i>=0)
				 num[i]++;
	}
}
int main()
{
	char s[80];
	int num[5],i;
	printf("please enter a string:\n");
	gets(s);
	fun(s,num);
	for(i=0;i<5;i++)
		printf("%d\n",num[i]);
}

4.行式英文——首字母:

#include
#include
void upfst(char *p)
{
	int k=0;
	for(;*p;p++)//这种写法多用于处理处罚字符串标题。
		if(k)
		{
			if(*p==' ')
				k=0;
		}
		else
		{
			if(*p!=' ')
				{
					k=1;
					*p=toupper(*p);
			    }
		}
}//这个fun()函数非常美丽,值得学习。
int main()
{
	char chrstr[81];
	printf("please enter an English text line:\n");
	gets(chrstr);
	printf("\nBefore changing :\n%s",chrstr);
	upfst(chrstr);
	printf("\nAfter changing :\n%s\n",chrstr);
}

5.串值求和:

//这是一道好题。
#include
#include
#include//存储着isdight函数。
#define N 9

//接纳两个方法的利益在与优化与简便。
int string(char *s)
{
	int num=0;
	while(*s)
		if(isdigit(*s))//isdight函数:查抄参数是否为十进制的数组。
		{
			num=num*10+*s-'0';//这是本题的灵魂所在,字符与数值之间的转换。
			s++;
		}
		return num;
}
int fun(char *a,char *b)//一个方法套一个方法,克制了步伐的拖沓。
{
	return string(a)+string(b);
}



int main()
{
	char s1[N],s2[N];
	do
	{
		printf("Input string1:");
			gets(s1);
	}while(strlen(s1)>N);//这里接纳do...while是由于标题条件所限,必须先获取,才华判断。
	do
	{
		printf("Input string2:");
			gets(s2);
	}while(strlen(s2)>N);

    printf("The result is:%d\n",fun(s1,s2));
	return 0;
}

  • 数值生存:
#include
int main()
{
	float num=0.0;
	printf("Enter num:");
	scanf("%f",&num);
	printf("The original date is:%lf\n",num);
	
	num=((num*1000)+5)/10.0;
	num=(int)(num);
	num=float(num)/100.0;
    printf("The result :%f\n",num);
	return 0;        
}
  • 与矩阵及数组有关的一系列转化和求值:

1.边和均值:

#include
#include
#define N 5
double fun(int w[][N])
{
	int i,j,k=0;
	double sum=0.0;
	for(i=0;i<N;i++)
		for(j=0;j<N;j++)
			if(i==0||j==0||i==N-1||j==N-1)
			{
				sum+=w[i][j];
				k++;
			}
			return sum/k;
}

int main()
{
	int a[N][N],m,i,j;
	double s;
	printf("*** The array ***\n");
	for(i=0;i<N;i++)
	{
	   for(j=0;j<N;j++)
		{
			a[i][j]=rand()%20;
			printf("%4d",a[i][j]);
		}
		printf("\n");
	}
	s=fun(a);
	printf("***The result***\n");
	printf("The average sum is:%lf\n",s);
	return 0;
}

2,阵部倍值:

#include
#include
#define N 5
void fun(int a[][N],int m)
{
	int i,j;
	//
	for(j=0;j<N;j++)
		for(i=0;i<=j;i++)//类比于平面函数y=-x其在y>-x的线性规划标题。
			a[i][j]*=m;

	//
}
int main()
{
	int a[N][N],m,i,j;
    printf("       *** The array ***\n");
	//一个二维数组的构建遍历与配值。
		for(i=0;i<N;i++)
		{
			for(j=0;j<N;j++)
			{
				a[i][j]=rand()%20;
				printf(" %4d ",a[i][j]);
			}
			printf("\n");
		}
		//
		m=rand()%20;
		printf("             m= %d\n",m);
		fun(a,m);
		printf("       *** THE RESULT ***\n");
		for(i=0;i<N;i++)
		{
			for(j=0;j<N;j++)
				printf(" %4d ",a[i][j]);
			printf("\n");
		}
		return 0;
}

3,美满数组:

#include
#include
#define N 20
void fun(int *a)
{
	int i,x,n=0;
	x=rand()%20;
	while(n<N)
	{
		for(i=0;i<n;i++)
			if(x==a[i])
				break;
		if(i==n)
		{
			a[n]=x;
			n++;
		}
		    x=rand()%20;
	}
}

int main()
{
	int x[N]={0},i;
	fun(x);
	printf("The result :\n");
	for(i=0;i<N;i++)
	{
		printf("%4d",x[i]);
		if((i+1)%5==0)
			printf("\n");
	}
	return 0;
}

4, 行列转置:

#include
#include
void fun(int array[3][3])
{
	int i,j,t;
	for(i=0;i<3;i++)
		for(j=i+1;j<3;j++)//这里万万不能写成j=0;
		{
			t=array[i][j];
			array[i][j]=array[j][i];
			array[j][i]=t;
		}
}
int main()
{
	int i,j,array[3][3];
	printf("***The array***\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			array[i][j]=rand()%20;
			printf("%4d",array[i][j]);
		}
		printf("\n");
	}
	fun(array);
	printf("converted array:\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
			printf("%4d",array[i][j]);
		printf("\n");
	}
	return 0;
}

5,输出大于匀称值的数:

#include//此库在这里调用rand()函数.
#include
#define N 10
double OVER_AVE(int x[],int *y)
{
	int i,j=0;
	double av=0.0;
	for(i=0;i<N;i++)
		av+=x[i]/N;
	for(i=0;i<N;i++)
		if(x[i]>av)
			y[j++]=x[i];
		else
			y[j]=-



路过

雷人

握手

鲜花

鸡蛋
收藏 邀请
上一篇:Linux入门笔记(二)下一篇:干货分享:Totoro 在自动化测试领域的深耕与收获

相关阅读

一周热门

头条攻略!

日排行榜

相关分类