在主函数中输入十个整数存入数组,编写一个函数实现对该数组元素进行从小到大排序的功能

如题所述

#include<stdio.h>  

int main()

{

int a[10];

int i;

void func1();

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

{

scanf("%d",&a[i]);

}

scanf("%d",&a[i]);

func1(a);

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

printf("%d ",a[i]);

printf("\n");

return 0;

}

void func1(int a[])

{

int i,t,j;

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

{

for(j=0;j<10;j++)

{

if(a[i]<a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

}

}

扩展资料:

scanf 函数最主要的用法是:

scanf("输入控制符", 输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-24
#include<stdio.h>

void sort(int a[])
{
int i,j,k,t;
for(i=0; i<9; i++)
{
k = i;
for(j=i+1; j<10; j++)
{
if(a[k]>a[j])
{
k = j;
}
}
if(k!=i)
{
t = a[k];
a[k] = a[i];
a[i] = t;
}
}

}
void main()
{
int i,a[10];
printf("输入10个整数:");
for(i=0; i<10; i++)
{
scanf("%d",&a[i]);
}
sort(a);
for(i=0; i<10; i++)
{
printf("%d ",a[i]);
}
}
第2个回答  推荐于2016-08-20
#include<stdio.h>int main()
{
int a[10];
int i,j;
int t;
printf("Input 10 integer:\n");
for(i = 0;i < 10;i++)
scanf("%d",&a[i]);
for(i = 0;i < 10;i++)
for(j = 0;j < 10-i-1;j++)
if(a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
for(i = 0;i < 10;i++)
printf("%d ",a[i]);
return 0;
}本回答被网友采纳
第3个回答  2020-12-07
指针法输出
#include<stdio.h>
int main()
{
void sort(int x[],int n);
int i,*p,a[10];
p=a;
printf("输入10个数:");
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%3d",*p);
p++;
}
return 0;
}
void sort(int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=1+i;j<n;j++)
if(x[j]<x[k])
k=j;
if(k!=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
相似回答