C语言中关于IF的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 06:29:36
用一些小程序来进行测试,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);

}
}

}
看一下到底是怎么回事,谢谢
那怎样删除数组里得一个数据,例如说比较a[1]和a[2]以后,如果相同,则将a[2]删除

m=n是错误的。=是赋值。要比较大小用==
至于变量j从1到7,这个倒是无所谓。因为当j=7时,不会执行接下来的代码。

索引出界
j=i+1
当i=6的时候,j=7
a[7]已出界

m=n这个不对
=是赋值运算符,你想比较大小的话应该用==才行

你的变量j是从1到7,超出数组长度了。 而且if(m=n)中=是赋值,不是比较,应该为==。