• 最后一次作业


    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("
    ");
    }
    
  • 相关阅读:
    KBMMW 4.80.00 发布
    RCF库ClientStub.setAutoReconnect
    编译 boost
    2017学习计划
    _beginthreadex注意事项
    push_back模式工作
    总结2016
    <转>好婚姻是彼此放心
    ProcessExplore 最新版
    网站seo新手快速提升自己的技巧
  • 原文地址:https://www.cnblogs.com/jyt1998/p/6189597.html
Copyright © 2020-2023  润新知