用计算机C语言编程,程序设计题:从键盘输入十个数,将他们进行降序排列。 求解答需要详细过程,谢谢!
展开全部
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);
}
//直接可用,就是冒泡算法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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]);
}
}
冒泡排序看的累,可以百度看看别人是怎么讲解的,也可以在循环的冒泡排序的过程中将每次一的排序过程打印出来,看看中间的过程帮组理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,这是我自己亲自写的代码,经过调试成功了。有不明白的可以问我。
#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");
}
#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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询