C语言高手进,,急救

来源:百度知道 编辑:UC知道 时间:2024/05/18 09:36:24
求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数, 再把所有满足此条件的四位数依次存入数组b中, 然后对数组b的四位数按从大到小的顺序进行排序。

#include <stdio.h>
#include <conio.h>

int main(){
int Qian,Bai,Shi,Ge,num=0;
for(Qian = 1;Qian<9;Qian++)
for(Bai = 0;Bai<9;Bai++)
if(Bai+Qian>=9) break;
else for(Shi = 0;Shi<9;Shi++)
if(Qian+Bai+Shi>=9) break;
else for(Ge = Qian+Bai+Shi+1;Ge<=9;Ge++)
num++;
int b[num];
int a = 0;
for(Qian = 8;Qian>0;Qian--)
for(Bai = 8-Qian;Bai>=0;Bai--)
for(Shi = 8-Qian-Bai;Shi>=0;Shi--)
for(Ge = 9;Ge>Qian+Bai+Shi;Ge--)
b[a++]=Qian*1000+Bai*100+Shi*10+Ge;
for(int i = 0; i<num; i++){
printf("%d\t",b[i]);
}
getch();
}

说清楚点,是个位数分别减去其他数还是全部减去。例如:个位数-十位数-百位数-千位数>0
还是:个位数-十位数>0,个位数-百位数>0,个位数-千位数>0