C语言编程题:用选择法对10个整数排序

使用子函数来做,不能使用指针... 使用子函数来做,不能使用指针 展开
 我来答
问明6E
高粉答主

2019-05-21 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:13万
展开全部

#include<stdio.h>

int main()

{

int i,j,min,t,a[10]={2,4,8,3,6,9,7,222,64,88};

printf("排序前的序列为:\n");

for(i=0;i<10;i++)//输出排序前的序列

{

printf("%5d",a<i>);

}

printf("\n");

for(i=0;i<9;i++)

{

min=i;//把每次循环的第一个数作为最小值

for(j=i+1;j<10;j++)

{

if(a[min]>a[j])

min=j;//交换

}

if(min!=i)//说明第一个数不是最小数,所以将a[i+1]~a[10]中最小值与a<i>对换

{

t=a[min];

a[min]=a<i>;

a<i>=t;

}

}

printf("排序后的序列为:\n");

for(i=0;i<10;i++)//输出排序后的序列

printf("%5d",a<i>);

printf("\n");

return 0;

}

扩展资料:

return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

229273121
2007-06-12 · 超过10用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:55万
展开全部
main()
{int i,j,n,a[10];
printf("输入10个数:");
for(i=0;i<10;i++)
scanf("%d,",&a[i]);//记得输入的时候后面加“,”
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if(a[i]>a[j]) //改成(a[i]<a[j])可按大到小排序
{ n=a[i];a[i]=a[j];a[j]=a[i];}
printf("\n由小到大排序结果为:");
for(i=0;i<10;i++)
printf("%d,",a[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱文儿童节
2013-04-14
知道答主
回答量:1
采纳率:0%
帮助的人:1513
展开全部
#include <iostream>
using namespace std;
//#include <math.h>
int main()
{int i,j,min,temp,a[11];
cout<<"enter data:"<<endl;
for (i=1;i<=10;i++)
{cout<<"a["<<i<<"]=";
cin>>a[i]; //输入10个数
}
cout<<endl<<"The original numbers:"<<endl;;
for (i=1;i<=10;i++)
cout<<a[i]<<" "; // 输出这10个数
cout<<endl;;
for (i=1;i<=9;i++) //以下8行是对10个数排序
{min=i;
for (j=i+1;j<=10;j++)
if (a[min]>a[j]) min=j;
temp=a[i]; //以下3行将a[i+1]~a[10]中最小者与a[i] 对换
a[i]=a[min];
a[min]=temp;
}
cout<<endl<<"The sorted numbers:"<<endl;
for (i=1;i<=10;i++) // 输出已排好序的10个数
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_enjoy_loving
推荐于2017-11-13 · TA获得超过111个赞
知道答主
回答量:13
采纳率:0%
帮助的人:9.1万
展开全部
#include<stdio.h>
main()
{
int a[10],i,j,t;
printf("please input ten int numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if (a[i]>a[j]) {
t=a[i]; a[i]=a[j]; a[j]=t; }
for(i=0;i<10;i++) printf("%d ",a[i]);
}
追问
要使用子函数的方法来做,谢谢~
追答
#include
max(int a[])
{
int i,j,t;
for(i=0;ia[j])
{t=a[i]; a[i]=a[j]; a[j]=t; }
}
main()
{

int a[10],i;
printf("please input ten int numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max(a);
for(i=0;i<10;i++) printf("%d ",a[i]);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ORDRO1314
2017-11-12 · TA获得超过100个赞
知道答主
回答量:20
采纳率:33%
帮助的人:3.7万
展开全部
排序有很多种算法。我就随便给你来一个吧。
#include <stdio.h>
void Sort(int k[])
{

int x=0,j1,j;
for(j1=0;j1<9;j1++)
{
j=j1+1;
for(j;j<10;j++)
{
if(k[j1]<k[j])
{
x=k[j1];
k[j1]=k[j];
k[j]=x;
}
}
}
for(j=0;j<10;j++)
printf("%d\t",k[j]);
}
int main()
{
int k[10]={84,34,66,45,77,387,57,88,47,32};
Sort(k);//子函数算法
/*int x=0,j1,j;//直接实现
int k[10]={84,34,66,45,77,387,57,88,47,32};
for(j1=0;j1<9;j1++)
{
j=j1+1;
for(j;j<10;j++)
{
if(k[j1]<k[j])
{
x=k[j1];
k[j1]=k[j];
k[j]=x;
}
}
}
for(j=0;j<10;j++)
printf("%d\t",k[j]);
*/
return 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式