| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 458 人关注过本帖
标题:请教问题~~~关于数组的一道题
只看楼主 加入收藏
sophy123
Rank: 1
等 级:新手上路
帖 子:30
专家分:2
注 册:2011-5-8
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:3 
请教问题~~~关于数组的一道题
要求:①程序运行时先显示Please input numbers:,再从键盘上读入一组整数(只考虑int型),数
与数之间只使用空格或回车作分隔。数可正可负,最多10000个,但若读入的数为-222时,则表示输入
结束且-222不算在该组数内。
  ②对这一组数按从小到大的顺序进行排序。
  ③将排序后的这一组数输出到屏幕上,输出格式为每行6个数,数与数之间使用逗号(,)分隔,两个

逗号之间的宽度(不算逗号)为6且使用左对齐格式。注意,行尾没有逗号。
#include<stdio.h>
#include<stdlib.h>
#define PWIDTH 6
void order(int x[]);
void print(int x[]);
int n;
int main(void)
{
    int *p;
    int i=0;
    p=(int*)malloc(10000*sizeof(int));
    printf("请输入整数:");
    do{
        scanf("%d",&p[i]);
        i++;
      }while(p[i-1]!=-222);
      n=i-1;
   order(p);
 
   
system("PAUSE");
return 0;   
}

void order(int x[])//插入排序法
{
    int i,j;
    for(i=2;i<=n;i++)
       if(x[i]<x[i-1])
       {
              x[0]=x[i];j=i-1;
              do{
                  x[j+1]=x[j];
                  j--;
              }while(x[0]<x[j]);
              x[j+1]=x[0];
       }
      print(x);
}

void print(int x[])
{
    int k,count=0;
    for(k=0;k<=0;k++)
    {
           printf("%d,",x[k]);
           if(++count>=PWIDTH)
           {
               putchar('\n');
               count=0;
           }
       }
}
请问哪里有问题呢?数组和指针学的好晕的说
搜索更多相关主题的帖子: 键盘 
2011-05-26 11:37
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
看不懂。帮顶。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-26 11:54
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:3 
大哥 你代码怎么写的啊  输入不对 排序还把-222算进去
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define PWIDTH 6
void InsertSort(int a[],int n);
void print(int x[]);
int n;
int main(void)
{
    int p[100];
    int i=0,m;
    printf("请输入整数:");
    scanf("%d",&m);
    do{
        scanf("%d",&p[i]);
        i++;
      }while(p[i-1]!=-222);
      n=i-1;
   InsertSort(p,n);
   print(p);

  
system("PAUSE");
return 0;   
}

void InsertSort(int a[],int n)
{
    int j;
    int temp;
    for(int i=1;i<n;i++)
    {
        temp=a[i];
        j=i-1;
        while(j>=0&&a[j]>temp)
        {
            a[i]=a[j];
            a[j]=temp;
            --j;
            --i;
        }
    }
}
void print(int x[])
{
    int k,count=0;
    for(k=0;k<n;k++)
    {
           printf("%d,",x[k]);
           if(++count>=PWIDTH)
           {
               putchar('\n');
               count=0;
           }
       }
}

排序重新给你写的。。。。。。。。。。。

                                         
===========深入<----------------->浅出============
2011-05-26 11:54
sophy123
Rank: 1
等 级:新手上路
帖 子:30
专家分:2
注 册:2011-5-8
收藏
得分:0 
回复 3楼 laoyang103
哦哦,谢谢啦~我得把基本概念掌握好。。。
2011-05-26 12:49
快速回复:请教问题~~~关于数组的一道题
数据加载中...
 
   



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

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