zoukankan      html  css  js  c++  java
  • 第二次作业

    作业要求一:
    作业截图:
    C高级第二次作业(1)
    6-7:

    6-8:

    6-9:

    7-1:

    C高级第二次作业(2):
    7-1:

    7-2:

    C高级第二次作业(3):
    6-1:

    6-2:

    作业要求二:
    6-7 删除字符串中数字字符
    1.实验代码:

    #include <stdio.h>
    void delnum(char *s);
    int main ()
    { char item[80];
    gets(item);
     delnum(item);
     printf("%s
    ",item);
     return 0;
    }
    void delnum(char *s)
    {
      int i=0,j=0;
      while(s[i]!=''){
        if(s[i]>'9'||s[i]<'0')
        {
          s[j]=s[i];
          j++;
        }
        i++;
      }
      s[j]='';
    }
    

    2.设计思路:
    第一步:本题要删除字符串中数字,通过数组遍历字符串,遇到数字删除,将之后的字符向前移动。
    第二步:定义变量ij,运用if判断字符串是否为数字,循环遍历字符串和ASCII码值达到目的。
    3.遇到问题:在运用while循环时出现编译错误,通过devc++提示改正
    4.流程图:

    6-8统计子串在母串出现的次数
    1.实验代码:

    #include<stdio.h>
    int fun(char *str,char *substr);
    int main()
    { char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
     int n;
     n=fun(str,substr);
     printf("n=%d
    ",n);
     return 0;
    }
    int fun(char *str,char *substr)
    {
        int i=0,num=0;
      
        do
    	{
            if(*(str+i)=='a'&&*(str+i+1)=='s'&&*(str+i+2)=='d')
    		{
                num++;
            }
            i++;
    	}while(*(str+i)!='');
        return num;
    } 
    

    2.设计思路:
    第一步:运用if语句和循环来遍历字符串和判断字符串是否为子串;
    第二步:遇到子串循环变量加一,循环至末尾输出。
    3.遇到问题:
    提交过程中遇到了很多次编译错误,通过devc++提示改正。
    几次答案错误是因为把I++放错了位置,仔细检查改正过来。

    6-9字符串中除首尾字符外的其余字符按降序排列
    1.实验代码:

    #include <stdio.h>
    int fun(char *s,int num);
    int main()
    {
     char s[10];
     gets(s);
     fun(s,7);
     printf("%s",s);
     return 0;
     }
    int fun(char *s,int num)
    {
        int i,j;
        char temp;
        for(i=0;i<num;i++)
        {
           for(j=1;j<num-2;j++)
           {
            if(s[j]<s[j+1])
           {
    	   temp=s[j]; 
    	   s[j]=s[j+1]; 
    	   s[j+1]=temp;
    	   }
    }
    }
    }
    

    2.设计思路:
    第一步:定义循环变量,运用循环遍历数组。
    第二步:运用冒泡法进行排序。
    3.遇到问题:没有遇到问题。

    7-1输出学生成绩
    1.实验代码:

    #include<stdio.h> 
    int main()
    {
    int n,i;
    float max,min=100,sum=0,x,average;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
    	scanf("%f ",&x);
    	if(x>max)
    	{
    		max=x;
    	}
    	if(x<min)
    	{
    		min=x;
    	}
    	sum=sum+x;
    	average=sum/n;
    }
    printf("average = %.2f
    ",average);
    printf("max = %.2f
    ",max);
    printf("min = %.2f",min);
    return 0;
    }
    

    2.设计思路:这道题运用了常规的思路,并没有想到如何运用指针。
    第一步:定义出各个变量。
    第二步:运用if语句和计算输出想要结果。
    3.遇到问题:这道题在提交的过程中也遇到了很多次错误,总的来说都是不够认真所导致。仔细检查后改正。

    7-1计算职工工资
    1.实验代码:

    #include<stdio.h>
    struct employees 
    {                                      
        char name[10];                 
        float basic,floating,out;
    }; 
    int main()
    {
        int n,i=0;
        scanf("%d",&n);
    	struct employees e[n];
    	for(i=0;i<n;i++)
    	{
            scanf("%s %f %f %f",e[i].name,&e[i].basic,&e[i].floating,&e[i].out);
        }
        for(i=0;i<n;i++)
        {
            printf("%s %.2f
    ",e[i].name,e[i].basic+e[i].floating-e[i].out);
        }
    }
    

    2.设计思路:
    第一步:定义一个结构体,其中含有名字,基本工资,浮动工资和支出。
    第二步;在函数中输入一个n,n为人数,运用循环输入各员工的数据,并输出结果。
    3.遇到问题:对于代码的检查不够仔细导致总是答案错误,最后发现输出结果中的e[i]错写为e[n]。
    4.流程图:

    7-2计算平均成绩
    1.实验代码:

    #include<stdio.h>
    #include<stdlib.h>
    struct student
    {
    	char name[10];
    	char num[5];
    	int score;
    };
    int main()
    {
    	int n,i=0;
    	float average,sum=0;
    	scanf("%d",&n);
    	struct student s[n];
    	for(i=0;i<n;i++){
    		scanf("%s %s %d",s[i].num,s[i].name,&s[i].score);
    		sum=sum+s[i].score;
    	}
    	average=(float)(sum/n*1.0);
    	printf("%.2f
    ",average);
    	for(i=0;i<n;i++)
    	{
    		if((float)(s[i].score)<average)
    		{
    			printf("%s %s
    ",s[i].name,s[i].num);
    		}
    	}
    }
    

    2.设计思路:
    第一步:依然是定义一个结构体,其中有姓名 学号和成绩;
    第二步:在函数中定义出n,i,sum,average,各值;
    第三步;运用循环输入数据,运用算法计算结果,再次用循环输出值;
    3.遇到问题:没有遇到问题

    6-1 按等级统计学生成绩
    1.实验代码:

    #include <stdio.h>
    #define MAXN 10
    
    struct student{
        int num;
        char name[20];
        int score;
        char grade;
    };
    
    int set_grade( struct student *p, int n );
    
    int main()
    {   
        struct student stu[MAXN], *ptr;
        int n, i, count;
        ptr = stu;
        scanf("%d
    ", &n);
        for(i = 0; i < n; i++){
           scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);
        } 
       count = set_grade(ptr, n);
       printf("The count for failed (<60): %d
    ", count);
       printf("The grades:
    "); 
       for(i = 0; i < n; i++)
           printf("%d %s %c
    ", stu[i].num, stu[i].name, stu[i].grade);
        return 0;
    }
    int set_grade( struct student *p, int n )
    {
        int i, count = 0;
        for(i = 0;i < n;i ++,p++){
            if((*p).score <=100 && (*p).score >= 85){
                (*p).grade = 'A';
            }else if((*p).score <85 && (*p).score >= 70){
                (*p).grade = 'B';
            }else if((*p).score && (*p).score >= 60){
                (*p).grade = 'C';
            }else{
                (*p).grade = 'D'; 
                count ++;
            }
        }
        return count;
     } 
    

    2.设计思路:
    第一步:定义变量i和count.
    第二步:通过循环和if语句判断学生成绩,最后返还count值;
    3.遇到问题:没有遇到问题。

    6-2结构体数组按总分排序
    1.实验代码:

    #include <stdio.h>
    struct student					
    {
    int num;
    char name[15];
    float score[3];
    float sum;
    };
    void calc(struct student *p,int n);	 
    void sort(struct student *p,int n);
    int main()
    {
    struct student stu[5];
    int i,j;
    float f;
    for(i=0;i<5;i++)
    {
    	scanf("%d%s",&stu[i].num,stu[i].name);
    	for(j=0;j<3;j++)
    	{ 
        	scanf("%f",&f);
    		stu[i].score[j]=f;
    	}
    }
    calc(stu,5);
    sort(stu,5);
    for(i=0;i<5;i++)
    {
    	printf("%5d%15s",stu[i].num,stu[i].name);
    	printf("  %.1f  %.1f  %.1f  %.1f
    ",stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].sum);
    }
    return 0;
    }
    void calc(struct student *p,int n)
    {
    	int i=0;
    	for(i=0;i<n;i++){
    		p[i].sum=p[i].score[0]+p[i].score[1]+p[i].score[2];
    	}
    }	 
    void sort(struct student *p,int n)
    {
    	int j=0,i=0;
    	struct student a;
    	for(i=0;i<n-1;i++)
    	{
    		for(j=0;j<n-1-i;j++)
    		{
    			if(p[j].sum<p[j+1].sum)
    			{
    				a=p[j];
    				p[j]=p[j+1];
    				p[j+1]=a;
    			}
    		}
    	}
    }
    

    2.设计思路:起初并没有设计思路,而后还是求助于大佬赵寅胜。
    第一步:在void calc这一函数中求出各同学成绩和;
    第二步:在void sort函数中用冒泡法将结果排序;
    3.遇到问题:在编程过程中遇到了很多问题,比较突出的就是编译错误,这是结构指针没有熟练掌握所导致的。最后还是赵寅胜大佬指出我的指针错误运用。
    4.流程图:

    作业要求三:
    上传至git
    地址: https://coding.net/u/AssassinCreed/p/Devil-May-Cry/git/tree/master/?public=true
    截图:

    作业要求四
    表格:

    折线图:

    作业要求五:
    评论同学:
    顾家玮:http://www.cnblogs.com/qq807443119/p/8747414.html
    班庆泽:http://www.cnblogs.com/wsbqz/p/8746704.html
    高立彬:http://www.cnblogs.com/gao628526/p/8665187.html

  • 相关阅读:
    mongoDB 小练习
    pymongo 操作
    mongoDB 大文件存储方案, JS 支持展示
    mongoDB 固定集合
    mongoDB 聚合操作
    mongoDB 索引
    mongoDB 其他数据类型
    mongoDB 文档操作_删
    mongoDB 文档操作_改
    【探讨】linux环境,执行重启了php后php.ini依然不生效
  • 原文地址:https://www.cnblogs.com/nothingistrue/p/8747979.html
Copyright © 2011-2022 走看看