麻烦高手看看这段C代码有什么错.谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:17:00
#include <stdio.h>
void main()
{
printf("请以[ , ]形式输入两个整数闭区间,用\",\"隔开.\n");
int a1,a2,t;
int b1,b2;
int c1,c2;
int d1,d2;
scanf("[%d,%d],[%d,%d]",&a1,&a2,&b1,&b2);
if (a1>a2)
{
t=a1;
a1=a2;
a2=t;
}
if (b1>b2)
{
t=b1;
b1=b2;
b2=t;
}
c1=(a1<b1)? b1 : a1;
c2=(a2<b2)? a2 : b2;
if (c1<c2) printf("交集为[%d,%d].\n",c1,c2);
else if (c1==c2) printf("交集为\{%d\}.\n",c1);
else printf("无交集!\n");
d1=(a1<b1)? a1 : b1;
d2=(a2<b2)? b2 : a2;
if (b1<=a2) printf("并集为[%d,%d].\n",c1,c2);
else printf("并集为[%d,%d]∪[%d,%d].\n",d1,a2,b1,d2);
}
检查后结果为:
--------------------Configuration: if - Win32 Debug--------------------
Compiling...
if.c<

逻辑错帮你改了 算法错自己改吧

#include <stdio.h>
void main()
{
printf("请以[ , ]形式输入两个整数闭区间,用\",\"隔开.\n");
int a1,a2,t;
int b1,b2;
int c1,c2;
int d1,d2;
scanf("%d,%d,%d,%d",&a1,&a2,&b1,&b2); //输入不能有字符
if (a1>a2)
{
t=a1;
a1=a2;
a2=t;
}
if (b1>b2)
{
t=b1;
b1=b2;
b2=t;
}
c1=(a1<b1)? b1 : a1;
c2=(a2<b2)? a2 : b2;
if (c1<c2) printf("交集为[%d,%d].\n",c1,c2);
else if (c1==c2) printf("交集为\{%d\.}\n",c1);
else printf("无交集!\n");
d1=(a1<b1)? a1 : b1;
d2=(a2<b2)? b2 : a2;
if (b1<=a2) printf("并集为[%d,%d].\n",c1,c2);
else printf("并集为[%d,%d]∪[%d,%d].\n",d1,a2,b1,d2);
}

语法我没看出错误来,就是逻辑上if (b1<=a2) printf("并集为[%d,%d].\n",c1,c2); 这一句中的c1,c2应该是d1,d2

没有错误,你的编