代码改变世界

第二次作业

2018-04-08 20:22  无敌伟业  阅读(209)  评论(4编辑  收藏  举报
void delnum(char *s)
{
 int a = 0,j;  
    while(s[a]!='\0') {  
        if(s[a] >= '0' && s[a] <= '9') {  
            j = a;  
            while(s[j]!='\0') {  
                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]=='\0')
 
{
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)=='\0')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\n",sum/n);
    printf("max = %.2lf\n",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\n",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\n",ave);
    for (j = 0; j < n;j++)  
    {  
    if(s[j].a<ave)
    {
        printf("%s %s\n", 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