用c语言计算给定N名学生的平均成绩的代码
时间: 2023-03-15 07:13:16 浏览: 216
答:可以使用以下代码实现: int main()
{
float total=0, avg;
int N, i;
printf("Enter the number of students: ");
scanf("%d",&N);
int marks[N];
printf("Enter marks of students: ");
for(i=0; i<N; i++)
{
scanf("%d",&marks[i]);
total=total+marks[i];
}
avg=total/N;
printf("The average marks obtained is: %.2f", avg);
return 0;
}
相关问题
使用c语言,给定一个一维数组,包含10个学生的成绩,求出平均分、最高分和最低分。要求使用将数组传至函数进行操作的方法。
你好,我可以回答你的问题,以下是解答:
您可以使用以下的C语言代码来完成此任务:
```c
#include <stdio.h>
void calculateMarks(int arr[], int n, float* avg, int* max, int* min) {
int sum = 0;
*max = *min = arr[0];
for (int i = 0; i < n; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
sum += arr[i];
}
*avg = (float) sum / n;
}
int main() {
int marks[10] = {85, 78, 92, 64, 86, 95, 71, 88, 76, 83};
float avg;
int max, min;
calculateMarks(marks, 10, &avg, &max, &min);
printf("平均分: %.2f\n", avg);
printf("最高分: %d\n", max);
printf("最低分: %d\n", min);
return 0;
}
```
这段代码中,我们使用了一个calculateMarks函数来计算学生的平均分、最高分和最低分。该函数接收一个整型数组、数组大小以及三个指针作为参数。指针用于存储函数计算出来的平均分、最高分和最低分。
在函数中,我们使用一个循环来计算数组的总和,并且找到数组中的最高分和最低分。最后,我们使用计算出的总和来计算平均分,并将结果保存到avg指针所指向的变量中。
在主函数中,我们定义了一个marks数组,并将学生成绩存储在其中。然后我们调用了calculateMarks函数,并将指针传递给函数来存储平均分、最高分和最低分。最后,我们使用printf语句将计算结果打印到屏幕上。
希望这个解答对您有所帮助!如果您有任何其他问题,请随时告诉我。
用C语言完成本关任务:假设有若干学生,每个学生有3门功课,从键盘上输入学生有关信息(学号、姓名、成绩),并计算其平均成绩,将原有数据和平均分保存在磁盘文件record中。具体要求如下: 学生有关信息采用结构体类型存储。 fwrite()函数实现数据块输出到文件record。 结合循环结构实现数据输入和输出。 两个函数的作用如下: 函数Input_Info(STU a[], int n)对学生信息使用键盘进行输入。其中的参数为: STU a[]: 学生结构体数组,大小为N,代表最大存储学生信息条数,这里给定N = 10。 int n: 需要输入的学生信息条数,且n<=N。 函数Write_Info(STU a[], int n)将读到学生信息结构体数组使用fwrite()函数写入到文件中。其中参数为: STU a[]: 已经保存有n个学生信息的学生结构体数组。 int n: 输入的学生信息条数,且n<=N。
好的,下面是代码实现:
```c
#include <stdio.h>
#define N 10 // 学生信息最大存储条数
typedef struct {
int id; // 学号
char name[20]; // 姓名
float score[3]; // 3门功课成绩
float avg_score; // 平均成绩
} STU;
// 函数声明
void Input_Info(STU a[], int n);
void Write_Info(STU a[], int n);
int main() {
STU students[N];
int n; // 需要输入的学生信息条数
printf("请输入学生信息条数(不超过%d):", N);
scanf("%d", &n);
// 输入学生信息
Input_Info(students, n);
// 将学生信息写入文件
Write_Info(students, n);
return 0;
}
// 输入学生信息函数
void Input_Info(STU a[], int n) {
int i, j;
printf("请输入%d个学生信息:\n", n);
for (i = 0; i < n; i++) {
printf("请输入第%d个学生信息:\n", i+1);
printf("学号:");
scanf("%d", &a[i].id);
printf("姓名:");
scanf("%s", a[i].name);
for (j = 0; j < 3; j++) {
printf("第%d门课成绩:", j+1);
scanf("%f", &a[i].score[j]);
a[i].avg_score += a[i].score[j];
}
a[i].avg_score /= 3;
}
}
// 将学生信息写入文件函数
void Write_Info(STU a[], int n) {
int i;
FILE *fp;
if ((fp = fopen("record", "wb")) == NULL) {
printf("打开文件失败!\n");
return;
}
for (i = 0; i < n; i++) {
fwrite(&a[i], sizeof(STU), 1, fp);
}
fclose(fp);
}
```
输入完毕后,程序会将学生信息写入到文件 record 中,每个学生信息大小为 sizeof(STU),写入次数为学生信息条数 n。