早教吧 育儿知识 作业答案 考试题库 百科 知识分享

编程,按数字之和由大到小排列下列数表,相等数字和的不改变顺序.要求单独写一个计算数字之和的方法sum,再在排序方法sort中调用它377415292216812998753345169399

题目详情
编程,按数字之和由大到小排列下列数表,相等数字和的不改变顺序.
要求单独写一个计算数字之和的方法sum,再在排序方法sort中调用它 377 415 292 216 812 998 753 345 169 399
▼优质解答
答案和解析
#include
#include
int sum(int x){
\x09int y = 0;
\x09while (x){
\x09\x09y += x % 10;
\x09\x09x /= 10;
\x09}
\x09return y;
}
int main(){
\x09int a[100];
\x09int i,j,k,temp,n;
\x09printf("输入数字个数:\n");
\x09scanf("%d",&n);
\x09for (i = 0;i < n;i++) scanf("%d",&a[i]);
\x09for (i = 0;i < n;i++)
\x09\x09for (j = i+1;j < n;j++){
\x09\x09\x09if (sum(a[i]) < sum(a[j])){
\x09\x09\x09\x09temp = a[i];
\x09\x09\x09\x09a[i] = a[j];
\x09\x09\x09\x09a[j] =temp;
\x09\x09\x09}
\x09\x09}
\x09for (i = 0;i < n;i++) printf("%d ",a[i]);
}