#include<stdioh>
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'。
我用C代码写的,你直接将代码拷贝到VC/VS上就能运行。 我把选择排序函数 和 显示函数都单独进行了封装,注释都比较详细。 #include <stdioh> void SelectSort(int p); void display(int p); int main() { int arr[10] = {10,935,8,7,2546,5,42,3,26,11}; SelectSort(arr); //将数组arr升序排序 display(arr); //显示升序排序后的整数 return 0; } /函数描述:将P指向的10个整数按从小到大排序 / /参数: p:指向待排序数组的首地址 · / /返回值: 无 / /算法: 选择算法 / void SelectSort(int p) { int i = 0,j = 0; //控制循环次数 int max = 0; //先假定数组中的第一个数是最大的 int temp = 0; //用于在两个数交换时,一个临时存放变量 for(i = 9; i > 0; i--) //共循环(n-1)轮 { for(j = 0; j <= i; j++) //找这一轮中最大数所在位置(注意:此处的j的范围必须覆盖该轮所有值) { if(p[j] > p[max]) //寻找该轮中最大值,并记录其所在位置 { max = j; } } if(max != i) //若该轮max记录的最大值的位置不是最后一个,则把max记录位置的值该轮的最后一个值交换 { temp = p[max]; p[max] = p[i]; p[i] = temp; } max = 0; //每轮都默认第一个元素为最大值 } } /函数描述:显示p所指向的内容 / /参数: p:指向待显示数组的首地址· / /返回值: 无 / void display(int p) { int i = 0; for(i = 0;i < 10;i++) { printf("%d ",p[i]); } printf("\n"); }
我写了一个冒泡排序的方法,你可以用int[] array数组输入10个整数,
void BubbleSort(int[] array)
{
int length = arrayLength;
for (int i = 0; i <= length - 2; i++)//进行数组长度减一次排序
{
for (int j = length - 1; j >= 1; j--)//设置“后一个数”为倒数第一个数到第二个数
{
if (array[j] < array[j - 1])//如果后一个数小于前一个数,则交换位置
{
int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)