c语言题:在键盘输入10个整数

时间:2019.09.03 发布人:wula123wula

c语言题:在键盘输入10个整数

已解决问题

谷歌wula123wula用户在2019.09.03提交了关于“我们的少年时代c语言题:在键盘输入10个整数”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-25T15:33:33。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  


比较简单的方法是创建一个数组

从下标为9开始递减进行输入至下标为0

这样存储就会是倒序的了

然后再从下标为0开始递增输出到下标为9

另一种方法是创建两个数组

比如a和b,先顺序地将10个**存储在a里

然后通过一个循环来将**逆序存储在数组b里

这样数组b里就是逆序存储的了

最后顺序输出数组b

当然还有一种方法

可以使用一个链表(或者数组也可以)

然后使用栈的方式存储**

题目中要求**的存放是逆序的

这其实要具体地看存储的方式了

以栈来说,栈是一种先进后出的**结构

从这种层面上来看的话它存储的**就是“逆序”的

但如果使用一个数组来实现的话存储在数组里的**就可能是顺序的(不使用逆序有方式将**存储在数组里)

一个简单的例子

#include

#definePUSh**(i)(*p=i,++p)

#definePOP(i)(--p,i=*p)

intmain(intargc,char**ar**)

{

inta[10];

inti,r;

int*p=a;

for(i=0;i<10;++i)

{

scanf("%d",&r);

PUSh**(r);

}

for(i=0;i<10;++i)

{

POP(r);

printf("%d",r);

}

printf("\n");

return0;

}该例子,如果从栈这种**结构的方式来看

先输入的**会被压入到栈底

最后的**在栈顶,从栈顶到栈底来看的话

**的存储就是逆序的

如果从数组下标来看的话就是顺序的

这里我们可以将指针反转过来

#include

#definePUSh**(i)(*p=i,--p)

#definePOP(i)(++p,i=*p)

intmain(intargc,char**ar**)

{

inta[11];

inti,r;

int*p=a+10;

for(i=0;i<10;++i)

{

scanf("%d",&r);

PUSh**(r);

}

for(i=0;i<10;++i)

{

POP(r);

printf("%d",r);

}

printf("\n",a[0]);

return0;

}那么在数组的层面上来说也会是逆序的了

而以数组的顺序或逆序方式来说的e799bee5baa6e58685e5aeb931333339653639话

使用链表的方式则已经没有相对明确的“顺序”或者“逆序”了

当然我们也可以使用逆序链表的方法业创建栈**结构

由于栈**结构的性质决定了这种**存储的方式