最后一次作业

1.找出最长的字符串

#include<stdio.h>
#include<string.h>
int main()
{
	int i,t,m;
	char sx[80],smlen[80];
	printf("Input 5 strings:
");
	scanf("%s",sx);
	strcpy(smlen,sx);
	for(i=1;i<5;i++){
		scanf("%s",sx);
		if(strlen(smlen)<strlen(sx)){
			strcpy(smlen,sx);
		}
	}
	printf("maxlen is %s
",smlen);
	return 0;
}

2.分类统计字符个数

#include<stdio.h>
#include<string.h>
int main()
{
	char q[100];
	char *p;
 	int a=0,b=0,c=0,d=0,e=0,f=0,i;
	p=q;
	for(i=0;i<100;i++){
		q[i]=0;
	}	
	printf("请输入字符串:
");
    gets(p);
	for(i=0;i<100;i++)
	{
  		if(*p==0){
   			e++;f++;
  	}
  	else{
   		f=0;
	if(*p>64&&*p<91)
   		a++;
  	else if(*p>96&&*p<123)
   		b++;
  	else if(*p==32)
   		c++;
 	else if(*p>47&&*p<58)
   		d++;
  	else 
	  	e++;
  		p++; 
  	}
}
 	e=e-f;
 	printf("大写字母有%d个
",a);
 	printf("小写字母有%d个
",b);
 	printf("空格有%d个
",c);
 	printf("数字有%d个
",d);
 	printf("其他字符有%d个
",e);
 	return 0;
}

3.学生信息管理系统

#include<stdio.h>
#include<string.h>
struct student{	
	int sno;
	char name[20];
	float grade1,grade2,grade3;
	float avg;
};
int Count=0;
void new_stu(struct student stu[ ],int n);
void search_stu(struct student stu[ ],char *name);
void print_stu(struct student stu[ ]);
void avg_grade(struct student stu[ ]);
int main(void)
{
	int choice,n;
	char name[10];
	struct student stu[50];
	do{
		printf("*****学生管理系统*****
");
		printf("	1:输入学生信息
");
		printf("	2:输出学生信息
");
		printf("	3:计算平均成绩
");
		printf("	4:按姓名查找学生基本信息
");
		printf("	0:退出
");
		printf("请选择功能:");
		scanf("%d",&choice);
		switch(choice){
			case 1:
				printf("输入学生人数:");
				scanf("%d",&n);
				new_stu(stu,n); 
			break;
			case 2:
				print_stu(stu);
			break;
			case 3:
			avg_grade(stu);
				break;
			case 4:
				printf("请输入查询的联系人:"); 
				scanf("%s",name);
				search_stu(stu,name);
				break;
			case 0:
				break;	
		}
	}while(choice!=0);
	printf("谢谢您使用该学生管理系统!!
");
	return 0;
}
void print_stu( struct student stu[ ])
{
	printf("学生信息管理系统里的学生为:
");
	int i;
	for(i=0;i<Count;i++)
	{
		printf("%d %s %.2f %.2f %.2f
",stu[i].sno,stu[i].name,stu[i].grade1,stu[i].grade2,stu[i].grade3);
	}
}
void new_stu(struct student stu[ ],int n)
{
	int i;
	if(Count==50){
	printf("系统已满!!
");
	return ;
	}
	printf("请输入%d学生的学号:",n);
	printf("
");
	printf("请输入%d学生的姓名:",n);
	printf("
");
	printf("请输入%d学生的成绩1:",n);
	printf("
");
	printf("请输入%d学生的成绩2:",n);
	printf("
");
	printf("请输入%d学生的成绩3:",n);
	printf("
");
		for(i=Count;i<Count+n;i++){
		scanf("%d%s%f%f%f",&stu[i].sno,stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
	}
	Count=Count+n;
	}
void search_stu( struct student stu[],char *name)
{
	int i,flag=0;
	if(Count==0){
		printf("系统是空的!!");
		return ; 
	}
	for(i=0;i<Count;i++)
	if(strcmp(name,stu[i].name)==0)	{
		flag=1;
		break;
	}
	if(flag){
		printf("学号:%d  姓名:%s  ",stu[i].sno,stu[i].name);
		printf("成绩1:%.2f  成绩2:%.2f  成绩3:%.2f",stu[i].grade1,stu[i].grade2,stu[i].grade3);
	}
	else
	printf("无此学生!!");
	printf("
");
}
void avg_grade(struct student stu[ ])
{
	int i;
	if(Count==0){
	printf("该系统无学生!!");
	printf("
");
	return; 
}
	printf("输入每个学生的平均成绩:
");
	for(i=0;i<Count;i++){
		stu[i].avg=(stu[i].grade1+stu[i].grade2+stu[i].grade3)/3;
		printf("第%d个学生的平均成绩是;%.2f
",i+1,stu[i].avg);
	}
}

4.冒泡法进行排序

#include<stdio.h>
#include<string.h>
void sort( int a[], int n )
{
	int exchange,bound,i,j,t,k;
	exchange=n;
	i=1;
	do{
		bound=exchange;
		exchange=0;
		for(j=0;j<bound-1;j++){
			if(a[j]>a[j+1]){
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
				exchange=j+1;
			}
		}
		printf("第%d趟最后冒泡的位置exchange=%d",i,exchange);
			i++;
		for(k=0;k<n;k++)
			printf("%d",a[k]);
			printf("
");
	}while(exchange!=0);
}
int main()
{
	int i,a[50],n;
	printf("需要输入个数的个数:");
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	sort(a,n);
	printf("排序后的结果为:");
	for(i=0;i<n;i++)
		printf("%d",a[i]);
	printf("
");
	return 0;
}

5.报数游戏

#include<stdio.h>
void CountOff(int n,int m,int out[])
{
	int i,num[n];
	for(i=0;i<n;i++)
		num[i]=i+1;
	int total=0;
	int Rcount=0;
	int k=1;
	while(total<n){
		for(i=0;i<n;i++){
			if(num[i]){
				Rcount++;
				if(Rcount%m==0){
					out[total]=num[i];
					num[i]=0;
					total++;
				}
			}
		}
		printf("循环次数为:%d
",k);
		int j;
		for(j=0;j<total;j++)
			printf("%3d",out[j]);
			printf("
");
			k++;
	}
}
int main()
{
	int count,i,m,n,No;
	int outb[50];
	printf("Enter all people number n:");
	scanf("%d",&n);
	printf("Enter m(m<n):");
	scanf("%d",&m);
	CountOff(n,m,outb);
	printf("退出的顺序编号:");
	for(i=0;i<n;i++)
		printf("%3d",outb[i]);
	printf("
");
}
原文地址:https://www.cnblogs.com/jyt1998/p/6189597.html