【发布时间】:2021-01-15 12:52:35
【问题描述】:
作为我程序的一部分,我需要扫描一个四位数字,并将每个数字放在不同的变量中。这是我现在尝试的,但不知何故,当我运行代码时,它总是打印 0。我找不到问题,有人可以告诉我我做错了吗?
#include <stdio.h>
int main()
{
int userGuess = 0;
int digit = 0;
int userFourth = 0;
int userThird = 0;
int userSecond = 0;
int userFirst = 0;
printf("Write your guess\n");
scanf("%d" , &userGuess);
while (userGuess != 0)
{
int userFourth = userGuess % 10;
userGuess = userGuess / 10;
int userThird = userGuess % 10;
userGuess = userGuess / 10;
int userSecond = userGuess % 10;
userGuess = userGuess / 10;
int userFirst = userGuess % 10;
}
printf("user fourth is %d\n" , userFourth);
printf("user third is %d\n" , userThird);
printf("user second is %d\n" , userSecond);
printf("user first is %d\n" , userFirst);
return 0;
}
【问题讨论】:
-
提示:了解数组。这不是一种可持续的编程方法,而且你已经养成了一些刻薄的坏习惯。
-
while块内的变量与外面的变量不同。你是shadowing他们。 -
还值得注意的是,您可以使用直接字符串来解决这个问题,不需要数组本身。请记住,对于给定的
char x[n],您始终可以引用单个字符并测试这些字符与已知值,例如x[1] == '6'。 -
又一个应该注意编译器警告的情况。这段代码应该生成一些类似于“变量被赋值但从未使用过”的内容。
标签: c