C告诉我初始化变量,即使它已经初始化
C telling me to initialize variable even though it's already initialized
我正在研究 CS50 PSET1。到目前为止我有以下代码:
#include <stdio.h>
#include <cs50.h>
int main(void) {
float change;
do {
printf("Change: ");
change = get_float();
} while(change < 0);
int coins;
for(int q = change; q < 25; q++) {
q = 25 / q;
coins += 1;
}
printf("%i", coins);
}
我有问题。当我尝试使用 make
命令编译我的代码时,我收到一条错误消息
greedy.c:17:9: error: variable 'coins' is uninitialized when used here [-> Werror,-Wuninitialized]
coins += 1;
编译器是正确的。你永远不会首先将任何东西分配给 coins
。你所做的就是增加它的(未初始化的)值。
要分配一个初始值,写
int coins = 0; /* or whatever the correct initial value is */
顺便说一句,我不太确定意图是什么,但以下不太可能是您想要的:
for(int q = change; q < 25; q++) {
q = 25 / q;
注意赋值是如何修改循环变量的。虽然这是允许的,但在这种情况下它看起来不太可能是故意的。
int coins;
是局部变量,不是静态变量,你之前用它来初始化。
我正在研究 CS50 PSET1。到目前为止我有以下代码:
#include <stdio.h>
#include <cs50.h>
int main(void) {
float change;
do {
printf("Change: ");
change = get_float();
} while(change < 0);
int coins;
for(int q = change; q < 25; q++) {
q = 25 / q;
coins += 1;
}
printf("%i", coins);
}
我有问题。当我尝试使用 make
命令编译我的代码时,我收到一条错误消息
greedy.c:17:9: error: variable 'coins' is uninitialized when used here [-> Werror,-Wuninitialized] coins += 1;
编译器是正确的。你永远不会首先将任何东西分配给 coins
。你所做的就是增加它的(未初始化的)值。
要分配一个初始值,写
int coins = 0; /* or whatever the correct initial value is */
顺便说一句,我不太确定意图是什么,但以下不太可能是您想要的:
for(int q = change; q < 25; q++) {
q = 25 / q;
注意赋值是如何修改循环变量的。虽然这是允许的,但在这种情况下它看起来不太可能是故意的。
int coins;
是局部变量,不是静态变量,你之前用它来初始化。