| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:排序函数里嵌套输出函数,但是输出的值是错的,求助
只看楼主 加入收藏
孟涛
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2013-3-11
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:7 
排序函数里嵌套输出函数,但是输出的值是错的,求助
#include<stdio.h>
#include<stdlib.h>
#define N 3
void RiseBubbleSort(int[],int);
int input();
int output();
int *p;
int main ()
{
    int i,j,c[N];
    p=c;
    input();
    RiseBubbleSort(c,N);
    system("pause");
    return 0;
}
void RiseBubbleSort (int b[],int n)
{
     int i,j,h;
     for(i=1;i<n;i++)
     {
       for(j=0;j<n-i;j++)
       {if(b[j]>b[j+1])
       {
         h=b[j];
         b[j]=b[j+1];
         b[j+1]=h;}
       }
     }
     
      output();
}  
int input()
{
    int i,c[N];
   for(i=0;i<N;i++)
   scanf("%d",p++);
}
int output()
{
    int i,c[N];
    system("color 27");
      //printf("按降序排列\n");
      for(i=0;i<N;i++)
      printf("%d ",c[N]);
}
大神们,求助,我想例如排序函数里边嵌套输出函数,况且还想使用指针,自己知道问题是输出函数不知道自己输出的值是什么,但是不知道怎么改,求帮忙!!!
搜索更多相关主题的帖子: include system return 
2013-10-06 11:39
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
你的数组c是局部变量,根本没赋值

总有那身价贱的人给作业贴回复完整的代码
2013-10-06 11:48
孟涛
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2013-3-11
收藏
得分:0 
回复 2楼 embed_xuel
c是指针名,在这里指的是数组首地址,我把首地址赋值给指针变量p
2013-10-06 14:16
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:1 
回复 3楼 孟涛
就得把话说全了才知道吗?不会思考吗?output函数里的数组c是局部变量,根本没赋值!!!

总有那身价贱的人给作业贴回复完整的代码
2013-10-06 16:54
孟涛
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2013-3-11
收藏
得分:0 
亲,你说的我都知道,我还是新手,这是初次编写较复杂的,上边是我从程序了摘出来的一段,因为刚刚涉及数组指针函数,自己把知识综合起来了,知识面不够,不是很扎实,实在想不起来怎么为c赋值,自己尝试了很多次都失败,望麻烦点亲,求具体步骤代码,拜托!!
2013-10-06 18:16
孟涛
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2013-3-11
收藏
得分:0 
会了亲,知道怎么做了,在主函数中调用input()后再加一个p=c;就行了,不管怎么样谢谢了
2013-10-06 19:35
小武哥253
Rank: 2
等 级:论坛游民
帖 子:14
专家分:10
注 册:2013-7-27
收藏
得分:0 
#include "stdafx.h"
#include "stdlib.h"
#define N 3
void RiseBubbleSort(int b[],int);
void input();
void output();
int *p;
int c[N];
int main(int argc, char* argv[])
{
   
    p=c;
    input();
    RiseBubbleSort(c,N);
    //system("pause");
    return 0;
}
void RiseBubbleSort (int b[],int n)
{
     int i,j,h;
     for(i=1;i<n;i++)
     {
       for(j=0;j<n-i;j++)
       {if(b[j]>b[j+1])
       {
         h=b[j];
         b[j]=b[j+1];
         b[j+1]=h;}
       }
     }
     
      output();
}  
void input()
{
    int i;
    p=c;
   for(i=0;i<N;i++)
   scanf("%d",p++);

}
void output()
{
    int i;    p=c;

    //system("color 27");
      //printf("按降序排列\n");
      for(i=0;i<N;i++)
      printf("%d ",*(p++));

}
我认为把c[N]定义为全局变量好一些
2013-10-06 20:01
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:1 
代码很乱,指针乱用,变量作用域不清楚,无用变量过多,本来可以作为参数的变量放到全局变量了。
楼主你要多看看优秀的代码。

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2013-10-06 21:58
快速回复:排序函数里嵌套输出函数,但是输出的值是错的,求助
数据加载中...
 
   



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

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