C语言中遇到的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:10:24
#include <stdio.h>
void main()
{
int f(int x,int y);
int a,b,c;
printf("input a b\n");
scanf("%d,%d\n",a,b);
c=f(a,b);
printf("max=%d\n",c);
}
int f(int x,int y)
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}
这断语句为什么当我输入A和B的值时,他不会直接显示答案,而是直接关闭的窗口,请高手请教
你们说的方法不是啊,就算这样改了,还是显示不了的,你们可以试下~~

再你的scanf函数中格式符有个/n, 程序在执行的时候是你必须先输入数据然后再回车之后才能出现答案
对于直接关闭窗口的问题是因为程序运行完毕得出结果的时间很快,所以你看到运行窗口一闪就关了。在编程过程中通为了能看到运行结果通常再程序末尾加上一个getch(); 函数来完成“暂停”屏幕的目的
顺便说一下:在判断两个数的大小可以把你的那个复杂的判断函数省略 在主函数中采用符合语句:
a/b>0?a:b;来解决这个问题
技术分析
第1点:三目预算符“?:;”的格式如下:
表达式1?表达式2:表达式3
如果表达式1值为true那么执行表达式2,否则执行表达式3
第2点:变量1/变量2 ?表达式2 :表达式3 ;
当变量1/(除以)变量2时 如果变量1大于变量2则结果大于0(C中所有非0值视为true)=> 执行表达式2 否则执行表达式3
也就是如果a\b>0 a最大,a\b<0 b最大

因为控制台窗口运行后都会自动关闭。你在程序最后加一个getchar();试一下

你的scanf语句似乎没有加取地址符吧

#include <stdio.h>
void main()
{
int f(int x,int y);
int a,b,c;
printf("input a b\n");
scanf("%d,%d\n",&a,&b); //忘记加取值符了
c=f(a,b);
printf("max=%d\n",c);
}
int f(int x,int y)
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}

#include <stdio.h>

void main()
{
int f(int x,in