该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
【程序填空】
题目:从键盘输入1个正整数,把这个整数的各位数字重新组合,
形成一个位数不变的最大数和最小数,并计算最大数与最
小数的差。
例如:输入241897,重组后最大数为:987421,最小数为:124789,
差为:862632
输入240097,重组后最大数为:974200,最小数为:200479,
差为:773721
#include
void diss(long a)
{
int i,j,w,flag,num,t;
long max,min,dis;
int c[10];
num=a;
for(w=0;num!=0;w++)
{
c[w]=num%10;
num/=10;
}
for(i=0;i
{
flag=1;
for(j=w-1;j>i;j--)
if(c[j]
{
t=c[j];c[j]=c[j-1];c[j-1]=t;
flag=0;
}
if(flag)
break;
}
max=min=0;
for(i=0;i
max=【?】;
i=0;
while(c[i]==0)
【?】;
t=c[0],c[0]=c[i],c[i]=t;
for(i=0;i
min=min*10+c[i];
dis=max-min;
printf("最大数为:%d,最小数为:%d,差为:%d\n",max,min,dis);
}
int main(){
long num;
printf("请输入一个正整数:\n");
scanf("%ld",&num);
diss(num);
return 0;
}
答案1:
max*10+c[w-i-1]
或
max*10+c[w-1-i]
或
c[w-1-i]+max*10
或
c[w-i-1]+max*10
或
10*max+c[w-1-i]
或
10*max+c[w-i-1]
或
c[w-i-1]+10*max
或
c[w-1-i]+10*max
答案2
i++
或
++i
或
i=i+1
或
i+=1