谭浩强C程序设计(第四版)例题中的代码优化

eg:9.7 有n个结构体变量,内含学生学号,姓名和3门课成绩,要求输出平均成绩最高的学生的信息(内含学生学号,姓名和3门课成绩和平均成绩)。

2015-01-2022:25:34

 1 #include<stdio.h>
 2 #define N 2
 3
 4 struct Student
 5 {
 6     int num;
 7     char name[20];
 8     float score[3];
 9     float aver;
10 };
11
12 void input(struct Student *stu)
13 {
14     int i;
15     printf("input the student‘s information:\nname,num,three score\n");
16     for(i=0;i<N;i++,stu++)
17     {
18         scanf("%s %d %f %f %f",stu->name,&stu->num ,
19             &stu->score[0],&stu->score[1],&stu->score[2]);
20         stu->aver=(stu->score[0]+stu->score[1]+stu->score[2])/3;
21     }
22 }
23
24 struct Student *Max(struct Student *stu)
25 {
26     int i;
27     int m=0;
28     for(i=0;i<N;i++)
29     {
30         if(stu[i].aver>stu[m].aver)
31         {
32             m=i;
33         }
34     }
35     return &stu[m];
36 }
37
38 void print_stu(struct Student *stud)
39 {
40     printf("\nThe average scores of the top students is:\n");
41     printf("num:%d\nname:%s\nthe three subject:%5.1f,%5.1f,%5.1f\nthe aver score:%6.2f\n",stud->num,stud->name,stud->score[0],stud->score[1],stud->score[2],stud->aver);
42 }
43
44 int main()
45 {
46     struct Student stu[N];
47     struct Student *p = stu;
48     input(p);
49     print_stu(Max(p));
50     return 0;
51 }
时间: 2024-10-07 00:32:24

谭浩强C程序设计(第四版)例题中的代码优化的相关文章

01-初学总结之《谭浩强C程序设计》

注:个人针对于课本的易错点进行了相关的整理.整理的不专业,多多见谅. C语言中的易出错的点 这个笔记综合了 0. 常量&变量 常量 整型常量 -345,1000,0 实型常量 1)   十进制小数形式,-123.456 2)   指数形式-10.34E-12 字符常量 普通字符 一个字符,单撇号’ a’’Z’’?’’#’ 转义字符 表格0.1转移字符表 字符串常量 “123”   “boy” 符号常量 #define  PI  3.1415926 #define  PRINCE  40 //注意

谭浩强 c程序设计 8.17用递归法将一个整数n转换成字符串。例如,输入486,应输出字符串&quot;486&quot;。n的位数不确定,可以是任意位数的整数。

8.17用递归法将一个整数n转换成字符串.例如,输入486,应输出字符串"486".n的位数不确定,可以是任意位数的整数. #include <stdio.h> char str1[20];int i=0;long n;int main(){        int longToStr(long n);    char *revstr(char *str, int len);    printf("请输入一个整数n:\n");    scanf("

谭浩强 C程序设计 8.10写一函数,输入一行字符,将此字符串中最长的单词输出。

代码量稍微一大,就会出现bug,浪费很多时间,继续努力. #include <stdio.h> void main(){ void maxLen(char str[50]); char str[50]; gets(str); maxLen(str); } void maxLen(char str[50]){ int i,j=1,t=-1,start=0,m; int maxNum(int num[50]); int num[50]={0}; num[0]=-1;//num[1]放第一个单词的长

谭浩强 c++程序设计第一章课后习题 第7题

#include <iostream> using namespace std; int main() { int a,b,c; int f(int x,int y,int z);//这是函数的声明 //cin sonsole控制台 cout<<"请输入三个整数类型的数字:" <<endl; cin>>a>>b>>c; c=f(a,b,c);//abc有具体值,称为实际参数 cout<<c<<

谭浩强 c++程序设计第一章课后习题 第10题

#include <iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个整数类型的数字:" <<endl; cin>>a>>b>>c; void sort(int x,int y,int z); sort(a,b,c);//abc有具体值,称为实际参数 return 0; } void sort(int x,int y,int z)/

谭浩强 C程序设计 8.2 求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。

#include<stdio.h> #include<math.h> int main() { float a,b,c,q; void lianggegen(float a,float b,float q); void dangen(float a,float b,float q); void fushugen(float a,float b,float q); printf("输入 a b c 的值,以空格分隔:\n "); scanf("%f%f%

谭浩强 C程序设计 8.5 写一个函数,使输入的一个字符串按返序存放

写一个函数,使输入的一个字符串按返序存放,在主函数中输入和输出字符串. #include <stdio.h> #include <string.h> int main(){ void reverse(char arr[]); char arr[50]; gets(arr); reverse(arr); for(int i=0; i< strlen(arr); i++){ printf("%3c",arr[i]); } printf("\n&quo

谭浩强 C程序设计 8.11写一函数用起泡法对输入的个字符按由小到大的顺序排列。

#include <stdio.h> int main(){ void maoPaoSort(char str[]); char arr[10]; printf("请输入10个字符:\n"); gets(arr);//gets回车不会在缓冲区中存着,scanf函数中,回车会存在缓冲区中 maoPaoSort(arr); for(int j=0; j<10; j++){ printf("%3c",arr[j]); } printf("\n&

C++谭浩强 课后习题 第四章函数预处理 1

#include <iostream> using namespace std; int gyx(int,int); int gbx(int,int); int main() { int a,b;  cout<<"请输入2个整数"; cin>>a>>b; cout<<"最大公约数为"<<gyx(a,b)<<endl; cout<<"最小公倍数为"<