C语言菜鸟问题请求好心人解答

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:00:13
#include<stdio.h>
#include<math.h>
void main()
{
int i[3]={1,3,5},k,x,y;
scanf("%d",&k);
for(x=0;x<3;x++)
{ if(k>i[x])
{printf("%d,",i[x]);y=1;}
else {printf("%d,",k);y=0;break;}//输出k后把y变成0.
}

for(;x<3;x++)
printf("%d,",i[x]);

if(y=1)
printf("%d",k);

}
为什么y不等于0而等于1?

#include<stdio.h>
#include<math.h>
int main()
{
int i[3]={1,3,5},k,x,y;
scanf("%d",&k);
for(x=0;x<3;x++)
{ if(k>i[x])
{printf("%d,",i[x]);y=1;}
else {printf("%d,",k);y=0;break;}//输出k后把y变成0.
}

for(;x<3;x++)
printf("%d,",i[x]);

if(y==1) //y=1是赋值语句,y肯定=1了。。 改这样。
printf("%d",k);

}
你输入5以下的时候y 就是0了。

int i[3]={1,3,5},k,x,y;我想应该是这句有问题吧,可能是定义的不太清楚吧,k,x,y有可能都定义成数组类型了.我看你改成两句看看!
int i[3]={1,3,5};int k,x,y;

if(y=1) // 应该是“y == 1”
printf("%d",k);

建议:像这种变量与常数的比较,反过来写if (1 == y),犯这种错误时编译器就会提醒你了。