C语言程序问题!

C语言ATM系统,当我按6退出的时候,它应该显示第一张图才对,应该是让用户输入账号,可是它显示的是第四张图,直接让用户输入密码,账号是空的!图5是代码,是不是gets_s()的问题?gets_s()自动输入账号?

第1个回答  2020-04-14
printf("%d
%d\n",(++x,y++),z+2);中的++x是先进行++运算在使用变量,y++)是先使用在进行++,所以执行完语句后X变为4而y仍然是3.(++x,y++)表示逗号元算,括号后面的表达式的值既y++的值就是(++x,y++)的值。所以程序输出后的结果就是3 3。
第2个回答  2019-02-11
主要是define这个问题。你这里s=Area(r1-r2);
就是
s=pi*r1-r2*r1-r2=3.14*5-2*5-2
=3.7

正确的应该是写成s=Area((r1-r2));
里面再加一个括号,define就是一个字符串代替,你是什么样的他就代替成什么样。
然后再计算,
第3个回答  2020-02-15
#define定义的语句,都是简单的进行字母替换
在这里,你的r1-r2只是简单地替换到了R的位置上,也就是说你的
s=Area(r1-r2);
在预编译结束后变成了
s=3.14*r1-r2*r1-r2;
将具体值代入就变成了
3.14*5-2*5-2=15.7-10-2=3.7了
如果你要得到正确的解,可以使用
#define
Area(R)
pi*(R)*(R)
第4个回答  2019-05-03
这个程序有问题
1.Func()没有return语句,无法返回值
2.在func()中,m是使用了关键字static,这说明m是一个静态私有变量,在作用域main()里面虽然有对m赋值,但当调用func()时,实际读取的m值是func()里面的那个m
第5个回答  2020-01-05
getch("%d",a);这句--要也是getchar()啊,不过这也是用来读取字符的,读取整数的话就用经典的scanf()咯。。。改为scanf("%d",a);
---这样就没错了!!!
相似回答