C语言_算法_11

11.1 统计一片文章,分别统计其中的英文大写字母、小写字母、数字、空格、以及其他字符个数

#include <stdio.h>
#include<string.h>
int main()
{
	char str[]="hEL l Z ##**世界";
	int i,j=0,n=0,m=0,z=0,k=0;
	while(str[j]!='\0')
	{
		if((unsigned)str[j]>=161) {
			j++;
			i++;
		}else if(str[j]>='A'&&str[j]<='Z')n++;
			else if(str[j]>='a'&&str[j]<='z')m++;
				else if(str[j]==' ')k++;
					else	z++; 
			j++;
	}
		printf("中文字符:%d,英文小写字符:%d,英文大写字符:%d,空格字符:%d,其他字符:%d",i,m,n,k,z);
	return 0;
}

11.2 有一个一维数组,内存放10个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分

#include <stdio.h>
#include<string.h>
float Min,Max;
int main()
{
	float average(float score[],int n);
	float aver,score[10]={60,70,80,84,65,45,78,96,55,40};
	aver=average(score,10);
	printf("平均分:%.2f,最高分:%.2f,最低分:%.2f",aver,Max,Min);
	return 0;
}
float average(float score[],int n)
{
	int i;
	float aver=0,sum=score[0];
	Max=Min=score[0];
	for(i=01;i<n;i++){
		if(score[i]>Max)Max=score[i];
		else if(score[i]<Min)Min=score[i];
		sum +=score[i];
	} 
	aver=sum/n;
	return aver;
} 

11.3 输出1到5的阶乘

#include <stdio.h>
#include<string.h>
float Min,Max;
int main()
{
	int fac(int n);
	int i;
	for(i=1;i<6;i++){
	printf("%d!=%d\n",i,fac(i));	
	}
	return 0;
}
int fac(int n)
{
	static int f=1;
	f=f*n;
	return(f);
} 

11.4给定一个b值,求输入a和m,求a*b和a的m次方的值

#include <stdio.h>
#include<string.h>
float Min,Max;
int main()
{
	int power(int n,int a);
	int b=3,a=2;
	printf("a*b=%d,b**n=%d",a*b,power(4,2));
	
	return 0;
}
int power(int n,int a)
{
	int i,f;
	for(i=1;i<n;i++){
		f *=a;	
	}
	return(f);
} 

11.5 有一个字符串,内有若干个字符,现输入一个字符,要求删除字符串存在的相同字符删去   

#include <stdio.h>
#include<string.h>
int main()
{
	void deleteString(char str[],char s);
	char str[80],s;
	int i;
	printf("输入字符串:"); 
	gets(str);
	printf("输入要删除的字符s="); 
	scanf("%c",&s);
	deleteString(str,s);
	printf("%s",str); 
}
void deleteString(char str[],char s)
{
	int i,j;
	for(i=j=0;str[i]!='\0';i++)
		if(str[i]!=s)
			str[j++]=str[i];
	str[j]='\0';		
	
} 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值