#include<stdio.h> int main() { int i,score[5]; for(i=0;i<=5;i++) scanf("%d",&score[i]); for(i=4;i>0;i--) printf("%3d",score[i]); }
时间: 2023-06-21 10:23:26 浏览: 78
这段代码存在一个数组越界的错误,因为数组 score 的大小为5,而在 for 循环中使用了 <=5 的条件,应该改为 <5。同时,第二个 for 循环中应该从 i=4 开始倒序输出,因为数组下标是从0开始的,所以应该输出 score[4] 到 score[0]。修改后的代码如下:
```
#include <stdio.h>
int main() {
int i, score[5];
for (i = 0; i < 5; i++)
scanf("%d", &score[i]);
for (i = 4; i >= 0; i--)
printf("%3d", score[i]);
return 0;
}
```
相关问题
完成下列程序,该程序计算10名学生的平均成绩 输入答案 。 #include<stdio.h> #include<string.h> struct student { int num; char name[20]; int score; }; struct student stud[10]; int main(void) { int i,sum=0; for(i=0;i<10;i++) { scanf("%d%s%d",&stud[i].num, ,&stud[i].score); sum+=stud[i].score; } printf("aver=%d\n",sum/10); return 0; }
下面是完成后的程序:
```c
#include <stdio.h>
#include <string.h>
struct student {
int num;
char name[20];
int score;
};
struct student stud[10];
int main(void) {
int i, sum = 0;
for (i = 0; i < 10; i++) {
scanf("%d%s%d", &stud[i].num, stud[i].name, &stud[i].score);
sum += stud[i].score;
}
printf("aver=%d\n", sum / 10);
return 0;
}
```
程序中定义了一个结构体类型`student`,包含学号、姓名和成绩三个成员变量。在`main`函数中定义了一个包含10个`student`类型元素的数组`stud`,用于存储10个学生的信息。程序首先通过循环依次读入10个学生的信息,并将学生的成绩累加到变量`sum`中。最后输出`sum`除以10的结果,即10名学生的平均成绩。注意,`scanf`函数中的格式串应当为`"%d%s%d"`,其中`%s`对应字符串类型的姓名。
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int score[100] = { 0 }; int count[100] = {0}; int i, STUDENTS; STUDENTS = 40; srand(unsigned(time(NULL))); for (i = 0; i < STUDENTS; i++) { score[i] = rand() % 10 + 1;/*评分为1~10*/ /*printf("%d\t", score[i]);*/ count[score[i]] ++; } printf("Grade\tCount\tHistogram\n"); int h, k; for (k = 1; k <= 10;k++)/*k相当于等级*/ { printf("%d\t%d\t", k, count[k]); for (h = 1; h <=count[k]; h++) { printf("%c",'*'); } printf("\n"); } return 0; }
这是一个C语言程序,主要实现的功能是随机生成40个学生的成绩,然后根据成绩生成一个直方图。程序的具体实现过程如下:
1. 定义了三个数组:score数组用于存储学生的成绩,count数组用于存储每个成绩等级的人数,i表示循环变量。其中,count数组的下标表示成绩等级,数组元素表示该等级的人数。
2. 通过srand函数生成随机数种子,以保证每次运行程序生成的随机数不同。
3. 使用for循环生成40个学生的成绩,并将每个成绩存储在score数组中。同时使用count数组统计每个成绩等级的人数。
4. 通过for循环遍历count数组,根据每个等级的人数生成直方图,用字符'*'表示。
5. 最后输出成绩等级、人数和直方图。
需要注意的是,程序中使用了rand函数生成随机数,并使用srand函数生成随机数种子。同时,程序中使用了ASCII码中的字符'*',用于生成直方图。
阅读全文