回顾大一·C语言编程6.3(1)+7.1(1)(2)+7.2(1)(2)(3)+8.1(1)(2)(3)

分别用选择法和冒泡法对任意输入的N个不同的整数按升序排序并输出排序前后的各个数(提示:定义符号常量N代表需要排序的个数)。

选择法排序:


#include<stdio.h>
#define N 10
int main()
{
	int i,j,t,a[N];
	printf("please input N numbers: \n");
	for(i=0;i<N;i++)
		scanf("%d",&a[i]);
	printf("\n");
	for(j=0;j<N-1;j++)
		for(i=0;i<N-1-j;i++)
			if(a[i]>a[i+1])
			{
				t=a[i];
				a[i]=a[i+1];
				a[i+1]=t;
			}
			printf("the sorted numbers: \n");
			for(i=0;i<N;i++)
				printf("%d",a[i]);
			printf("\n");
			return 0;
}


程序的功能是:对从键盘输入的任意一串字符(长度不超过80),统计出各字母出现的次数(不区分大小写)


#include<stdio.h>
main()
{   int i,j,count[26]={0};  //存放各个字母出现的次数
    char letter[26],zfc[100];// zfc[100]存放输入的字符串
    for(i=0;i<26;i++)
        letter[i]='a'+i;
    printf("请输入一串字符:\n");
    gets(zfc);
	i=0;
    while(zfc[i]!='\0')
    {   for(j=0;j<26;j++)
            if(zfc[i]==letter[j]||zfc[i]+32==letter[j])
                count[j]++;
			i++;
    }
    for(i=0;i<26;i++)
        if(count[i]!=0)
            printf("字母%c出现%d次\n",letter[i],count[i]);
    printf("其它字母均未出现\n");
} 


程序的功能为:在一行文字中,删除其中某个字符,需要删除的字符由键盘输入。


#include<stdio.h>
#include<string.h>
main()
{		char line[80],ch;
		int i,j,len;
		printf("输入一串字符 \n");
		gets(line);
 		printf("输入要删除字符\n");
 		ch=getchar();
 		i=0; 
 		while(line[i]!='\0' )
   	{	while(line[i]!='\n'&& line[i]!=ch) 	i++;
    		len=strlen(line);
	  		for(j=i;j<len-1;j++)
				line[j]=line[j+1];  //串中待删除字符之后的字符依次向前移动一个位置。
	  		line[j]='\0';
   	}
   	puts(line);
 }


从键盘接受一个字符串,判定输入的字符串是否为回文(所谓回文是指正序和逆序排列结果是同样的,例如字符串abcdEdcba为回文)。


#include<stdio.h>
#include<string.h>
int main()
{
	int i,n;
	char a[20];
	printf("请输入一个字符串:\n");
	gets(a);
	n=strlen(a);
	for(i=0;i<n;i++)
	{
		if(a[i]==a[n-1-i])
			continue;
		else
			printf("此字符不是回文\n");
		break;
	}
	if(i>=n)
		printf("此字符是回文\n");
	return 0;
}

有一行电文,已经按照如下规律译成密码:AZaz),BYby),……即:第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程将密码(从键盘输入)译回原文,并输出密码和原文。


#include<stdio.h>
#include<string.h>
void main()
{
	int i;
	char a[26];
	char b[26];
	printf("请输入密码:\n");
	gets(a);
	for(i=0;i<26;i++)
	{
		if((a[i]>='A')&&(a[i]<='Z'))
			b[i]=155-a[i];
		else if((a[i]>='a')&&(a[i]<='z'))
			b[i]=219-a[i];
		else
			b[i]=a[i];
	}
	printf("原文是:\n");
	puts(b);
	return 0;
}


有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数


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


程序的功能是:在主函数中输入三角形的三个边长,如果边长合理,则调用自定义函数求出三角形面积;如果边长不合理,则重新输入三个边长直至合理。


#include <stdio.h>
#include <math.h>
float area(float a,float b,float c); 
main()                      //1
{ //2
float a,b,c;
printf("请输入三角形的三个边长值:\n"); //3
scanf("%f%f%f",&a,&b,&c);//4
while(!(a+b>c&&a+c>b&&b+c>a))//5  
{printf("不能构成一个三角形!\n");//6
printf("请重新输入三角形的三个边长值:\n");//7
scanf("%f%f%f",&a,&b,&c);//8
}
printf("Area=%f\n",area(a,b,c)); //9 
}
float area(float a,float b,float c)   //10 
{float s,area_s; //11
s=(a+b+c)/2.0; //12
area_s=sqrt(s*(s-a)*(s-b)*(s-c));//13
return area_s;//14
}


程序的功能是:输出如下图形(以第30列为对称轴)



#include<stdio.h>  
void a(int i)     //1
{	int j;             //2
	for(j=1;j<=7-i;j++)   //3 
		printf("%c",' ');  //4
	for(j=1;j<2*i;j++)    //5
	   	printf("%d", i );  //6
	printf("\n");         //7
}   
main()         //8
{  int i;       //9
   for(i=1;i<=7;i++)  a(i);   //10
   for(i=6;i>=1;i--)  a(i);   //11 
}


下列程序的功能为:输入N-100~100间的整数,若输入的数据不对,则重输,并计算其中的正整数之和。


#include<stdio.h>
#define N 10
int sum(int x[],int n)
{	 int i=0,s=0;
  while(i<=n)
  {
	  if(x[i]>0)
		  s=s+x[i]; i++;
  }
  return s;
}
main()
{		int i=0,s,a[N];
		do
     { 	printf("NO%d: ",i+1);
			scanf("%d",&a[i]);
			if((-100<=a[i])&&(a[i]<=100))
				i++;
			else
				printf("wrong! input again...\n");
     }while(i<N);
     s=sum(a,N);
	 	printf(" sum=%d\n",s);
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值