【发布时间】:2014-09-05 19:38:10
【问题描述】:
好吧,我对 C 语言有点困惑。
我需要创建一个函数,从用户那里获取一个数字并将其发送到其他几个函数(取决于哪个函数正在运行)。
没有它,这些函数看起来像这样
void deflator(FILE** fw_vystup) {
float ipd, n_hdp = 0.0f, r_hdp = 0.0f;
do {
printf("Type in a GDP: ");
if (1 != scanf("%f", &n_hdp)) {
vyprazdni_buffer(); // this is just cleaning the buffer
continue;
}
} while (n_hdp <= 0);
...
所以我是这样设计的
void zadani_cisla(float cislo) {
do {
printf("Wrong input!");
if (1 != scanf("%f", &cislo)) {
vyprazdni_buffer();
}
} while (cislo <= 0);
}
void deflator(float cislo, FILE** fw_vystup) {
float ipd, n_hdp = 0.0f, r_hdp = 0.0f;
do {
printf("Zadejte nominalni domaci produkt daneho roku: ");
zadani_cisla(cislo);
n_hdp = cislo;
} while (n_hdp <= 0);
它仍然说输入错误,因为我输入的数字我猜没有获得。 你能看出问题吗?提前致谢。
【问题讨论】:
-
请使用英文的字符串和标识符!
-
@BasileStarynkevitch:他为什么要那样做?他应该使用他习惯的标识符名称。
-
因为代码是给SO读者的留言,我们用英文看这个论坛! (但我不是以英语为母语的人)。
标签: c numbers arguments parameter-passing var