#include <stdio.h> #include <conio.h> #include <time.h> void input(); void sum(); void av(); void find(); void output(); struct st { int en, math, com, sum, n; float av; char id[20]; } a[5] = { { 60,60,60},{ 70,70,70},{ 75,75,75},{ 80,80,80},{ 85,85,85} }; int main() { int n; while (1) { printf("1.input\n"); printf("2.sum\n"); printf("3.averag\n"); printf("4.find\n"); printf("5.output\n"); scanf("%d", &n); switch (n) { case 1:input(); break; case 2:sum(); break; case 3:av; break; case 4:find(); break; case 5:output(); break; } if (n < 1 || n > 6) break; } } void input() { int i; for (i = 0; i < 5; i++) {printf("请输入第%d个学生的成绩:",i+1); scanf("%d%d%d", &a[i].en, &a[i].math, &a[i].com); } } void output() { int i; printf("英语 高数 计算机 总分 平均分\n"); for (i = 0; i < 5; i++) printf("%5d%5d%5d%5d%5.2f\n", &a[i].en, &a[i].math, &a[i].com, &a[i].sum, &a[i].av); } void sum() { int i; for (i = 0; i < 5; i++) a[i].sum = a[i].en + a[i].math + a[i].com; } void av() { int i; for (i = 0; i < 5; i++) a[i].av = a[i].sum / 3.0; } void find() { float m[6]; int i, j,flag; printf("请输入查名次的学号:"); scanf("%f", &m); flag=0; for (i = 0; i < 5; i++) { for(j=0;i<6;j++) { if(a[i].id[j]!=m[j]) { break; } if(j==5) { flag=1;break;} } if(flag) {printf("学号 英语 数学 计算机 总分 平均分\n"); printf("%s%5d%5d%5d%5d",a[i].id,a[i].en,a[i].math,a[i].com,a[i].sum,a[i].av); } else { printf("该学号不存在\n"); } }帮忙修改这些代码的错误
时间: 2024-03-26 09:37:30 浏览: 5
这段代码中有多处错误,我尝试一一列举和修改:
1. 在函数av()中,应该将除数改为3.0f,否则结果会被截断为整型。
2. 在函数find()中,输入的是浮点数,但查找的是学号(字符串),应该将m的类型改为char[]。
3. 在函数find()中,第二个for循环的循环变量应该是j而不是i。
4. 在函数output()中,格式化输出时应该去掉&符号,因为a[i].en等变量本身就是地址。
5. 在函数find()中,如果查找到学号,则应该在输出中添加平均分av,否则会导致输出格式错误。
修改后的代码如下:
相关问题
#include <stdio.h>
#include <stdio.h> 是C语言中的一个预处理指令,它告诉编译器在编译过程中要包含stdio.h头文件。stdio.h是标准输入输出库的头文件,其中包含了一些用于输入输出的函数和常量的声明。
通过包含stdio.h头文件,我们可以使用一些常用的输入输出函数,比如printf和scanf。printf函数用于将格式化的数据输出到标准输出(通常是显示器),而scanf函数用于从标准输入(通常是键盘)读取格式化的数据。
下面是一个简单的示例代码,演示了如何使用stdio.h中的printf函数:
#include <stdio.h>
int main() {
int num = 10;
printf("The value of num is %d\n", num);
return 0;
}
在上面的代码中,我们首先包含了stdio.h头文件。然后,在main函数中,我们定义了一个整型变量num,并将其初始化为10。接下来,我们使用printf函数将num的值输出到标准输出。%d是一个格式化占位符,用于表示要输出的整数值。
当我们运行上面的代码时,它会输出以下内容:
The value of num is 10
这就是#include <stdio.h> 的作用和使用方法。它使我们能够使用标准输入输出函数来进行数据的输入和输出操作。
#include <stdio.h> \\DUNWEICHAO
引用: "#include <stdio.h>" 是C语言中的预处理指令,用于包含标准输入输出库(stdio.h)的内容[^1]。引用:同样的,"#include <stdio.h>" 也是C语言中的预处理指令,用于包含标准输入输出库(stdio.h)的内容[^2]。
在C语言中,stdio.h是一个头文件,它包含了一些用于输入和输出的函数、宏和定义。通过包含这个头文件,我们可以使用标准输入输出函数(如printf和scanf)来进行输入和输出操作。stdio.h提供了一些常用的函数,例如文件操作、字符输入输出、格式化输入输出等等。这个头文件是C语言中最常用的头文件之一,几乎所有的C程序都会包含它。
所以,当我们在C语言程序中使用"#include <stdio.h>"时,我们可以使用stdio.h中定义的函数和宏来进行输入和输出操作。
范例:在C语言中使用stdio.h进行输出操作。
```c
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
```