第二次作业

一 .

第二次作业

6-7.

1.设计思路:

(1)第一步:定义数组初值,用for语句在数组中找出出大于0小于9的数字字符。

第二步:出现数字数组就将其后一项前移,代替数字数组,最终完成数字数组的删除。

(2)流程图

第二次作业

2.实验代码

void delnum(char *s)
{
  int i,k=0;
  for(i=0;s[i]!='\0';)
  {
    if(s[i]>='0'&&s[i]<='9')
    {
      for(k=i;s[k]!=0;k++)
      s[k]=s[k+1];
    }
    else
      i++; 
  }
}

3.错误提示

第二次作业

6-8

1.设计思路

(1)第一步:用for循环找出substr数组的字符串长度,并记作一个字符串。

第二步:再运用for循环在str数组中寻找substr数组出现的次数。

2.实验代码

int fun(char *str,char *substr)
{
  int n=,i=,k=,flag=;
  for(i=;str[i]!='\0';i++)
  {
  for(k=;substr[k]!='\0';k++)
  {
    if(substr[k]==str[i+k])
    flag=;
    else
    flag=;
  }
  if(flag==)
  {
    n++;
    flag=;
  }
}
return n;
}

3.

错误信息1:第二次作业

错误原因:在if语句中忽略了flag==1没法继续执行这一点。

改正方法:捋顺了一下,尝试了flag==0或1的结果,最终flag=1才能继续向下执行,并正确。

错误信息2:第二次作业

错误原因:无意在i的旁边加了两个点...

改正方法:对着正确的图看了几遍才发现这个问题。

6-9

1.设计思路

(1)第一步:先定义几个数,并将min初始化(去掉首位)。

第二步:运用for循环将余下的字符进行比较,并将小的字符向后移动。

第三步:将每一个字符都与后面的进行比较并移动,最终输出正确的排序。

2.

int fun(char *s,int num)
{
  int i,min=(num-),k;
  for(i=;i<=min;i++)
  {
    if(s[min]>s[i])
    {
      k=s[min];
      s[min]=s[i];
      s[i]=k;
    }
  }
  if(num>)
  {
    num--;
    fun(s,num);
  }
}

3.

错误信息第二次作业

错误原因:将排序的代码打成了取值的。

改正方法:检查一遍发现执行后的结果是取值的,并改了过来。

7-1

1.设计思路

(1)第一步:使用if语句来实行动态内存分配。

第二步:运用for语句将每一项进行比较并求出最大最小值

第三步:用总数求出平均值,最后输出这三项。

2

#include<stdio.h>
#include<stdlib.h>
int main()
{
  double avg=,max=,min=;
  int i=,*s,n;
  scanf("%d",&n);
  if((s=(int *)malloc(n*sizeof(int)))==NULL)
  exit();
  for(i=;i<n;i++)
  {
      scanf("%d",s+i);
      if(s[i]>max)
      max=s[i];
      if(s[i]<min)
      min=s[i];
      avg+=s[i];
  }
  avg/=n;
  free(s);
  printf("average = %.2lf\n,max = %.2lf\n,min = %.2lf",avg,max,min);
}

3.错误信息

第二次作业

错误原因:最小值的取值不能从0开始,否则无法循环查找真正的最小值。

改正方法:重复几次尝试发现最小值要递减,所以要赋一个较大的数。

二.

第二次作业

7-1

1.设计思路

(1)第一步:定义结构变量,定义职工信息,运用结构变量并输入员工信息。

第二步:运用for循环及给定公式输出他们的姓名及实发工资。

(2)流程图

第二次作业

2.实验代码

#include<stdio.h>
struct people
{
  char name[];
  float jbgz,fdgz,zc;
  float sfgz;
};
int main()
{
  int i=,n;
  scanf("%d",&n);
  struct people s[n];
  for(i=;i<n;i++)
  {
    scanf("%s %f %f %f",&s[i].name,&s[i].jbgz,&s[i].fdgz,&s[i].zc);
    s[i].sfgz=(s[i].jbgz+s[i].fdgz-s[i].zc);
  }
  for(i=;i<n;i++)
  {
    printf("%s %.2f\n",s[i].name,s[i].sfgz);
  }
}

3.错误信息

错误原因:没有注意要在每位职员的姓名和实发工资中间隔一个空格。

改正方法:检查几次,试了几次,最终询问同学才知道问题,并将其改正。

7-2

1.设计思路

(1)第一步:定义结构变量,定义数组,定义学生信息。

第二步:使用结构变量,运用for循环输入其信息,算出成绩的和。

第三步:算出平均成绩并输出。再使用for循环找出低于平均线以下的名单并输出。

2.实验代码

#include<stdio.h>
struct student
{
  char num[6],name[10];
  int s;
}; 
int main()
{
  int i=0,n;
  double avg=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].s);
    avg+=s[i].s;
  }
  avg/=n;
  printf("%.2lf\n",avg);
  for(i=0;i<n;i++)
  {
    if(s[i].s<avg)
    printf("%s %s\n",s[i].name,s[i].num);
  }
}

3.

第二次作业

三.

第二次作业

6-1

1.设计思路

(1)第一步:定义结构变量。

第二步:在for语句中使用结构变量,再用if、else语句将各个分段区分评级。

(2)流程图

2.实验代码

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

3.错误信息

错误原因:if、else的使用有些混乱,导致顺序不正确。无意间还落下了两个括号

改正方法:仔细读题分析,回想if、else的使用方法,调整用的顺序。加上括号。

6-2

1.设计思路

(1)第一步:定义结构变量,运用for语句将每个人的总分成绩计算出来。

第二步:应用结构变量,再运用for语句将每个人按照总成绩排序。

第三步:交换他们前边的排序,并按照原顺序输出。

2.实验代码

void calc(struct student *p,int n)
{
  int i=;
  for(i=;i<n;i++)
  {
    (p+i)->sum=(p+i)->score[]+(p+i)->score[]+(p+i)->score[];
  }
}
void sort(struct student *p,int n)
{
  int i=,min=;
  struct student m;
  for(i=;i<n;i++)
  {
    if((p+i)->sum<(p+min)->sum)
    {
      min=i;
      }
  }
  m=*(p+min);
  *(p+min)=*(p+n-);
  *(p+n-)=m;
  if(n>)
  {
    n--;
    sort(p,n);
  }
}

3.错误信息

第二次作业

四.学习总结和进度。

1.这两周内主要还是学习了一下上几周学的东西,感觉之前不懂得也懂一些了。这两周新学习的结构变量感觉不是很难,就是对它的编写结构还有些生疏,对于哪步该写什么还不是很熟悉,我 觉得这部分还是需要我加强的。

2.史泽文:http://www.cnblogs.com/shilcz/p/8696341.html

王姝雯:

3.

第二次作业第二次作业

相关推荐