C语言程序问题!37
发布网友
发布时间:2023-09-19 10:03
我来回答
共5个回答
热心网友
时间:2024-04-26 18:37
printf("%d
%d\n",(++x,y++),z+2);中的++x是先进行++运算在使用变量,y++)是先使用在进行++,所以执行完语句后X变为4而y仍然是3.(++x,y++)表示逗号元算,括号后面的表达式的值既y++的值就是(++x,y++)的值。所以程序输出后的结果就是3 3。
热心网友
时间:2024-04-26 18:37
主要是define这个问题。你这里s=Area(r1-r2);
就是
s=pi*r1-r2*r1-r2=3.14*5-2*5-2
=3.7
正确的应该是写成s=Area((r1-r2));
里面再加一个括号,define就是一个字符串代替,你是什么样的他就代替成什么样。
然后再计算,
热心网友
时间:2024-04-26 18:37
#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)
热心网友
时间:2024-04-26 18:38
这个程序有问题
1.Func()没有return语句,无法返回值
2.在func()中,m是使用了关键字static,这说明m是一个静态私有变量,在作用域main()里面虽然有对m赋值,但当调用func()时,实际读取的m值是func()里面的那个m
热心网友
时间:2024-04-26 18:39
getch("%d",a);这句--要也是getchar()啊,不过这也是用来读取字符的,读取整数的话就用经典的scanf()咯。。。改为scanf("%d",a);
---这样就没错了!!!