int arr[10] = {12,23,33,43,55,66,47,58,92,1110 };
需求是对给定数组进行从大到小进行排序。
用到for循环、if语句以及其他根据需求的控制语句,才刚开始接触代码,希望各位指教。
while (x < 10)
{
printf("%d ", arr[x]);
x++;
} //输出需要排序的数字
printf("\n");
进来后首先对需要排序的数组进行打印,方便排序后进行对比。
接下来是排序过程,用到了双重循环进行排序。
for (i = 0;i < 10;i++) //外层循环遍历数组中每个数字
{
for (j = i + 1;j < 10;j++)
{
if (arr[i] < arr[j])
{
tep = arr[i];
arr[i] = arr[j];
arr[j] = tep;
}
}
printf("%d ",arr[i]);
}
外层循环遍历数组中的每个数,一共10个元素,下标从0开始,内层循环下表始终比外层循环的下表往后一位,并且与前面进行对比,若大于前面的元素,则使用tep变量借助替换。以下是完整代码。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
int x = 0;
int tep = 0;
int arr[10] = {12,23,33,43,55,66,47,58,92,1110 };
while (x < 10)
{
printf("%d ", arr[x]);
x++;
} //输出需要排序的数字
printf("\n");
for (i = 0;i < 10;i++) //外层循环遍历数组中每个数字
{
for (j = i + 1;j < 10;j++)
{
if (arr[i] < arr[j])
{
tep = arr[i];
arr[i] = arr[j];
arr[j] = tep;
}
}
printf("%d ",arr[i]);
}
return 0;
}