主题:哪一位大侠来帮忙解释一个问题~~~~~
这是一道比较数组元素的题,要求用数组元素做实参,如果a数组中元素大于b数组中元素次数 多于 b数组中元素大于a数组中元素的次数,则认为a数组比b数组大。
[code=c]
#include<stdio.h>
int larger(int,int);
void main()
{
int a[10],b[10];
int n=0,m=0,k=0,i,test;
printf("请输入A数组的元素\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
printf("请输入数组B的元素\n");
for(i=0;i<10;i++)
{
scanf("%d",&b[i]);
}
printf("\n");
for(i=0;i<10;i++)
{
if(larger(a[i],b[i])==1)
n+=1;
else if(larger(a[i],b[i])==0)
m+=1;
else
k+=1;
}
printf("a[i]>b[i]%d次\na[i]=b[i]%d次\na[i]<b[i]%d次\n",n,m,k);
if(n>k)
printf("A数组大于B数组\n");
else if(n<k)
printf("A数组小于B数组\n");
else
printf("A数组等于B数组\n");
//*************************************************//
// if(n>k)
printf("A数组大于B数组\n");
else if(n=k)
printf("A数组等于B数组\n");
else
printf("A数组小于B数组\n");
为什么这样不行,会在明明n=k时说小于???
//
//*************************************************//
scanf("%d",&test);
}
int larger(int a,int b)
{
int c=0;
if(a>b)
c=1;
else if(a<b)
c=-1;
return(c);
}
[/code]
可是,小生在调试时发现,如果按照说明行中的写法,会在a数组完全等于b数组时显示 a数组小于b数组。。。。。。这是为什么呢????
[code=c]
#include<stdio.h>
int larger(int,int);
void main()
{
int a[10],b[10];
int n=0,m=0,k=0,i,test;
printf("请输入A数组的元素\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
printf("请输入数组B的元素\n");
for(i=0;i<10;i++)
{
scanf("%d",&b[i]);
}
printf("\n");
for(i=0;i<10;i++)
{
if(larger(a[i],b[i])==1)
n+=1;
else if(larger(a[i],b[i])==0)
m+=1;
else
k+=1;
}
printf("a[i]>b[i]%d次\na[i]=b[i]%d次\na[i]<b[i]%d次\n",n,m,k);
if(n>k)
printf("A数组大于B数组\n");
else if(n<k)
printf("A数组小于B数组\n");
else
printf("A数组等于B数组\n");
//*************************************************//
// if(n>k)
printf("A数组大于B数组\n");
else if(n=k)
printf("A数组等于B数组\n");
else
printf("A数组小于B数组\n");
为什么这样不行,会在明明n=k时说小于???
//
//*************************************************//
scanf("%d",&test);
}
int larger(int a,int b)
{
int c=0;
if(a>b)
c=1;
else if(a<b)
c=-1;
return(c);
}
[/code]
可是,小生在调试时发现,如果按照说明行中的写法,会在a数组完全等于b数组时显示 a数组小于b数组。。。。。。这是为什么呢????