c语言正序和倒序输出数

#include<stdio.h>
main()
{
int number[10],i;
i=1;
while (i<=10)
{
printf("enter number %d: ",i);
scanf("%d",&number[i]);
i=i+1;
}
printf("you entered %d \n",number[i]);
i=1;
while (i<=10)
{
number[i]=number[11-i];

i=i+1;
}

printf("in reverse order:%d ",number[i]);

}

命令提示符:
enter number 1: 1
enter number 2: 2
enter number 3: 3
enter number 4: 4
enter number 5: 5
enter number 6: 6
enter number 7: 7
enter number 8: 8
enter number 9: 9
enter number 10: 10
you entered 2
in reverse order:2
为什么会这样?哪里错了,为什么?谢谢。
最新回答
逐风

2024-10-14 08:29:34

错误的地方太多了。

1:数组的下标是从0开始的
int number[10],

定义一个10元素的数组,则下标只能是从0-9,不会出现 number[10]=??这种情况,出现就越界了。

2:printf("you entered %d \n",number[i]);
你输入用了循环输入10个数,你输出一个数组,就想一次输出??也需要循环一个一个输出啊!!

3:逆序的问题
while (i<=10)
{
number[i]=number[11-i];
i=i+1;
}
先不管下标的问题对不对,你这样以后 :假设number就三个元素
1 2 3
则number[0] = number[2] = 3了。number[1]=number[1]=2 number[2]=number[0]=3 这样还对吗??你把number[0]的值给弄丢了。
暖妹

2024-10-14 08:08:01

#include<iostream.h>
void main()
{
int a[10];
cout<<"请输入10个数:"<<endl;
for (int i=0;i<10;i++)
cin>>a[i];
cout<<"数组中的元素为:"<<endl;
for (i=0;i<10;i++)
cout<<a[i]<<'\t';
cout<<endl;
cout<<"逆序为:"<<endl;
for(i=9;i>=0;i--)
cout<<a[i]<<'\t';
cout<<endl;
}

中国物联网校企联盟技术部

}