看你的意思是想求质数,但是 for(i=2;i<=100;i++)
for(j=1;j {
if(i/j==0)
{
a[i]=0;
break;
}
}
首先不应该写i/j,应该是求余数,i % j == 0,j的范围是1 到i - 1,任何一个数除以比自己小的数都会商1,这个条件i/j == 0是不可能满足的,其次,你这个循环没有对是质数的数对应的a[i]赋值,数组也没初始化,怎么可能会不打乱的数字。
修改下:
//首先初始化为全0
int a[101] = ;
for(i=2;i<=100;i++)
{
for(j=1;j {
if(i % j==0)
break;
}
if(j == i) //如果j == i了,那么说明上个循环不是break掉的,说明i是质数
a[i] = i;
}
推测你的用意是想判断一个n行n列的矩阵是否是对称矩阵。
int pd(int* p, int n)
{
int i,j;
for(i=0; i
return 0;
return 1;
}
调用的时候把第一个元素的地址和行列数传过去就行了。
比如int a[3][3], b[5][5];
if(pd(&a[0][0], 3)) ...;
if(pd(&b[0][0], 5)) ...;
你在写for循环的时候你的循环上限n具体是什么值?你都没有定义怎么可能对呢?