c primer plus 习题答案(7)

p421.5

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #define CSIZE 4
 4 #define SCORE 3
 5
 6 void get_info(struct students *p);
 7 void get_average(struct students *p);
 8 void print_info(struct students *p);
 9 void print_class_average(struct students *p);
10
11 struct names{
12     char firstname[40];
13     char lastname[40];
14 };
15
16 struct students{
17     struct names name;
18     float grade[SCORE];
19     float average;
20 };
21
22 int main(void)
23 {
24     struct students sheet[CSIZE]={
25         {{"absbs", "bdcdc"}, 0, 0, 0, 0},
26         {{"cfvfv", "dfgfg"}, 0, 0, 0, 0},
27         {{"enmnm", "fcvcv"}, 0, 0, 0 ,0},
28         {{"ghbhb", "hiyiy"}, 0, 0, 0, 0}
29     };
30
31
32     get_info(sheet);
33     get_average(sheet);
34     print_info(sheet);
35     print_info(sheet);
36
37     system("pause");
38     return 0;
39 }
40
41 void get_info(struct students *p)
42 {
43     int i,j;
44     for(i=0; i<CSIZE; i++){
45         puts("please input student name");
46         scanf("%s%s",&((p+i)->name.firstname),&((p+i)->name.lastname));
47         puts("input the score");
48         for(j=0; j<SCORE; j++)
49             scanf("%f",&((p+i)->grade[j]));
50     }
51 }
52
53 void get_average(struct students *p)
54 {
55     float sum;
56     int i, j;
57     for(i=0; i<CSIZE; i++){
58         for(j=0, sum=0; j<SCORE; j++)
59         sum+=((p+i)->grade[j]);
60         (p+i)->average=sum/SCORE;
61     }
62 }
63
64 void print_info(struct students *p)
65 {
66     int i, j;
67     for(i=0; i<CSIZE; i++){
68         printf("%s\t%s\n", (p+i)->name.firstname, (p+i)->name.lastname);
69         printf("grade:\n");
70         for(j=0; j<SCORE; j++)
71             printf("%f ",(p+i)->grade[j]);
72         printf("\n");
73         printf("the average grade is %.2f", (p+i)->average);
74     }
75 }
76
77 void print_class_average(struct students *p)
78 {
79     int i;
80     float sum=0;
81
82     for(i=0; i<CSIZE; i++)
83         sum+=(p+i)->average;
84
85     printf("the class average grade is %.2f", sum/CSIZE);
86 }
时间: 2024-11-11 06:18:27

c primer plus 习题答案(7)的相关文章

c++ primer plus 习题答案(1)

第五版c++ primer plus,IDE是visual studio2013. p180.2 1 #include<iostream> 2 #include<ctime> 3 #include<cstdlib> 4 5 int main(void){ 6 using namespace std; 7 int i, j, count=0, sum = 0, pt[10]; 8 double mean; 9 for (i = 0; i < 10; i++){ 10

c primer plus 习题答案(4)

p319.3 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<ctype.h> 4 #include<string.h> 5 void deliver(char *a1, char *a2, int n); 6 7 int main(void) 8 { 9 int n; 10 char str1[81], *ptr, ar[81]; 11 ptr=gets(str1); 12 n=strlen(ptr)

c++ primer plus 习题答案(2)

p259.4 1 #include<iostream> 2 #include<cstdlib> 3 #include<cctype> 4 using namespace std; 5 struct stringy{ 6 char* str; 7 int ct; 8 }; 9 void set(stringy &, const char*); 10 void show(const stringy &, int times = 1); 11 void sho

c primer plus 习题答案(3)

p281.2 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define SIZE 5 4 void copy_arr(double ar[], double pr[],int n); 5 void copy_ptr(double ar[], double pr[], int n); 6 7 int main(void) 8 { 9 double source[5]={1.1, 2.2, 3.3, 4.4, 5.5}; 10 double

c primer plus 习题答案(6)

p376.7 A方案 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define LEN 40 4 void rank(FILE *, FILE *); 5 int main(void) 6 { 7 FILE *fp, *fc; 8 int ch, bp; 9 char file1[LEN], file2[LEN]; 10 11 puts("enter file1 name"); 12 if((fp=fopen(gets

c primer plus 习题答案(5)

p352.6 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 int main(void) 6 { 7 int i, j, count[10]={0}, seed[10]; 8 9 for(i=0; i<10; i++){ 10 printf("please enter a seed.\n"); 11 scanf("%d", &see

c++ primer plus 习题答案(8)

p475.2 //头文件: class Cd{ private: char *performers; char *label; int selections; double playtime; public: Cd(char *s1, char *s2, int n, double x); Cd(const Cd & st); Cd(); virtual ~Cd(); virtual void Report()const; Cd & operator = (const Cd & s

《C++primer》v5 第5章 语句 读书笔记 习题答案

5.1 空语句只有一个";".如果什么也不想做可以使用空语句. 5.2 用花括号{}括起来的叫块,也叫复合语句.有多条语句作用在同一个作用域时,需要用花括号括起来. 5.3 降低了. 5.4 (a)每次迭代时候会初始化iter,但是iter缺少初值,所以这段代码根本不会通过编译.另外这里的括号需要一个bool类型的,而定义迭代器根本不会返回一个bool类型.假如上面那些问题都可以通过,每次迭代都会初始化这个iter,会导致死循环. (b)我试了一下编译未通过是因为没找到适合的find函

《C++primer》v5 第3章 字符串、向量和数组 读书笔记 习题答案

3.1略 3.2 string str; //读行 while(getline(cin,str)) cout<<str<<endl; //读单个词 while(cin>>str) cout<<str<<endl; 3.3 输入运算符读到空白符结束 getline读到换行符结束,并丢弃换行符 3.4 比较大小. 比较大小是比较的第一个不相同的字符的大小. int main() { string a,b; cin>>a>>b;