| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7098 人关注过本帖
标题:将任意个数按大小顺序输出
取消只看楼主 加入收藏
c语言求助
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-9-24
结帖率:66.67%
收藏
已结贴  问题点数:6 回复次数:0 
将任意个数按大小顺序输出
程序代码:
#include<stdio.h>
int main()
{//主函数开始
int a[20];
int i,t,m,j,n,p;
printf("please input the length of array(<=20):\n");
scanf("%d",&t);
printf("please input %d datas:\n",t);
scanf("%d",&a[0]);//单独输入a[0],作为用于比较的最基础的数。(为a[1]提供比较)
   
for(j=1;j<t;j++)
   {//A循环开始
   scanf("%d",&a[0]);

     for(i=0;i<j;i++)//注意:这里应为i<j,不是i<t!
     {//B循环开始
         if(a[j]>a[i])break;//逐个比较,找到新数据的正确位置a[i],跳出B循环
     }//B循环结束
    
     m=j;
      p=j+1;
     do
             {//C循环开始(a[i]及其之后的数据,包括a[j],每个数据都往后挪一位(a[x+1]=a[x]))
                 n=m+1;
                 a[n]=a[m];//从后面开始,把数据后挪
                 m=m-1;
             }while(m>=i);//C循环结束
    a[p]=a[i];//把新数据放入正确的位置a[i](由于往后挪一位,新数据由a[j]移至a[j+1]即a[p])
   
   }//A环结束

for(j=0;j<t;j++)
printf("%d\n",a[j]);//数据输入时已经排好大小放入对应的a[]中,按a[0]、a[1]、a[2]...顺序输出即可

return 0;
}//主函数结束

为什么运行的结果会乱码,输出的数都变成一些很奇怪、很大的数?求教!谢谢!
2016-10-05 20:18
快速回复:将任意个数按大小顺序输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020659 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved