打印时,为我创建的阵列保持不同的输出

时间:2018-03-12 06:45:24

标签: c++ arrays

我是新来的,也是新的编码。我得到了一段代码,想检查它是否有效。这很简单但是因为我是新手,我有很多问题。当我在调用函数后尝试输出数组时,我不断得到一些随机数。如果有人能告诉我我做错了什么,我将不胜感激。

# include <stdio.h>    

int V[6]= {7,6,5,4,3,2};
int F(int G, int H) {
    int J;
    for (J=0;J<=5;J++) {
        if(G<V[J]<H)
            V[J]='Y';
        else 
            V[J]='N';           
    }
}

main () {
    int call;
    call = F(3,5);
    printf ("%d",call);
}

这是代码,我的输出是:

4206608

3 个答案:

答案 0 :(得分:1)

int F(int G, int H)

这第一个int表示您将从此函数返回一个整数值。但是在你的功能中,你什么也没有回来。因此,变量call未分配任何值并显示垃圾值。

答案 1 :(得分:0)

您正在打印的功能不是数组。顺便说一句,似乎你忘了给你的函数返回值,一个未定义的返回值可能会给你一个随机数。

尝试打印此代码:

for (J=0;J<=5;J++){
    printf ("%d",V[J]);
}

答案 2 :(得分:0)

好的,谢谢你的回答。就像我说的那样,我是新手,我花了一些时间才弄明白。 就像我得到的答案建议我需要返回一些东西,这就是为什么我得到一些随机数字。 所以我将功能改为void而不是int,它似乎有效 我想看看被调用的函数是否将数组更改为我想要它的方式,结果发现它没有,所以我不得不改变它。

# include <stdio.h>


int V[6]= {7,6,5,4,3,2};
int J;
void F(int G, int H){
    for (J=0;J<=5;J++){
        if(G<V[J] && V[J]<H)
            V[J]='Y';
        else 
            V[J]='N';
    }

}

main (){
    F(3,5);
    for (J=0;J<=5;J++){
    printf ("%c",V[J]);
}

}

我得到了我需要的输出:

NNNYNN

感谢您的支持。真的很感激。