| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1544 人关注过本帖
标题:主函数里的冒泡算法为什么编写成函数就出了差错?
只看楼主 加入收藏
兔先生
Rank: 2
等 级:论坛游民
帖 子:41
专家分:20
注 册:2018-11-9
结帖率:63.64%
收藏
已结贴  问题点数:20 回复次数:6 
主函数里的冒泡算法为什么编写成函数就出了差错?
在主函数里面冒泡算法没有问题,但被单独拿出来编成一个子函数就出错了,少了最后一个数,开头多了一个0。。。。。。
这是主函数
#include<stdio.h>
#include<conio.h>
int main()
 {
     int a[]={9,8,13,4,5,6,3,2,1};
     int i,j,t;
     for(i=0;i<9;i++)
     {
         for(j=0;j<9-i;j++)
         {
             if(a[j]>a[j+1])
             {
              t=a[j];
               a[j]=a[j+1];
               a[j+1]=t;
               
             }
         }
     }
     for(i=0;i<9;i++)
     printf("%d ",a[i]);
     getch();
 }
这是弄成子函数的代码
#include<stdio.h>
#include<conio.h>
int maopao(int b[],int n);
int main()
 {   
     int i,j;
     int a[]={9,8,13,4,5,6,3,2,1};
      maopao( a,9);
    for(i=0;i<9;i++)
     printf("%d ",a[i]);
     getch();
 }
 int maopao(int b[],int n)
 {int i,j,t;
     for(i=0;i<9;i++)
     {
         for(j=0;j<9-i;j++)
         {
             if(b[j]>b[j+1])
             {
              t=b[j];
               b[j]=b[j+1];
               b[j+1]=t;
               
             }
         }
     }
    }
搜索更多相关主题的帖子: 主函数 include int for i++ 
2018-11-09 22:49
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:10 
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
void maopao(int b[], int n);
int _tmain(int argc, _TCHAR* argv[])
{
        int i, j;
        int a[] = { 9, 8, 13, 4, 5, 6, 3, 2, 1 };
        maopao(a, 9);
        for (i = 0; i<9; i++)
            printf("%d ", a[i]);
        getch();
   
    return 0;
}
void maopao(int b[], int n)
{
    int i,j, t;
    for (i = 0; i<8; i++)
    {
        for (j = 0; j<8 - i; j++)
        {
            if (b[j]>b[j + 1])
            {
                t = b[j];
                b[j] = b[j + 1];
                b[j + 1] = t;

            }
        }
    }
}

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-09 23:07
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
函数maopao  既然没有返回值,直接用void!
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册


学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-09 23:09
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:10 
for(j=0;j<9-i;j++)
          {
              if(b[j]>b[j+1])//b[j+1]会运行到b[9]b[0]到b[9]有10个但你的a[]只有9个数所已改成8-i
2018-11-10 09:27
兔先生
Rank: 2
等 级:论坛游民
帖 子:41
专家分:20
注 册:2018-11-9
收藏
得分:0 
回复 4楼 豆豆的滴
谢谢大佬,但为什么在主程序里运行没有错?
2018-11-11 20:42
兔先生
Rank: 2
等 级:论坛游民
帖 子:41
专家分:20
注 册:2018-11-9
收藏
得分:0 
回复 2楼 Tomorrw_I
谢谢大佬。
2018-11-11 20:44
ckbihu
Rank: 2
等 级:论坛游民
帖 子:2
专家分:20
注 册:2007-10-1
收藏
得分:0 
注意实参和形参的区别
主程序中直接使用的是a[],而在子程序中使用的不是a[].
2018-11-12 18:09
快速回复:主函数里的冒泡算法为什么编写成函数就出了差错?
数据加载中...
 
   



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

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