| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:调用冒泡法函数 哪里错了
只看楼主 加入收藏
lin6510
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-11-16
结帖率:100%
收藏
 问题点数:0 回复次数:8 
调用冒泡法函数 哪里错了
#include"stdio.h"
void main()
{
    void sort(int a[],int n);
    int a[1000];
    int n,i;
    printf("input you text number:");
    scanf("%d",&n);
    printf("number:");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
     printf("\n");
    sort(a,10);

    for(i=0;i<n;i++)
       printf("%3d",a[i]);

  getch();
}

void sort(int a[],int n)
{
     int t,i,j;

    for(i=0;i<(n-1);i++)
        for(j=0;j<(n-1)-i;j++)
           {
            if(a[j]>a[j+1])
             {
               t=a[j];
               a[j]=a[j+1];
               a[j+1]=t;
             }

           }





}
搜索更多相关主题的帖子: number include void 
2013-01-19 10:51
Johnsonzhen
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:108
注 册:2013-1-19
收藏
得分:0 
'getch' : undeclared identifier
2013-01-19 10:58
lin6510
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-11-16
收藏
得分:0 
回复 2楼 Johnsonzhen
我用的是win-tc,所以要加这句
2013-01-19 11:05
Johnsonzhen
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:108
注 册:2013-1-19
收藏
得分:0 
回复 3楼 lin6510
#include"stdio.h"
void sort(int a[],int n);//函数声明!
void main()
{
    int a[1000];
    int n,i;
    printf("input you text number:");
    scanf("%d",&n);
    printf("number:");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
     printf("\n");
    sort(a,n);//这里改过了!

    for(i=0;i<n;i++)
       printf("%3d",a[i]);
//VC++6.0没用那句!
}

void sort(int a[],int n)
{
     int t,i,j;

    for(i=0;i<n;i++)//这里改过了!
    {    for(j=i+1;j<n;j++)
            if(a[i]>a[j])
             {
               t=a[i];
               a[i]=a[j];
               a[j]=t;
             }
    }
}
你看行不行!
2013-01-19 11:22
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
sort(a,10);
你要对输入的n个数排序,调用的时候却传对10个数排序?自己用心思考过吗?

总有那身价贱的人给作业贴回复完整的代码
2013-01-19 11:22
Johnsonzhen
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:108
注 册:2013-1-19
收藏
得分:0 
回复 4楼 Johnsonzhen
你那个程序中sort(a,10),改成sort(a,n)也行的!
2013-01-19 11:30
huang857
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2013-1-19
收藏
得分:0 
void sort(int a[],int n)
 {
      int t,i,j;
 
    for(i=0;i<(n-1);i++)
         for(j=0;j<(n-1)-i;j++)
            {
             if(a[j]>a[j+1])
              {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
              }
 
           }
 

是这里的问题, for(j=0;j<(n-1)-i;j++)
改为for(j=i+1;j<n;j++)就没问题了冒泡的思想理解了就懂了
for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
        {
            if(啊[i]<a[j])
{将这两个数交换}
        }
2013-01-19 11:54
xiaoshalong
Rank: 2
等 级:论坛游民
帖 子:20
专家分:16
注 册:2013-1-10
收藏
得分:0 
回复 7楼 huang857
这怎么可能正确
2013-01-19 21:26
轻风无言
Rank: 2
等 级:论坛游民
帖 子:27
专家分:25
注 册:2012-12-19
收藏
得分:0 
#include"stdio.h"
void sort( int a[], int n );

int main( void )
{
     int a[ 1000 ];
     int n,i;
     printf( "input you text number:" );
     scanf( "%d", &n );
     printf( "number:" );
     for( i = 0; i < n; i++ )
         scanf( "%d", &a[i] );
      sort( a, n );
 
    for( i = 0; i < n; i++ )
        printf( "%3d", a[ i ] );
     printf( "\n" );

 return 0;
}
 
void sort( int a[], int n )
{
      int t,i,j;
 
    for( i = 0; i < ( n - 1 ); i++ )
         for( j = 0; j < ( n - 1 ) - i; j++ ){
             if( a [ j ] > a[ j + 1 ] ){
                t = a[ j ];
                a[ j ] = a[ j + 1 ];
                a[ j + 1 ] = t;
              }//end if
         }//end inner for
}//end function sort
//我帮你重新排版了下,代码风格太乱了,刚学的时候养成好习惯啊,我运行正确了,有空看看

2013-01-19 23:51
快速回复:调用冒泡法函数 哪里错了
数据加载中...
 
   



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

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