反向输出有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级的改对了,第二个

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com