| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 805 人关注过本帖
标题:主函数调用三种排序方法
只看楼主 加入收藏
魔问
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
主函数调用三种排序方法
要求主函数调用三种排序方法,做了一个,但运行无结果,望能找出错误!谢谢!
#include "stdio.h"
int x[10];
void read_data(int e[], int p);
void write_data(int f[], int q);
int sort1(int a[], int s);int sort2(int b[], int y);int sort3(int c[], int z);
int main()
{
 int n;
 printf("请选择排序方法:“1”为插入法,“2”为选择法,“3”为冒泡法");
 printf("\n");
 n=getchar();
 read_data(x, 10);
 switch(n)
 {
     case 1:sort1(x, 10);break;
     case 2:sort2(x, 10);break;
     case 3:sort3(x, 10);break;
 }
 write_data(x, 10);
 return 0;
}
 void read_data(int e[], int p)
 {
     int i;
     printf("请输入10个数:\n");
     for(i=0;i<10;i++)
     scanf("%d",&x[i]);
 }
 int sort1(int a[], int s)
{int i,j,t,k;
 for(i=0;i<s-1;i++)
 {
  for(k=i,j=i+1;j<10;j++)
   if(x[k]>x[j])
    k=j;
   if(i!=k)
   {
    t=x[i];
    x[i]=x[k];
    x[k]=t;
   }
 }
}
int sort2(int b[], int y)
{int i,j,t;
    printf("\n");
    for(i=0;i<y;i++)
  {
      t=x[i];
      for(j=i-1;j>=0&&t<x[j];j--)
    x[j+1]=x[j];
    x[j+1]=t;
  }
}
int sort3(int c[], int z)
{
 int i,j,t;
 for(j=0;j<z;j++)
  for(i=0;i<z-1-j;i++)
   if(x[i]>x[i+1])
    {t=x[i];x[i]=x[i+1];x[i+1]=t;}
}
 void write_data(int f[], int q)
 {   
  int i;
  printf("从小到大排列:\n ");
     for(i=0;i<q;i++)
     printf("%4d",x[i]);
   
}
搜索更多相关主题的帖子: include void 插入法 
2012-06-03 16:51
oueryixiaxia
Rank: 2
等 级:论坛游民
帖 子:12
专家分:44
注 册:2012-5-21
收藏
得分:7 
程序代码:
#include "stdio.h"
int x[10]={0};
void read_data(int *e);
void write_data(int *f);
void sort1(int *a);
void sort2(int *b);
void sort3(int *c);
int main()
{
    int n;
    printf("请选择排序方法:“1”为插入法,“2”为选择法,“3”为冒泡法");
    printf("\n");
    scanf("%d",&n);
    read_data(x);
    switch(n)
    {
    case 1:
        {sort1(x);break;}
    case 2:
        {sort2(x);break;}
    case 3:
        {sort3(x);break;}
    }
    write_data(x);
    return 0;
}
void read_data(int *e)
{
    int i;
    printf("请输入10个数:\n");
    for(i=0;i<10;i++)
        scanf("%d",&e[i]);
}
void sort1(int *a)
{
    int i,j,t,k;
    for(i=0;i<9;i++)
    {
        for(k=i,j=i+1;j<10;j++)
            if(a[k]>a[j])
                k=j;
        if(i!=k)
        {
            t=a[i];
            a[i]=a[k];
            a[k]=t;
        }
    }
}
void sort2(int *b)
{int i,j,t;
printf("\n");
for(i=0;i<10;i++)
{
    t=x[i];
    for(j=i-1;j>=0&&t<b[j];j--)
        x[j+1]=x[j];
    x[j+1]=t;
}
}
void sort3(int *c)
{
    int i,j,t;
    for(j=0;j<10;j++)
        for(i=0;i<10-1-j;i++)
            if(c[i]>c[i+1])
            {t=c[i];c[i]=c[i+1];c[i+1]=t;}
}
void write_data(int *f)
{ 
    int i;
    printf("从小到大排列:\n ");
    for(i=0;i<10;i++)
        printf("%4d",f[i]);
} 



自己看一下,你的那个有很多错误,尤其,接受整型数据怎么用getchar();???
2012-06-03 18:05
魔问
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-3
收藏
得分:0 
回复 楼主 魔问
太感谢了啊,后天就考试了,做不出来就惨了!
但有一点不太懂,int x[10]={0} 什么意思啊?
2012-06-03 22:29
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:7 
回复 3楼 魔问
路过,给数组内十个元素都初始化为0
2012-06-03 23:03
oueryixiaxia
Rank: 2
等 级:论坛游民
帖 子:12
专家分:44
注 册:2012-5-21
收藏
得分:0 
ls对的
2012-06-03 23:11
魔问
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-3
收藏
得分:0 
哦哦!谢啦!
2012-06-03 23:21
sisos
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2012-6-3
收藏
得分:7 
学习了
2012-06-04 08:40
快速回复:主函数调用三种排序方法
数据加载中...
 
   



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

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