LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 832|回复: 0

提供一个程序,大家来改错!解释要详细点哦!!

[复制链接]
发表于 2002-11-9 20:23:54 | 显示全部楼层 |阅读模式
改错
long Extra;
int th5 (int x5)
{
(int) (x5=Extra/10000);
Extra=Extra-10000*x5;
return x5;
}
int th4 (int x4)
{
(int) (x4=Extra/1000);
Extra=Extra-1000*x4;
return x4;
}
int th3 (int x3)
{
(int) (x3=Extra/100);
Extra=Extra-100*x3;
return x3;
}
int th2 (int x2)
{
(int) (x2=Extra/10);
Extra=Extra-10*x2;
return x2;
}
int th1 (int x1)
{
(int) (x1=Extra);
return x1;
}

print(int lv,int Extra,int opp)
{
printf ("This is a %d level number, %d",lv,Extra);
printf (" The opp number is %d\n",opp);
}

main()
{
int lv,opp,x1=0,x2=0,x3=0,x4=0,x5=0;
long Extra=0;
printf ("Input a number:");
scanf ("%d",&Extra);
if (Extra>99999 && Extra<0) printf ("error!\n");
else if (Extra<10) {lv=1;opp=Extra;print(lv,Extra,opp);}
  else if (Extra<100) {lv=2;opp=th2(x2)+10*th1(x1);print(lv,Extra,opp);}
   else if (Extra<1000) {lv=3;opp=th3(x3)+10*th2(x2)+100*th(x1);print(lv,Extra,opp);}
     else if (Extra<10000) {lv=4;opp=th4(x4)+10*th3(x3)+100*th2(x2)+1000*th1(x1);print(lv,Extra,opp);}
       else {lv=5;opp=th5(x5)+10*th4(x4)+100*th3(x3)+1000*th2(x2)+10000*th1(x1);print(lv,Extra,opp);}
}
一行写不下了不好意思
目的是排列一个5位以下的数的逆序数,现在知道可以用字符串解决了,可是不知道这样为什么错了,请大侠指教一二
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表