第三次作业

要求一:加向字符变量str

要求二:

题目一:

1.第一步:先编译一个结构体,定义字符型name数组和双精度cost。
第二步:在主函数中引用,定义i和n,在循环语句中输入n,再输入name数组,最后输入花费的价格。
第三步:定义最大值和最小值都为零。再用一个循环,利用if条件句判断出最大值和最小值。

2.

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct book
{
  char name[31];
  double cost;
};
main()
{
  struct book s[10];
  int i,n;
  scanf("%d",&n);
  for(i=0;i<n;i++)
  { 
    scanf("\n");
     gets(s[i].name); 
     scanf("%lf",&s[i].cost);  
  }
  int max=0,min=0;
  for(i=1;i<n;i++)
   {
     if(s[i].cost>s[max].cost){max=i;}
     if(s[i].cost<s[min].cost){min=i;}
   }
   printf("%.2f, %s\n",s[max].cost,s[max].name);
   printf("%.2f, %s",s[min].cost,s[min].name);
   
}

 

题目二:

1.设计思路:第一步:打好框架,定义结构体。

                     第二步:定义和,平均值等信息。

                     第三步:利用循环,结构体,指针指向变量算出平均值,再分别输出对应信息

 2.代码:                     

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

3.遇到问题:程序编译错误

改正:一个致命的错误,定义结构体最后没有加”;“

要求三:指向结构体中变量,可以用指针指向例如

p->grade
可以直接用数组例如
s[i].cost

https://coding.net/u/asdfg145632/p/a7/git?public=true
posted @ 2018-04-22 19:42  关晟强  阅读(106)  评论(0编辑  收藏  举报