c语言中关于比较的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:56:21
平常用IF语句进行判断是正确的,可是这段代码运行起来却是错误的,请大家看一下:
#include<stdio.h>
void main()
{
int i,j,m,n;
int a[7]={2,5,3,1,4,7,9};

for(i=0;i<7;i++)
{
for(j=i+1;j<7;j++)
{
m=a[i];
n=a[j];
printf("************************************\n");
printf("未比较时\n");
printf("i=%d,j=%d",i,j);
printf("\n");

printf("m=%d,n=%d",m,n);
printf("\n");
printf("************************************\n");

if(m=n)
{
printf("OK\n");
printf("m=%d,n=%d\n",m,n);

}
}

}

比较两个值是否相等要用'=='
'='是赋值语句 而且返回值是真
所以你的程序每个循环都会走显示OK语句 而且把m值赋成n

if(m=n)
比较用双等号,单等号是赋值
if(m==n)