| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 66712 人关注过本帖, 1 人收藏
标题:已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组 ...
只看楼主 加入收藏
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
收藏(1)
 问题点数:0 回复次数:13 
已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。以下我自己编,但不知道错在哪里,各位朋友能否帮我看下,谢谢!

void main()
{
int a[6]={1,3,5,7,9};
int i,m,j;
for(i=0;i<5;i++){
printf("%5d",a[i]);
}
printf("please input a digit:\n");
scanf("%d",&m);
if(a[i]<m)
a[5]=m;
else
{
for(i=0;i<5;i++)
if(a[i]>m)
{
for(j=4;j>=i;j--)
a[j+1]=a[j];
a[i]=m;
break;
}
printf("Now the :\n");
for(i=0;i<6;i++)
printf("%d",a[i]);
printf("\n");
}
搜索更多相关主题的帖子: 规律 printf 输入 void quot 
2007-04-30 00:04
yushui
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:1355
专家分:22
注 册:2006-7-19
收藏
得分:0 

#include <stdio.h>
void main()
{
int a[6]={1,3,5,7,9};
int i,m,j;
for(i=0;i<5;i++)
printf("%5d",a[i]);

printf("please input a digit:\n");
scanf("%d",&m);
a[5]=m;
for(i=0;i<6;i++)
for(j=0;j<=i;j++)
{
if(a[i]<a[j])
{
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}

printf("Now the :\n");
for(i=0;i<6;i++)
printf("%d",a[i]);
printf("\n");
}
我改的就是这样了 排序的算法我变了 呵呵


fighting!from now on!
2007-04-30 08:37
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
收藏
得分:0 
谢谢!请问这是什么方法来的,挺不错的!
2007-04-30 11:24
pvocnxit
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-6-12
收藏
得分:0 
LZ的程序有点问题,有个FOR语句差个'}'.还有,你的编写代码的风格应该注意一下,要是代码长的话.....
2楼的方法是从终端输入的那个整型数是先放到数组的a[5]里的,然后再对数组进行排序,我感觉不错!
下面是我在你的代码的基础上改写的,不对的地方请指教,我是菜鸟!谢谢!
# include<stdio.h>
void main()
{
int a[6]={1,3,5,7,9};
int i,m,j;
for(i=0;i<5;i++)
{
printf("%5d",a[i]);
}
printf("please input a digit:\n");
scanf("%d",&m);
for(i=0;i<5;i++)
if(a[i]>m)
{
for(j=5;j>=i;j--)
a[j+1]=a[j];
a[i]=m;
break;
}
else
a[5]=m;
printf("Now the :\n");
for(i=0;i<6;i++)
printf("%d",a[i]);
printf("\n");
}
2007-04-30 12:34
洛川
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-28
收藏
得分:0 

void main()
{
int a[6]={1,3,5,7,9};
int i,m,j,t;
for(i=0;i<5;i++)
{
printf("%5d",a[i]);
}
printf("\nplease input a digit:\n");
scanf("%d",&m);

for(i=0;i<5;i++)
if(a[i]>m)
{t=a[i];a[i]=m;m=t;}
a[5]=m;

printf("Now the :\n");
for(i=0;i<6;i++)
printf("%2d",a[i]);
printf("\n");
}
根据LZ的思路改写的程序
算法优化了一下


2007-04-30 15:05
jakieci
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-23
收藏
得分:0 
写得不错,刚借签了一下。。哈哈密瓜
2010-11-23 19:17
waiyuyi
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-8-21
收藏
得分:0 
5楼的程序看起来有点问题
2011-08-27 13:17
风无声
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-15
收藏
得分:0 
#include <stdio.h>
void main()
{
    int a[10]={1,2,3,4,5,6,15,25,45};
    int i,j;  
    int t,m;
    printf("请输入一个数\n:");
    scanf("%d",&m);
    a[9]=m;
    for(j=0;j<9;j++)
       for(i=0;i<9-j;i++)
           if(a[i]>a[i+1])
           {
               t=a[i];
               a[i]=a[i+1];
               a[i+1]=t;
           }
    for(i=0;i<10;i++)
        printf("%d\n",a[i]);
}
2011-09-15 22:28
kdt602
Rank: 1
来 自:浙江杭州
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-11-16
收藏
得分:0 
8楼的错的。。我们老师给我了一个半对半错
2012-12-07 08:30
haozhi_1
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-7-22
收藏
得分:0 
回复 楼主 feelings010

 int main()
 {
 int a[6] = {1,3,6,7,9};
   int i,j,x,t;
   printf("insert data:");  
  scanf("%d",&x);  
  for(i=0;i<5;i++)
    if(x<a[i])  
    break;   
   for(j=5;j>i;j--)
      a[j]=a[j-1];
        a[j]=x;     
   printf("Now array a:\n");
       for(i=0;i<6;i++)  
      printf("%4d",a[i]);  
      printf("\n");     
   return 0;
    }
2014-07-22 15:37
快速回复:已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入 ...
数据加载中...
 
   



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

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