所以这里是代码,它忽略了while而我不知道为什么,只要你输入第一个printf的值就应该以while开头
#include <stdio.h>
int main()
{
str WhoOwes,Fabri,Alen,Amilcar,Maxi,Lolo;
int RandomInt=0,Deudores;
printf("How many people owes?:");
scanf("&d",&Deudores);
while(RandomInt <= Deudores);
{
printf("who owes?:");
scanf("&c",&WhoOwes);
if(scanf("%c",&WhoOwes)==Fabri)
{
Fabri= Fabri+1;
printf("Fabri debe $",Fabri*4);
}
}
return 0;
}
感谢1 H
答案 0 :(得分:3)
变化:
while(RandomInt <= Deudores);
要(删除分号):
while(RandomInt <= Deudores)
此外,您在scanf
中使用的分隔符应为%d
而不是&d
。
此外,str
是什么类型的?
您正在使用scanf
分隔符%d
来int
存储str
类型,我认为这种类型是某种struct
。如果是,那就不是这样做的了。您必须分别将信息存储到struct
的每个部分。或者将类型str
更改为int
。这可能是您的while循环没有发生的原因,因为您试图将int
与str
进行比较:
while(RandomInt <= Deudores); // Deudores is a str
然后,您通过两次调用scanf()
来阅读信息两次,但您只是比较第二次获得的信息。此外,第一次阅读时,使用无效的&c
分隔符。它应该是%c
。此外,您使用无效类型str Fabri
创建上面的str
变量,并且您也不会在代码中的任何位置为其赋值,因此您无法在if
语句中进行比较:
scanf("&c",&WhoOwes);
if(scanf("%c",&WhoOwes)==Fabri)
由于您使用的是字符分隔符%c
,因此您应将WhoOwes
和Fabri
声明为char
类型以保持一致的逻辑,尽管从技术角度来说这不是{ {1}}和int
存储可互换的信息。您还必须将char
变量初始化为某个Fabri
值。
但是,在代码的最后你有声明:
char
这不起作用,因为您缺少分隔符来打印printf("Fabri debe $",Fabri*4);
值。
将该行更改为:
Fabri*4
由于您在计算中使用printf("Fabri debe %d$",Fabri*4); // add the %d delimiter to print the actual value
,因此您应该将所有变量声明为Fabri
,并使用int
分隔符而不是%d
来读取它们。< / p>
你的程序应该是这样的:
%c