gpt4 book ai didi

c - 多个scanf?

转载 作者:行者123 更新时间:2023-11-30 19:04:37 24 4
gpt4 key购买 nike

当我运行程序时,它要求输入出生月份,然后当我按回车键时,它会要求输入日期,但当我单击回车键时,它会再次要求输入出生月份。
为什么 getmonth 函数上有多个 scanf?帮助

int getmonth();
int getday();
int zodiacsign(int month, int day);
void zodiacloop();

int main(){
zodiacloop();
return;
}

int getmonth(){
int month;
printf("\nEnter birth month(1-12): ");
scanf("%d",&month);
return month;
}

int getday(){
int day;
printf("\nEnter birth day(1-31): ");
scanf("%d",&day);
return day;
}

int zodiacsign(int month, int day){
switch(getmonth()){
case 1:
if(day>=21)
printf("\nAquarius");
break;
}
}

void zodiacloop(){
int months,day;
months=getmonth();
day=getday();
zodiacsign(months,day);
}

最佳答案

问题出在 zodiacloop 函数中:在这一行 months=getmonth(); 中,您第一次调用 getmonth() 。之后,您调用 zodiacsign,并在 switch(getmonth()) 中第二次调用 getmonth()

因此,解决方案是您应该将 switch(getmonth()) 替换为 switch(month) 以避免调用 getmonth() > 两次!

关于c - 多个scanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614229/

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