for语句不能循环,只能执行一次。。。
#include<stdio.h>voidmain(){inti,j,n=5,k=0,s=0,a[100]={1,12,25,27,36},b[100]={23,28,3...
#include<stdio.h>
void main()
{
int i,j,n=5,k=0,s=0,a[100]={1,12,25,27,36},b[100]={23,28,35,80,50},l[100],m[100];
for(i=0;i<n;i++)
printf("%d,%d\n",a[i],b[i]);
printf("\n");
for(i=0;i<n;i++) ///(这个for不能循环)
{ j=0;
a[0]=0;
for(i=1;i<n;i++)
{if(a[i]>b[j]) {a[i]=0;j=i;}
};
s++;
for(i=0;i<n;i++)
{if(a[i]!=0) {l[k]=a[i];m[k]=b[i];k++;}};
for(i=0;i<n;i++)
{a[i]=0;b[i]=0;}
for(i=0;i<k;i++)
{a[i]=l[i];b[i]=m[i];
};
n=k;
for(i=0;i<n;i++)
printf("%d,%d\n",a[i],b[i]);
};
printf("%d\n",s);
}
求高手指点 展开
void main()
{
int i,j,n=5,k=0,s=0,a[100]={1,12,25,27,36},b[100]={23,28,35,80,50},l[100],m[100];
for(i=0;i<n;i++)
printf("%d,%d\n",a[i],b[i]);
printf("\n");
for(i=0;i<n;i++) ///(这个for不能循环)
{ j=0;
a[0]=0;
for(i=1;i<n;i++)
{if(a[i]>b[j]) {a[i]=0;j=i;}
};
s++;
for(i=0;i<n;i++)
{if(a[i]!=0) {l[k]=a[i];m[k]=b[i];k++;}};
for(i=0;i<n;i++)
{a[i]=0;b[i]=0;}
for(i=0;i<k;i++)
{a[i]=l[i];b[i]=m[i];
};
n=k;
for(i=0;i<n;i++)
printf("%d,%d\n",a[i],b[i]);
};
printf("%d\n",s);
}
求高手指点 展开
展开全部
每个for都用i做参数 嵌套的时候 里面的i和外面的i相同啊 这样里面的i==n时候跳出循环 到外层判断的时候也不符合循环条件了 依然跳出循环
要么每个for循环用不从的参数
要么用这种格式
for(int i=0;i<n;i++)也就是声明局部变量
要么每个for循环用不从的参数
要么用这种格式
for(int i=0;i<n;i++)也就是声明局部变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的内层三个for循环,每个循环都改变了i的值,你经过 for(i=0;i<n;i++)
printf("%d,%d\n",a[i],b[i]);这个循环后,i的值成了n,当前你外层循环的i < n条件就不满足了,当然外层循环不可能执行多次。
printf("%d,%d\n",a[i],b[i]);这个循环后,i的值成了n,当前你外层循环的i < n条件就不满足了,当然外层循环不可能执行多次。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<n;i++) ///(这个for)
{ j=0;
a[0]=0;
for(i=1;i<n;i++) 这里i发生改变最多做一次在这里i=n了,上面的就不能循环 {if(a[i]>b[j]) {a[i]=0;j=i;}
};
{ j=0;
a[0]=0;
for(i=1;i<n;i++) 这里i发生改变最多做一次在这里i=n了,上面的就不能循环 {if(a[i]>b[j]) {a[i]=0;j=i;}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要循环套用次数过多,应该把里面的循环作为一个单独的函数来调用,那样就不会出错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询