0) { p" />

十个数倒序编程怎么写的

时间:2025-01-29 02:55:28 网络游戏

使用数组和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;

}

```

这些方法都可以实现十个数的倒序输出。你可以根据自己的需求和喜好选择其中一种方法。