问题遇到的现象和发生背景
当执行完第一个scanf语句后,第二个scanf语句像失效一样,直接跳到了第三个scanf语句,导致x2无法完成初始化,哪里错了呀
#include<stdio.h>
#include<math.h>
#define e 2.718
int main() {
int x1,;
int x2;
int x3;
char k1;
char k2;
char k3;
char k4;
double w1 = 0.3;
double w2 = 0.4;
double w3 = 0.3;
double y;
double z;
double v = 0.5;
printf("今天的天气如何?\n");
printf("A.晴天 B.阴天 C.雨天\n");
scanf("%c", &k1);
switch (k1) {
case 'A':x1 = 9;
break;
case 'B':x1 = 6;
break;
case 'C':x1 = 0;
break;
default: printf("选择有误,请重新选择\n");
}
printf("\n有没有人陪你去看电影?\n");
printf("A.有,男/女朋友 B.有,好朋友 C.有,家人 D.没有\n");
scanf("%c", &k4);
switch (k4) {
case 'A':x2 = 8;
break;
case 'B':x2 = 6;
break;
case 'C':x2 = 5;
break;
case 'D':x2 = 2;
break;
default:printf("选择有误,请重新选择\n");
}
printf("\n票价如何?\n");
printf("A.0-30 B.30-60 C.60-90 D.90以上\n");
scanf("%c", &k3);
switch (k3) {
case 'A':x3 = 10;
break;
case 'B':x3 = 8;
break;
case 'C':x3 = 2;
break;
case 'D':x3 = 0;
break;
default:printf("选择有误,请重新选择\n");
}
z = (x1w1 + x2w2 + x3*w3) / 10;
y = 1 / (1 + pow(e, -z));
printf("你去看电影的可能性为:%d\n", z);
if (z >= v)
printf("去看电影");
else
printf("不去看电影");
return 0;
}