帮忙看个小程序,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/22 10:07:51
我怎么输入一个4位数后回车就出错了啊

#include "stdio.h"
void main ()
{
int num,a,b,c,d,t;
scanf("%d",num);
a=num % 100;
num=num - 1000 * a;
b=num % 100;
num=num - 100 * b;
c=num % 10;
num=num - 10 * c;
d=num;
printf("%d,%d,%d,%d\n",a,b,c,d);
if (a<b)
{
t=a;
a=b;
b=t;

}
if (a < c)
{
t=a;
a=c;
c=t;
}

if ( b < c )
{
t=b;
b=c;
c=t;

}

if (d<=c) printf ("%d,%d,%d,%d\n",a,b,c,d);
else if (d<=b ) printf ("%d,%d,%d,%d,%d\n",a,b,d,c);
else if (d<=a ) printf ("%d,%d,%d,%d\n",a,d,b,c);
else printf ("%d,%d,%d,%d\n",d,a,b,c);
}

据我分析,你这题的目的是:求出四位数每一位的数字,并将四个数字从大到小排列。
代码主要有两个问题:
1、scanf("%d",num); 应该为 scanf("%d",&num);
2、a=num % 100;
b=num % 100;
c=num % 10;
应该为
a=num / 1000;
b=num / 100;
c=num / 10;

a=num % 100;

这一句,应该是a=num % 1000是吧?

void main ()
{
int num,a,b,c,d,t;
scanf("%d",num);//错了,少了个& scanf("%d",&num);
a=num % 100;
```````
改了后就OK了

#include "stdio.h"
void main ()
{
int num,a,b,c,d,t;
scanf("%d",&num);//注意格式
a=num % 100;
num=num - 1000 * a;
b=num % 100;
num=num - 100 * b;
c=num % 10;
num=num - 10 * c;
d=num;
printf("%d,%d,%d,%d\n",a,b,c,d);
if (a<b)
{
t=a;
a=b;
b=t;

}
if (a < c)
{
t=a;
a=c;
c=t;
}

if ( b < c )
{
t=b;
b=c;<