回 帖 发 新 帖 刷新版面

主题:二级C语言上机试题精选

个十百千位加减并大小排序问题:

  求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。
  {
  int i,j,k,t;
  for(i=0;i<300;i++)
  if(a[i] -a[i]/1000-a[i]/100 -a[i]/10 >0)
  b[cnt++]=a[i];
  for(i=0;i  {k=i;
  for(j=i+1;j  if(b[k]  if(k!=i){t=b[k];b[k]=b[i];b[i]=t;}
  }
  


更多请进入“好好考网站”(www.hhkao.com)查看
ciciyanxiao

回复列表 (共4个回复)

沙发

a[i] -a[i]/1000-a[i]/100 -a[i]/10 明显错了
比如 1234 给你,你进行的是 1234 - 1 - 12 - 123
而题目要求的是 4 - 1 - 2 - 3

“更多请进入“好好考网站”(www.hhkao.com)查看”
--- 连打小广告都不用心,你还是自宫吧

板凳

[quote]
--- 连打小广告都不用心,你还是自宫吧[/quote]
哈哈哈哈

3 楼

不好意思,太马虎了!
改了一下:
 {
  int i,j,k,t;
  for(i=0;i<300;i++)
  if(a[i]%10-a[i]/1000-a[i]/100%10-a[i]/10%10>0)
  b[cnt++]=a[i];
  for(i = 0;i < cnt - 1;i++)
   {
    k=i;
    for(j = i + 1;j < cnt;j++)/
     if(b[k] > b[j])
      k = j;
       if(k != i)
    {
     t = b[k];
     b[k] = b[i];
     b[i] = t;
    }
   } 

希望大家多提宝贵意见!谢谢!

4 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册