用计算机C语言编程,程序设计题:从键盘输入十个数,将他们进行降序排列。 求解答需要详细过程,谢谢!

 我来答
听不清啊
高粉答主

2017-12-30 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>
int main()
{int i,j,t,a[10];
 for(i=0;i<10;i++)    //输入10个整数
   scanf("%d",&a[i]);
 for(i=0;i<9;i++)    //降序冒泡排序
   for(j=0;j<9-i;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]);
 printf("\n"); 
 return 0;
}
黎明之鸟l
2017-12-30 · TA获得超过263个赞
知道小有建树答主
回答量:247
采纳率:67%
帮助的人:128万
展开全部
void _tmain(int argc, _TCHAR* argv[])
{
 char a[10];
 char i, j;
 char temp;
 for (i = 0; i < 10; i++)
 {
  scanf_s("%d", &a[i], 1);
  getchar();
 }
 for (i = 1; i < 10; i++)
 {
  for (j = 1; j < 10; j++)
  {
   if (a[j - 1] < a[j])
   {
   temp = a[j - 1];
   a[j - 1] = a[j];
   a[j] = temp;
   }
  }
 }
 for (i = 0; i < 10; i++)
 printf("%d", a[i]);
 while (1);

}
//直接可用,就是冒泡算法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
是你吻开笔墨gg
2017-12-30 · 超过19用户采纳过TA的回答
知道答主
回答量:44
采纳率:60%
帮助的人:14万
展开全部
#include<stdio.h>
int main()
{
    int a[10],i,j,tmp,n=10;
    //循环输入
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    //冒泡排序
    for(i=0;i<n-1;i++)//外循环推动内循环,10个数循环9次就可以排序完
    {
        for(j=0;j<n-i-1;j++)    //内循环每次将最小值放大数组的最右边,j<n-i-1,减i是因为数组最右边有i个数已经是降序
        {
            if(a[j]<a[j+1])
            {
                tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
        }
    }
    //循环输出
     for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
}

冒泡排序看的累,可以百度看看别人是怎么讲解的,也可以在循环的冒泡排序的过程中将每次一的排序过程打印出来,看看中间的过程帮组理解

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zdw19981101
2017-12-30 · TA获得超过1242个赞
知道小有建树答主
回答量:270
采纳率:75%
帮助的人:16.9万
展开全部
你好,这是我自己亲自写的代码,经过调试成功了。有不明白的可以问我。
#include <stdio.h>
/*函声明区*/
void inputArr(int *, int);
void printArr(int *, int);
void Bubble_sort(int *, int);

void main()
{
/*数组初始化*/
int a[10] = { 0 };
printf("Please input 10 values:\n");
inputArr(a, 10);
Bubble_sort(a, 10);
printf("Please input the array after the sort:\n");
printArr(a, 10);
}
//输入10个数
void inputArr(int *arr,int n)
{
int i;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
}

//冒泡排序
void Bubble_sort(int *array, int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n-i; j++)
{
if (array[j] < array[j + 1])
{
int temp;
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
//输出10个数
void printArr(int *arr, int n)
{
for (int i = 0; i < n; i++)
{
printf("%3d", arr[i]);
}
printf("\n");
}
追答

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何志豪157
2017-12-30
知道答主
回答量:18
采纳率:33%
帮助的人:2.7万
展开全部
#include<stdio.h>
#include<stdlib.h>
void bubble_sort(int a[], int len)
{
int i, j, temp;
int exchange = 0;
for (i = 0; i<len - 1; i++)
{
exchange = 0;
for (j = len - 2; j >= i; j--)
{
if (a[j + 1]>a[j])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
exchange = 1;
}
}
if (exchange != 1)
return;
}
}
int main()
{
int i = 0;
int array[10];
for (i = 0; i < 10; i++)
{
printf("请输入第%d个数\n",i+1);
scanf("%d",&array[i]);
}
bubble_sort(array, 10);
printf("逆序排序后为\n");
for (i = 0; i < 10; i++)
{
printf("%d,",array[i]);
}
system("pause");
getchar();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式