gpt4 book ai didi

c - 当使用 scanf 获取整数和 char 值时,程序会跳过 scanf

转载 作者:行者123 更新时间:2023-11-30 18:32:01 25 4
gpt4 key购买 nike

#include <stdio.h>


int multiple(int num1,int num2){
return (num1*num2);
}

int add(int num1, int num2){
return (num1+num2);
}
/*&x points to its value space *x points to its memory space*/
int main(){

int num1,num2,ans;
char func;

printf("First number => ");
scanf("%d",&num1);
printf("Second number => ");
scanf("%d",&num2);

printf("Please Enter + for addition, or * for multiplication => ");
scanf("%c",&func);

if (func == '*'){
ans = multiple(num1,num2);
}else if(func == '+') {
ans = add(num1,num2);
}else {
printf("Sorry, invalid operation");
}

printf("Ans : %d",ans);
return 0;
}

当我运行程序时,它会提示我输入第一个和第二个数字,但它不会提示我输入字符 scanf("%c",&func);没有被执行。

我的输出-------------------------------------------------------- --------------------:

$ ./p8t3
First number => 23
Second number => 32
Please Enter + for addition, or * for multiplication => Sorry, invalid operationAns : 2665616

最佳答案

在扫描 + 或 * 运算符时,进行如下更改:

printf("Please Enter + for addition, or * for multiplication => ");
scanf(" %c",&func); //use a space before '%c'

关于c - 当使用 scanf 获取整数和 char 值时,程序会跳过 scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17631851/

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