反向输出有5个元素的int数组中各元素的值
发布网友
发布时间:2024-10-24 17:06
我来回答
共3个回答
热心网友
时间:2024-10-24 17:18
没有看懂你写的代码,我帮你写一个吧,默认数组下标从0开始,一般如a[5]这样的数组,最大只能存储到a[4]。
#include <stdio.h>
int main()
{
///////////////
//已知五个数
/*int a[5] = {1, 2, 3, 4, 5}, i;
*/
//////////////
//////////////
//从键盘输入5个数
int a[5], i;
for (i = 0; i < 5; ++i){
scanf ("%d", &a[i]);
}
//////////////
//反向输出
for (i = 4; i >= 0; --i){
printf ("%d ", a[i]);
}
printf ("\n");
return 0;
}
追问我代码的意思是输入五个数,把第一个和第五个交换,第二和第四个交换
追答
你那样是不行的,交换操作要放到输入完成之后进行,不然后面都没有元素,你在和空进行交换
你在知道输入个数的时候可以反向存储,这是一种办法
也可以输入完之后进行交换
但是都是在交换完成之后再进行输出
给你提供一个参考
#include <stdio.h>
int main()
{
int a[5], i, t;
for (i = 0; i < 5; ++i){
scanf ("%d", &a[i]);
}
for (i = 0; i < 5/2; ++i){
t = a[i];
a[i] = a[5-i-1];
a[5-i-1] = t;
}
for (i = 0; i < 5; ++i){
printf ("%d ", a[i]);
}
printf ("\n");
return 0;
}
热心网友
时间:2024-10-24 17:19
你已经定义数组,就不需要再输入了。
数组时从0开始的就是说 for(i=0;i<5;i++)
热心网友
时间:2024-10-24 17:19
for(i=1;i<=5;i++)错了,
没有a[5]这个数追问改了,具体看楼上,改了还不对
追答那个9级的改对了,第二个