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

    void delnum(char *s)
    {
     int a = 0,j;  
        while(s[a]!='') {  
            if(s[a] >= '0' && s[a] <= '9') {  
                j = a;  
                while(s[j]!='') {  
                    s[j] = s[j+1];  
                    j++;  
                }  
                continue;  
            }  
            a++;  
        }  
    }  
    
    

    第一步:定义一个初值;
    第二步:判断是否等于0;
    第三步:判断是否在所需的区间内;、
    第四步:删除所规定的字符;
    第五步:执行接下来的步骤。
    本题调试过程碰到问题及解决办法:

    忘记在字符上加上单引号了。
    后来自己摸索改正了。
    流程图:

    int fun(char *str,char *substr)
    {
    int a,b,k,num=0;
    for(a = 0;str[a];a++)
    for(b=a,k=0;substr[k]==str[b];k++,b++)
    
    
    if(substr[k+1]=='')
     
    {
    num++;
    break; 
    }
    return(num);
    }
    
    

    第一步:定义一些变量;
    第二步:统计出现次数;
    第三步:计数器加一;
    第四步:输出。
    错误:

    无法输出结果;

    指针型数组,没有加中括号。
    向同学请教改正。
    流程图:

    int fun(char *s,int num)
    {
        int a=0, b=0, k=0, n=0;
        char t;
        for(n=0;;n++)
        {
            if(*(s+n)=='')break;
        }
        n--;
            for(a=1;a<n-1;a++)
            {
                for(b=a;b<n;b++)
                {
                    if(*(s+a)<*(s+b))
                    {
                        t=*(s+a);
                        *(s+a)=*(s+b);
                        *(s+b)=t;
                    }
                }
            }
    }
    
    

    第一步:定义一些变量;
    第二步:判断是否等于0;
    第三步:第一层排序;
    第四步:第二遍排序;
    错误:

    忘记加上*号无法输出结果。

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

    第一步:定义一些变量;
    第二步:输入n的值;
    第三步:输入学生的成绩;
    第四步:计算平均,最大值,最小值;
    第五步:输出结果。
    错误:

    定义的变量没有给予初值。自己一遍改过来。

    #include <stdio.h>
    struct zhigong
    {
       char name[10];
       float a,b,c;
    };
    int main()
    {
      int N,i,j;
      float sum;
      scanf("%d",&N);
      struct zhigong xu;
      for(i = 0;i < N;i++)
      {
     // struct zhigong xu;
      scanf("%s",xu.name);
      scanf("%f",&xu.a);
      scanf("%f",&xu.b);
      scanf("%f",&xu.c);
     sum = xu.a + xu.b - xu.c;
     printf("%s %.2f
    ",xu.name,sum);
    }
    
      return 0;
    }
    

    第一步:定义一些初值;
    第二步:定义一个结构;
    第三步:输入值;
    第四步:求和;
    第五步:输出值。
    错误:

    输出结果出错。问同学改正。
    流程图:

    
    #include<stdio.h>  
    struct student  
    {  
        char  number[1000];
        char name[100];    
        float a;     
    }student;  
    int main()  
    {  
        int n,i,j;
    	float sum=0.00,ave=0.00;  
        scanf("%d", &n); 
    	struct student s[n];  
        for (i = 0; i < n; i++)  
        {       
            scanf("%s %s %f",&s[i].number,s[i].name,&s[i].a); 
            sum=sum+s[i].a;
        } 
        ave=sum/n;
        printf("%.2f
    ",ave);
        for (j = 0; j < n;j++)  
        {  
        if(s[j].a<ave)
        {
            printf("%s %s
    ", s[j].name, s[j].number);  
        } 
        }  
        return 0;   
    } 
    
    

    第一步:定义一些变量;
    第二步:输入n的值;
    第三步:调用结构;
    第四步:输入数据;
    第五步:计算平均成绩;
    第六步:输出结果。
    错误:

    没有加上中括号,指针数组定义不够完全。问同学解决的。

    int set_grade( struct student *p, int n )
    {
      int i = 0,count = 0;
      for(i = 0;i < n;i++)
      {
        if((p[i].score>= 85) && (p[i].score <= 100))
        {
          p[i].grade = 'A';
        }
        if((p[i].score >= 70) && (p[i].score <= 84))
        {
          p[i].grade = 'B';
        }
        if((p[i].score) >= 60 && (p[i].score <=69))
        {
          p[i].grade = 'C';
        }
        if((p[i].score >= 0) && (p[i].score <= 59))
        {
          p[i].grade = 'D';
        }
        if(p[i].grade == 'D')
        {
          count ++;
        }
      }
      return count;
    }
    

    第一步:定义一些变量;
    第二步:判断分数属于哪个档次;
    第三步:将分数在D档的计数;
    第四步:输出结果。
    错误:

    输出的结果都为D。错误的原因是if中的等于少打了一个等号,自己改正。

    void calc(struct student *p,int n)
    {
      int i;
      float k; 
      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 i,j;
      struct student t;
      for(i = 0;i < n - 1;i++)
      {
        for(j = 0;j <n-i-1;j++)
        {
          if(p[j].sum < p[j+1].sum)
          {
            t = p[j];
            p[j]= p[j+1];
            p[j+1] = t;
            
          }
        }
      }
    }
    

    第一步:定义一些变量;
    第二步:计算求和;
    第三步:冒泡排序法;
    错误:

    分层太多,多打了很多个中括号。自己改正。
    总结:
    在过去的两周的学习生活中,我学到了,如何创建结构,使用结构。这个我感觉非常的难,并且学会了之后我感觉非常的自豪。我还是对于指针类型的数组,我感觉很让人费解,学的有一些瑕疵。
    点评:
    张心悦:www.cnblogs.com/zxy980612/p/8696690.html
    董欣:http://www.cnblogs.com/dx2017/p/8666072.html
    赵寅胜:www.cnblogs.com/2017023960ZYS/p/8653086.html

  • 相关阅读:
    为什么要有handler机制
    安卓五种数据存储的方式
    Activity生命周期详解
    JS的一些简单实例用法
    JSP 中的EL表达式详细介绍
    JSP九大内置对象和四个作用域
    JS实现---图片轮播效果
    实现 鼠标移动到表格的某行 该行换背景 ---myEclipse编写
    JS 菜单收拉样式
    spring中aware接口的
  • 原文地址:https://www.cnblogs.com/xuweiye/p/8747209.html
Copyright © 2011-2022 走看看