在第2个FOR(内循环)里面使用break,则结束内循环、继续执行第1个FOR(外循环)。不能一口气从深层循环中完全解脱出来。如果不忌讳用goto语句,则下列代码效率更高:
#include<stdio.h>
void main()
{
int a[9];
int i,j,k=1;
for(i=0;i<9;i++)
scanf("%d",&a[i]);
for(i=0;i<8;i++)
for(j=i+1;j<9;j++)
if(a[i]==a[j]){k=0;goto finish;}
finish:
printf("%d",k);
}
这样就可以了!
int main()
{
int target;
int a[9];
for(int i=0;i<9;i++)
{
int ppp;
scanf("%d",&ppp);
a[i] =ppp;
}
target =a[0];
for(int i=0;i<9;i++)
{
if(target!=a[i])
{
printf("有不同的!\n");
return 0;
}
}
printf("都相同啊!\n");
return 0;
}
你的那个break是跳离所有的循环
所有的循环都结束
这样就可以了!
int main()
{
int target;
int a[9];
for(int i=0;i<9;i++)
{
int ppp;
scanf("%d",&ppp);
a[i] =ppp;
}
target =a[0];
for(int i=0;i<9;i++) //????????
{
if(target!=a[i])
{
printf("有不同的!\n");
return 0;
}
}
printf("都相同啊!\n");
return 0;
}
你的那个break是跳离所有的循环
所有的循环都结束 ?!别乱说一气