C语言编程题目:数列有序!
答案:3 悬赏:40 手机版
解决时间 2021-01-10 01:03
- 提问者网友:贪了杯
- 2021-01-09 03:58
C语言编程题目:数列有序!
最佳答案
- 五星知识达人网友:渊鱼
- 2021-01-09 05:36
您好!很高兴为您解答。
程序改进如下,改动的行已注释:
#include
int main()
{
int a[100];
int n,m,i,j,t1,t2;
do//使用do while循环
{
scanf("%3d",&n);
scanf("%3d",&m);
for(i=0;i scanf("%3d",&a[i]);
for(i=0;i {
if(a[i]>m)
{
t1=a[i];
a[i]=m;
for(j=i+1;j {
t2=a[j];
a[j]=t1;
t1=t2;
}
}
}
for(i=0;i<=n;i++)
if(n!=0||m!=0) printf("%3d",a[i]);//此处加一个if语句,m、n非零才有输出
printf("\n");
}while(n!=0||m!=0);//判断,如n和m同时为0,标示输入数据的结束,此行不作处理
return 0;
}
望采纳~如您还有不解,欢迎追问~追问结果是对的,但是专门的一个评分网站上只给我1分(总分为5分),还是谢谢你~追答网站评主观题不准确,可能你的程序已经大体符合要求,但他评分是按参考答案评的。
程序的实现方法是多样的。
程序改进如下,改动的行已注释:
#include
int main()
{
int a[100];
int n,m,i,j,t1,t2;
do//使用do while循环
{
scanf("%3d",&n);
scanf("%3d",&m);
for(i=0;i
for(i=0;i
if(a[i]>m)
{
t1=a[i];
a[i]=m;
for(j=i+1;j
t2=a[j];
a[j]=t1;
t1=t2;
}
}
}
for(i=0;i<=n;i++)
if(n!=0||m!=0) printf("%3d",a[i]);//此处加一个if语句,m、n非零才有输出
printf("\n");
}while(n!=0||m!=0);//判断,如n和m同时为0,标示输入数据的结束,此行不作处理
return 0;
}
望采纳~如您还有不解,欢迎追问~追问结果是对的,但是专门的一个评分网站上只给我1分(总分为5分),还是谢谢你~追答网站评主观题不准确,可能你的程序已经大体符合要求,但他评分是按参考答案评的。
程序的实现方法是多样的。
全部回答
- 1楼网友:冷風如刀
- 2021-01-09 07:15
纠正一下,数组应该定成a[101]而不是a[100],因为n<=100,再加上m,最多的时候有101个数。还有题目里并没有说m和a数组里原有的数据一定不会一样大,你程序这样编会导致一样大的时候m分不进数组。
- 2楼网友:渡鹤影
- 2021-01-09 06:22
#include
void main()
{
int a[100];
int n1 = 0;
int n2 = 0;
int m1 = 0;
int m2 = 0;
int i = 0;
int j = 0;
bool firstLine = true;
while(true)
{
scanf("%d %d", &n1, &m1);
if(firstLine)
{
n2 = n1;
m2 = m1;
}
firstLine = false;
for(i = 0; i < n1; i++)
{
scanf("%d", &a[i]);
}
if(n1 == 0 && m1 == 0)
break;
}
a[n2] = m2;
for(i = 0; i < n2 + 1; i++)
for(j = i; j < n2 + 1; j++)
if(a[i] > a[j])
{
a[i] = a[i] ^ a[j];
a[j] = a[i] ^ a[j];
a[i] = a[i] ^ a[j];
}
for(i = 0; i < n2 + 1; i++)
printf("%d ", a[i]);
printf(" ");
}
欢迎交流
void main()
{
int a[100];
int n1 = 0;
int n2 = 0;
int m1 = 0;
int m2 = 0;
int i = 0;
int j = 0;
bool firstLine = true;
while(true)
{
scanf("%d %d", &n1, &m1);
if(firstLine)
{
n2 = n1;
m2 = m1;
}
firstLine = false;
for(i = 0; i < n1; i++)
{
scanf("%d", &a[i]);
}
if(n1 == 0 && m1 == 0)
break;
}
a[n2] = m2;
for(i = 0; i < n2 + 1; i++)
for(j = i; j < n2 + 1; j++)
if(a[i] > a[j])
{
a[i] = a[i] ^ a[j];
a[j] = a[i] ^ a[j];
a[i] = a[i] ^ a[j];
}
for(i = 0; i < n2 + 1; i++)
printf("%d ", a[i]);
printf(" ");
}
欢迎交流
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯