帮我写一个c语言程序输入有2行,第1行为学生人数n(n为整数,并且5≤ns200)。 第2行为n名学生的成绩x(x为整数,并且0≤x≤100),2个成绩之间用空格隔开。 输出 平均分、最高分和最低分,2个成绩之间用空格隔开。平均分保留2位小数,最高分和最低分均按整数输出。
时间: 2023-04-03 21:04:46 浏览: 165
好的,我可以回答这个问题。以下是程序代码:
#include <stdio.h>
int main() {
int n, x, sum = 0, max = 0, min = 100;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &x);
sum += x;
if (x > max) {
max = x;
}
if (x < min) {
min = x;
}
}
printf("%.2f %d %d", (float)sum / n, max, min);
return 0;
}
这个程序可以计算学生的平均分、最高分和最低分。输入第一行为学生人数n,第二行为n名学生的成绩x,输出平均分、最高分和最低分,2个成绩之间用空格隔开。平均分保留2位小数,最高分和最低分均按整数输出。
相关问题
用C语言做,输入n个整数,存放在数组a[1]至a[n]中,输出最大数所在位置(ns100)。。输入格式:第一行,数的个数n;第二行,n个整数,每个数的绝对值在1000之内。输出格式:最大数所在位置。 输入样例: 5 7 3 9 8 2 输出样例: 3
以下是用C语言实现的代码:
```c
#include <stdio.h>
#define MAXN 100
int main()
{
int n, a[MAXN];
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
int max = 0;
for (int i = 1; i < n; i++)
{
if (a[i] > a[max])
max = i;
}
printf("%d", max+1); // 最大数所在位置为下标+1
return 0;
}
```
输入样例:
```
5
7 3 9 8 2
```
输出样例:
```
3
```
A为具有n个元素的正整数集合R是A上的整除关系青输出R的哈斯图的边。例如 A=(1,2,3,4,6,8,12,24],则 R的哈斯图如图所示。 哈斯图 [输入]输入行:第一行是一个整数 n0<ns100)表示集合 A有n个元素第二行有 n 个不同的整数(按从小到大的顺序排序)。[输出]输出若干每行表示关系 R 的 哈斯图上的一条边所有的边按字典顺序给出,处理到输入结束。 [输入样1] 1 2 3 4 6 8 12 24 [输1] 1213242636A4126128 2412 24 ,请用C语言输出
根据您提供的输入和输出,我认为您的输入有误,应该是:
```
8
1 2 3 4 6 8 12 24
```
即第一行为元素个数,第二行为元素列表。
以下是C语言的实现:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
for(int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for(int i = 0; i < n; i++) {
for(int j = i + 1; j < n; j++) {
if(a[j] % a[i] == 0) {
printf("%d %d\n", a[i], a[j]);
}
}
}
return 0;
}
```
首先读入整数 `n`,然后定义一个长度为 `n` 的数组 `a`,并读入 `n` 个整数存入数组中。接着,使用两层循环遍历数组,对于每一对不同的元素 `a[i]` 和 `a[j]`,如果 `a[j]` 是 `a[i]` 的倍数,则输出一条边。
需要注意的是,输出的边需要按字典顺序排序,这里默认输入时已经按从小到大排序,因此可以直接遍历数组输出符合条件的边。
阅读全文