用C语言写一个程序,它读入一系列整数,最后输出其中最大的两个数,利用scanf函数
时间: 2024-10-13 22:05:54 浏览: 11
在C语言中,你可以编写如下的程序来读取一系列整数并找出其中的最大两个数。这里使用了动态内存分配以及一个临时数组来存储输入的数字,并维护当前已找到的最大和次大值。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i;
// 读取输入的整数个数
printf("请输入整数的数量: ");
scanf("%d", &n);
// 动态创建一个大小为n的数组
int* arr = (int*)malloc(n * sizeof(int));
if (!arr) { // 检查内存分配是否成功
perror("Memory allocation failed");
return 1;
}
// 读取并存储整数
for (i = 0; i < n; i++) {
printf("请输入第%d个整数: ", i + 1);
scanf("%d", &arr[i]);
}
// 初始化最大值和次大值
int max1 = arr[0], max2 = INT_MIN;
// 找出最大和次大的数
for (i = 1; i < n; i++) {
if (arr[i] > max1) {
max2 = max1;
max1 = arr[i];
} else if (arr[i] > max2 && arr[i] != max1) {
max2 = arr[i];
}
}
// 输出结果
printf("最大的两个数是: %d 和 %d\n", max1, max2);
// 释放内存
free(arr);
return 0;
}
阅读全文