编程第21题。求C语言大神
2个回答
展开全部
#include <stdio.h>
void sortNumbers(int * arr);
int main(int argc, char * argv[]) {
int arr[3];
printf("请输入三个整数,用逗号分隔:\r\n");
scanf("%d,%d,%d", &arr[0], &arr[1], &arr[2]);
sortNumbers(arr);
printf("排序之后的结果为:%d, %d, %d", arr[0], arr[1], arr[2]);
return 0;
}
void sortNumbers(int * arr) {
int i = 0, index, flag = 0;
int sorted[3];
sorted[0] = 0x80000000;
sorted[1] = 0x80000000;
sorted[2] = 0x80000000;
// first looping : calculate the maxium number
for (i = 0; i < 3; i++) {
if (sorted[2] < arr[index]) {
sorted[2] = arr[index];
}
}
// second looping : middle number
for (i = 0; i < 3; i++) {
if (sorted[2] > arr[index]) {
if (sorted[1] < arr[index]) {
sorted[1] = arr[index];
}
}
}
// last thing : lowest number
for (i = 0; i < 3; i++) {
if (sorted[2] > arr[index] && sorted[1] > arr[index]) {
sorted[0] = arr[index];
break;
}
}
arr[0] = sorted[0];
arr[1] = sorted[1];
arr[2] = sorted[2];
}
展开全部
#include <stdio.h>
void sort(int *p, int n)
{
for (int i = 0; i < n; ++i)
{
int min = i, temp;
for (int j = i + 1; j < n; ++j)
if (p[j] < p[min])
min = j;
temp = p[i];
p[i] = p[min];
p[min] = temp;
}
}
int main()
{
const int n = 3;
int num[n];
for (int i = 0; i < n; ++i)
scanf("%d", &num[i]);
sort(num, n);
for (int j = 0; j < n; ++j)
printf("%d ", num[j]);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询