用c语言完成以下程序 输入若干个整数,以-1标记输入结束。输出其中的最大数
时间: 2023-03-09 22:14:22 浏览: 210
我可以为你提供一个简单的解决方案: #include <stdio.h>
int main()
{
int num, max;
printf("请输入一个整数:");
scanf("%d", &num);
max = num;
while (num != -1)
{
printf("请输入一个整数,以-1标记输入结束:");
scanf("%d", &num);
if (num > max)
max = num;
}
printf("最大数为:%d\n", max);
return 0;
}
相关问题
输入若干个整数,以-1标记输入结束。输出其中的最大数.c语言
以下是使用C语言实现输入若干个整数,并输出其中最大数的代码:
```c
#include <stdio.h>
int main() {
int num, max = -2147483648; // 初始化最大值为int型最小值
printf("请输入一些整数,以-1结束:\n");
do {
scanf("%d", &num);
if (num > max && num != -1) { // 如果输入的数比当前最大值大且不为-1
max = num; // 更新最大值
}
} while (num != -1);
printf("最大数为:%d\n", max);
return 0;
}
```
程序提示用户输入整数,并使用do-while循环读入整数,判断输入的数是否比当前最大值大,并更新最大值,直到输入-1结束循环。最后输出最大值。
C语言输入若干个整数,输入-1时停止输入。输出删去唯一最大值后的所有值,并将结果从小到大排序输出
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int main() {
int nums[MAX_SIZE], unique_max, max_index, n = 0;
// 输入整数
printf("请输入若干个整数(输入-1停止):\n");
while (1) {
int num;
scanf("%d", &num);
if (num == -1) {
break;
}
nums[n++] = num;
}
// 查找唯一最大值
unique_max = nums[0];
max_index = 0;
for (int i = 1; i < n; i++) {
if (nums[i] > unique_max) {
unique_max = nums[i];
max_index = i;
} else if (nums[i] == unique_max) {
unique_max = -1; // 不唯一,用-1标记
}
}
// 删除唯一最大值
if (unique_max != -1) {
for (int i = max_index; i < n - 1; i++) {
nums[i] = nums[i + 1];
}
n--;
}
// 排序并输出
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (nums[i] > nums[j]) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
printf("删去唯一最大值后的所有值(从小到大排序)为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
程序的思路如下:
1. 先输入若干个整数;
2. 查找唯一最大值,并删除唯一最大值;
3. 对剩余的数进行排序,并输出。
例如,输入以下数据:
```
5 3 2 1 4 7 6 8 9 -1
```
则输出结果为:
```
删去唯一最大值后的所有值(从小到大排序)为:
1 2 3 4 5 6 7 8
```