使用数组和for循环
```c
include
int main() {
int a;
int i;
// 输入10个数
for (i = 0; i < 10; i++) {
printf("请输入第%d个数: ", i + 1);
scanf("%d", &a[i]);
}
// 倒序输出这10个数
for (i = 9; i >= 0; i--) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
使用数组和while循环
```c
include
int main() {
int a;
int i = 0;
// 输入10个数
while (i < 10) {
printf("请输入第%d个数: ", i + 1);
scanf("%d", &a[i]);
i++;
}
// 倒序输出这10个数
while (i > 0) {
printf("%d ", a[i - 1]);
i--;
}
printf("\n");
return 0;
}
```
使用递归
```c
include
void print_reverse(int arr[], int n) {
if (n == 0) return;
printf("%d ", arr[n - 1]);
print_reverse(arr, n - 1);
}
int main() {
int a;
int i;
// 输入10个数
for (i = 0; i < 10; i++) {
printf("请输入第%d个数: ", i + 1);
scanf("%d", &a[i]);
}
// 倒序输出这10个数
print_reverse(a, 10);
printf("\n");
return 0;
}
```
使用栈(模拟递归):
```c
include include typedef struct { int data; int top; } Stack; void init_stack(Stack *s) { s->top = -1; } int is_empty(Stack *s) { return s->top == -1; } void push(Stack *s, int value) { s->data[++s->top] = value; } int pop(Stack *s) { return s->data[s->top--]; } void print_reverse(int arr[], int n) { Stack s; init_stack(&s); // 将数组元素压入栈 for (int i = 0; i < n; i++) { push(&s, arr[i]); } // 倒序输出栈中的元素 while (!is_empty(&s)) { printf("%d ", pop(&s)); } printf("\n"); } int main() { int a; int i; // 输入10个数 for (i = 0; i < 10; i++) { printf("请输入第%d个数: ", i + 1); scanf("%d", &a[i]); } // 倒序输出这10个数 print_reverse(a, 10); printf("\n"); return 0; } ``` 这些方法都可以实现十个数的倒序输出。你可以根据自己的需求和喜好选择其中一种方法。