| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 987 人关注过本帖
标题:关键词:数组,插入数后按原大小顺序输出
只看楼主 加入收藏
杨唐卫
Rank: 2
等 级:论坛游民
帖 子:24
专家分:23
注 册:2014-4-16
结帖率:83.33%
收藏
已结贴  问题点数:18 回复次数:10 
关键词:数组,插入数后按原大小顺序输出
程序代码:
#include<stdio.h>
int main()
{
   int a[10],b[10];
   int t,c,d,f,g;
   scanf("%lf",&t);
   for(g=0;g<=9;g++)
   {
       scanf("%lf",&a[g]);
   }
        for(c=0;c<=8;c++)
   
            {
                if(a[c+1]-t+a[c]-t<a[c+1]-a[c])
               
            {
                    for(f=0;f<=c;f++)
       
                        printf("%f ",a[f]);
       
            }
            }
            printf("%f",t);
            for(d=c+1;d<=9;d++)
            {printf("%f",a[d]);}


return 0;
}
         我想让用户输入的一个数组a【10】(十个数),另外输入一个数让其按大小顺序插入后输出。


捕获.PNG (7.07 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 关键词 color 
2014-04-21 22:11
冰释芊芊
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2014-4-7
收藏
得分:6 
整型数组怎么可以用%f的格式输入呢
2014-04-21 23:05
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:6 
你这可不是保序插入。除了格式输入不对以外,思路完全不对。你还是百度一个分析一下吧。
2014-04-22 09:40
杨唐卫
Rank: 2
等 级:论坛游民
帖 子:24
专家分:23
注 册:2014-4-16
收藏
得分:0 
好的,我会注意的。
2014-04-22 20:49
杨唐卫
Rank: 2
等 级:论坛游民
帖 子:24
专家分:23
注 册:2014-4-16
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
   int a[10],b[10];
   int t,c,f,g;

 
   for(g=0;g<=9;g++)
   {
       scanf("%d",&a[g]);
   }
      scanf("%d",&t);
      for(c=0;c<=8;c++)
   
            {
                if(a[c+1]-t+a[c]-t<a[c+1]-a[c])
                {printf("%d ",a[c]);}
                else
                    break;
               
      }   
        printf("%d ",t);
            for(c;c<=9;c++)
            {printf("%d ",a[c]);}
又写了一遍。看看。
2014-04-22 21:25
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
给你一个看看吧。
程序代码:
#include <stdio.h>
int main()
{   
    int i,j,x,a[11];
    for( i = 0; i < 10; i++)
        scanf("%d",&a[i]);

    scanf("%d",&x);

    for(i=0;i<10;i++)
          if(a[i]>=x)break;          //定位

    for(j=9;j>=i;j--)a[j+1]=a[j]; //插入: 后移及插入
      a[i]=x;

    printf("插入后的数组:\n");
    for(i=0;i<11;i++) printf("%5d",a[i]);
    printf("\n");  

    return 0;
}
2014-04-22 22:39
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
保序插入的算法思路:
1 定位第一个不小于x的数据的位置i,即为插入x的正确位置。
2 依次将a9…ai后移,再将x赋给ai.(是由a9到ai后移!)
2014-04-22 22:42
杨唐卫
Rank: 2
等 级:论坛游民
帖 子:24
专家分:23
注 册:2014-4-16
收藏
得分:0 
思路很清晰,步骤很明确。
2014-04-23 21:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:6 
回复 6 楼 ying8501
這個跟題目要求的一樣嗎?

授人以渔,不授人以鱼。
2014-04-24 11:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
題目要求“让其按大小顺序插入后输出”,表示原數組可能是沒經排序的,用手工輸入的也確實不能保證排序性,如果不需排序,那麽題目的敘述也不能確定要插入的數在什麽位置。6樓的代碼,在定位的時候,就假定數組已經排序過了,然後在後面插入,殊不知這是不符合題目要求的。寫代碼太快了不是好事,這又是一明證。總以寫代碼為樂的,叫coder,不是programmer。如果題目的要求不明確,為什麽不問明白了再寫代碼?

[ 本帖最后由 TonyDeng 于 2014-4-24 12:43 编辑 ]

授人以渔,不授人以鱼。
2014-04-24 11:52
快速回复:关键词:数组,插入数后按原大小顺序输出
数据加载中...
 
   



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

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