用c语言写以下程序,输入n 个数,要求程序按输入时的逆序把这n 个数打印出来,已知整数不超过100 个。也就是说,按输入相反顺序打印这n 个数。 【输入】 输入一行共有n 个数,每个数之间用空格隔开。 【输出】 如题要求:一行,共有n 个数,每个数之间用一个空格隔开。
时间: 2024-10-23 10:16:33 浏览: 77
在C语言中,你可以通过动态内存分配和数组反转的方式来实现这个程序。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
printf("请输入数字的数量(n): ");
scanf("%d", &n);
// 动态分配存储空间
int* numbers = (int*)malloc(n * sizeof(int));
if (!numbers) { // 检查是否成功分配内存
printf("内存分配失败!\n");
return 1;
}
// 获取用户输入并存入数组
printf("请输入%d个数(用空格分隔): ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// 反转数组
int start = 0;
int end = n - 1;
while (start < end) {
int temp = numbers[start];
numbers[start] = numbers[end];
numbers[end] = temp;
start++;
end--;
}
// 打印反转后的数组
printf("按照逆序打印的数: ");
for (int i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
// 释放内存
free(numbers);
return 0;
}
```
**相关问题--:**
1. 如果输入的数字超过100个会发生什么?
2. 这段代码如何处理用户没有输入数字的情况?
3. 除了使用数组,还有其他方式可以实现这个功能吗?
阅读全文