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