标题:错误出在那里(函数调用求冒泡排序)
只看楼主
jh8792123
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-16
 问题点数:0 回复次数:3 
错误出在那里(函数调用求冒泡排序)

#include<stdio.h>
void main()
{
int n,i;
float a[100];
printf("请输入N个数\n");
scanf("%d",&n);
printf("请输入%d个数\n",n);

for(i=0;i<n;i++)
scanf("%f",&a[i]);
for(i=0;i<n;i++)
printf("%f ",a[i]);
printf("下面对N个数进行冒泡排序\n");

void float fact(float *array, int n);
fact(a,n);

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


void float fact(float *array, int n)


{
int i,j,k=n;
float *m;
for(i=0;i<k;i++)
{
for(j=0;j<n-1;j++)
{
if(*array>*(array+1))
{
*m=*(array+1);
*(array+1)=*array;
*array=*m;
}
}
n--;

}

}

搜索更多相关主题的帖子: 函数 float 冒泡 void fact 
2007-08-16 09:37
noah_shi
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-8-14
得分:0 

错误点:
1。void float fact(float *array, int n); //返回值到底是void 还是float?只能有一个!
2。float *m; //未初始化指针!
3。算法实现就是错的!改成如下:


void fact(float *array, int n)
{
int i,j;
float a = 0;
float *m = &a;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(*(array+i)>*(array+j))
{
*m=*(array+j);
*(array+j)=*(array+i);
*(array+i)=*m;
}
}
}
}



2007-08-16 11:16
cinki
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-8-16
得分:0 
测试未果...LZ能把调试结果发上来不   void float fact(float *array, int n);感觉重复定义了吧

[此贴子已经被作者于2007-8-16 11:20:18编辑过]



怀才就像怀孕,时间长了才能看出来...
2007-08-16 11:19
jh8792123
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-16
得分:0 
特别感谢 我知道了 !!!!!

2007-08-16 11:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-163067-1-1.html




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

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