繁体   English   中英

打印时继续为我创建的阵列获得不同的输出

[英]Keep Getting A Different Output For My Created Array When Printing

我是新来的人,也是编码的新人。 我得到了这段代码,想检查它是否正常工作。 这很简单,但是由于我是新手,所以我遇到了很多问题。 调用函数后尝试输出数组时,我不断得到一些随机数。 如果有人可以告诉我我做错了,将不胜感激。

# 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

int F(int G, int H)

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

您正在打印函数而不是数组。 顺便说一句,似乎您忘记了将值返回给函数,未定义的返回值可能会导致您产生随机数。

尝试改为打印此:

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

好的,谢谢您的回答。 就像我说的那样,我是新来的,花了一些时间才弄清楚。 就像我得到的答案一样,我需要返回一些东西,这就是为什么我得到一些随机数的原因。 所以我将函数更改为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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM