);返回 1-6ren"> );返回 1-我正在尝试用 C 语言制作一个控制台应用程序来计算城市之间的旅行时间。问题是我的 scanSlut 方法一直返回 1。(丹麦语中的“slut” = 英语结束,由于我是丹麦人,所以我给变量命名丹麦语名称-6ren">
gpt4 book ai didi

c - scanf ("%d", &<变量>);返回 1

转载 作者:行者123 更新时间:2023-11-30 20:44:57 25 4
gpt4 key购买 nike

我正在尝试用 C 语言制作一个控制台应用程序来计算城市之间的旅行时间。问题是我的 scanSlut 方法一直返回 1。(丹麦语中的“slut” = 英语结束,由于我是丹麦人,所以我给变量命名丹麦语名称。这也是为了防止调用其他变量图书馆里都有,都是英文的。)

    printf("Indtast destinationsstationsnummer:\n");
slut = scanSlut(start);
if(slut > 15 || slut < 1) {
do {
printf("Du har indtastet en ugyldig ankomststation. Indtast venligst en gyldig station\n");
slut = scanSlut(start);
} while (slut > 15 ||slut < 1);
}

int scanSlut(int start) {
int slut, i;
for(i=1; stationer[i] != '\0'; i++) {
if(i!= start) {
printf("#%d: %s\n",i,stationer[i]);
}
}
printf("slut = %d\n", slut);
slut = scanf("%d", &slut);
printf("slut = %d\n", slut);
return slut;
}

第一个 printf("slut = %d\n", slut); 返回随机数(这是合乎逻辑的,因为变量在设置之前包含垃圾),但第二个 printf 一直写 1,即使我按一些随机数字。我也有一个 scanStart() 方法,它也可以实现我想要的功能:

int scanStart() {
int start, i;
for(i=1; stationer[i] != '\0'; i++) {
printf("#%d: %s\n",i,stationer[i]);
}
scanf("%d",&start);
return start;
}

我尝试过构建、重建、重新启动 IDE,但我得到的仍然是 1。有什么想法吗?

最佳答案

问题出在这一行:

slut = scanf("%d", &slut);

scanf 返回分配的输入项的数量。将其更改为:

scanf("%d", &slut);

(有关 scanf 的更多信息,请参阅 man scanf)。

关于c - scanf ("%d", &<变量>);返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22129563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com