c语言题:输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。

Description输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。Input输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个... Description
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。

Input
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
Output
对于每组输入数据,输出交换后的数列,每组输出占一行。
Sample Input

4 2 1 3 4
5 5 4 3 2 1
0
Sample Output
1 2 3 4
1 4 3 2 5然后这是我写的,自己觉得挺对的,答案也一样呀,可是评测系统不接受,是不是哪里错了,请指点。 #include<stdio.h>
int main()
{
int n,i,j,k,x[100],min,p,t;
while(scanf("%d",&n)!=EOF&&n!=0)
{
for(i=0;i<n;i++)
scanf("%d",&x[i]);
for(j=0;j<n;j++)
{
min=x[0];
if(min>x[j])
{
min=x[j];
k=j;
}
}
t=x[0];
x[0]=x[k];
x[k]=t;
for(p=0;p<n;p++)
printf("%d ",x[p]);
}
}
展开
 我来答
未来需努力点缀
推荐于2018-02-27 · TA获得超过4679个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:517万
展开全部
楼主你好
原题是要先输入所有的数组元素 然后输出:
Input:
4 2 1 3 4
5 5 4 3 2 1
0
Output:
1 2 3 4
1 4 3 2 5

而你的程序是输入一个数组的元素后 就输出对应的交换信息:
4 2 1 3 4
1 2 3 4
5 5 4 3 2 1
1 4 3 2 5

所以是不正确的
我修改了以下:(用一个数组n[N]记下输入数组x[N][100]元素的个数)

#include<stdio.h>
#define N 20

int main()
{
int n[N],i,j,x[N][100],min,k,t,p,m;

j=-1;
printf("Input:\n");
while(scanf("%d",&n[++j])!=EOF&&n[j]!=0)
{
for(i=0;i<n[j];i++)
scanf("%d",&x[j][i]);
}

m=j;
printf("Output:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n[i];j++)
{
min=x[i][0];
if(min>x[i][j])
{
min=x[i][j];
k=j;
}
}
t=x[i][0];
x[i][0]=x[i][k];
x[i][k]=t;
for(p=0;p<n[i];p++)
printf("%d ",x[i][p]);
printf("\n");
}
return 0;
}

运行结果为:
Input:
4 2 1 3 4
5 5 4 3 2 1
0
Output:
1 2 3 4
1 4 3 2 5

希望能帮助你哈
娴先变减再度打m
2012-11-24 · 超过10用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:28万
展开全部
请问用的什么评测系统?逻辑上是没问题,可能是你没有返回值的过,while结束后 加个return 1 。1只是个返回值,是几都无所谓,0也可以。因为你main函数式 int型的,说明你的函数是带返回值的函数,如果没有返回值,在编译的时候会有警告,可能评测系统比较严格,不允许有警告。
最好写成这样: int main(void).......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卒子的疯狂
2012-11-24 · TA获得超过322个赞
知道答主
回答量:217
采纳率:0%
帮助的人:161万
展开全部
#include <stdio.h>
int main(void)
{

int n,i,j,k,x[100],min,p,t;
while(scanf("%d",&n)!=EOF&&n!=0)
{
for(i=0;i<n;i++)
scanf("%d",&x[i]);
min=x[0];
for(j=1;j<n;j++)
{
if(min>x[j])
{
min=x[j];
k=j;
}
}

t=x[0];
x[0]=x[k];
x[k]=t;
for(p=0;p<n;p++)
printf("%d ",x[p]);
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友aab88e5d2
2012-11-24
知道答主
回答量:78
采纳率:0%
帮助的人:24.2万
展开全部
将它与最前面的数交换后输出这些数... - - 这句话什么意思 感觉不能理解啊 莫不是英文原题 你按照翻译之后做的吗..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式