
c++提问#include<stdio.h> void main() { int n,m,i,a[100],b[102],j,t,k; while((scanf("%d%d",&n,&m)!=E
#include<stdio.h>voidmain(){intn,m,i,a[100],b[102],j,t,k;while((scanf("%d%d",&n,&m)!=...
#include<stdio.h>
void main()
{
int n,m,i,a[100],b[102],j,t,k;
while((scanf("%d%d",&n,&m)!=EOF)&&(m!=0&&n!=0))
{
k=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<n;i++)
{
if((a[i]<m)||(a[i]>m)) b[k]=a[i];
else b[k]=m;
k++;
}
for(i=0;i<=n;i++)
printf("%d ",b[i]);
printf("\n");
}
}
该程序有什么问题啊 展开
void main()
{
int n,m,i,a[100],b[102],j,t,k;
while((scanf("%d%d",&n,&m)!=EOF)&&(m!=0&&n!=0))
{
k=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<n;i++)
{
if((a[i]<m)||(a[i]>m)) b[k]=a[i];
else b[k]=m;
k++;
}
for(i=0;i<=n;i++)
printf("%d ",b[i]);
printf("\n");
}
}
该程序有什么问题啊 展开
3个回答
展开全部
貌似有点看不懂你写这程序的意图~
在(scanf("%d%d",&n,&m)!=EOF)这个语句里 你需要弄懂scanf的返回值的意思---是正确赋值的个数~ 所以你把这个语句写到while的判断语句里 就是个问题--你到底是需要程序执行多少次呢? 建议你把这条语句放到外面去。
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
这个语句 是把数组排序 小的放到前面 没有问题
但下面的语句 是要做什么?
for(i=0;i<n;i++)
{
if((a[i]<m)||(a[i]>m)) b[k]=a[i];
else b[k]=m;
k++;
}
if((a[i]<m)||(a[i]>m)) b[k]=a[i]; 是将a数组不等于m的值赋给b数组
而下面的
else b[k]=m; 如果a[i]=m,则b[k]=m;...
整个if else语句 完成了 将a数组赋值给 b数组.. 这个应该不是你本意
最后程序输出了一个乱数值
是你前后的
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<=n;i++)
printf("%d ",b[i]);
大小不一 b[n]是系统随机给出的一个值
这是根据你的代码 找出的问题
具体你要实现的问题 可以留言
在(scanf("%d%d",&n,&m)!=EOF)这个语句里 你需要弄懂scanf的返回值的意思---是正确赋值的个数~ 所以你把这个语句写到while的判断语句里 就是个问题--你到底是需要程序执行多少次呢? 建议你把这条语句放到外面去。
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
这个语句 是把数组排序 小的放到前面 没有问题
但下面的语句 是要做什么?
for(i=0;i<n;i++)
{
if((a[i]<m)||(a[i]>m)) b[k]=a[i];
else b[k]=m;
k++;
}
if((a[i]<m)||(a[i]>m)) b[k]=a[i]; 是将a数组不等于m的值赋给b数组
而下面的
else b[k]=m; 如果a[i]=m,则b[k]=m;...
整个if else语句 完成了 将a数组赋值给 b数组.. 这个应该不是你本意
最后程序输出了一个乱数值
是你前后的
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<=n;i++)
printf("%d ",b[i]);
大小不一 b[n]是系统随机给出的一个值
这是根据你的代码 找出的问题
具体你要实现的问题 可以留言
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询