【发布时间】:2021-09-16 16:57:51
【问题描述】:
#include <stdio.h>
int generator(int n) {
int ten[6]; // array that saves digit number
int result = n;
for (int i = 0; i < 6; i++) {
ten[i] = n % 10; //saving digit number
n = n / 10;
result += ten[i];
}
return result;
}
void sort(int x, int y) { //the problem function. it didn't work
if (x > y) {
int temp;
temp = y;
y = x;
x = temp;
}
int main(void) {
int number[10000];
int selfNumber[10000];
int result[10000];
for (int i = 0; i < 100; i++) {
number[i] = generator(i+1); //generator function
}
for (int i = 0; i < 100; i++) {
printf("%d\n", number[i]);
}
for (int i = 0; i < 100; i++) {
if (number[i] > number[i + 1]) { //it worked.
int temp;
temp = number[i + 1];
number[i+1] = number[i];
number[i]=temp;
}
sort(number[i], number[i + 1]);
}
for (int i = 0; i < 100; i++) {
printf("%d\n", number[i]);
}
return 0;
我定义了 void 函数 sort 来按大小对数字进行排序。但它没有用。 因此,我在 main 函数中使用 if 对数字进行大小排序。 我不知道为什么它的工作方式不同。
【问题讨论】:
标签: c sorting if-statement main self