一种是是用字符串方式读取,另一种情况,如果数字不超出范围,可以用int读取,然后分解出各位上的数字
你的代码是按照字符读取的,稍微修改一下就可以了。
修改后运行结果:
代码修改如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a[100], temp, i = 0, j, k = 0;
char c;
while (1)
{
scanf("%c", &c);
if (c == '\n')
break;
else
a[k++] = c - '0';
}
//排序
for (i = 0; i < k - 1; i++)
{
for (j = 0; j < k - 1 - i; j++)
{
if (a[j] > a[j + 1]) //从小到大排序,如果要从大到小排序,则把>改成<即可
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
//输出
printf("result\n");
for (i = 0; i < k; i++)
printf("%d", a[i]);
return 0;
}