关于C的

shaonianchucheng 2010-03-05 11:53:44
这个算冒泡排序吗?编译没问题,但实现不了想要的功能
#include<stdio.h>
#define N 8
void swap1(float *i,float *j)
{
if(i>j)
{
float temp;
temp=*i;
*i=*j;
*j=temp;
}
}

void swap2(float *stu)
{
int i=0,j;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-1-i;j++)
{
swap1(&stu[j],&stu[j+1]);
}
}
}

void main()
{

float stu[N],*p=stu;
printf("输入的若干数\n");

for(int i=0;i<N;i++)
{
printf("stu[%d]=\n",i);
scanf("%f",&stu[i]);
}
swap2(p);
printf("对输入的若干数进行排序\n");
for(int j=0;j<N;j++)
printf("%f\t",stu[j]);

}
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingyuebuyu 2010-03-06
  • 打赏
  • 举报
回复
i和j分别是指向一个float型的指针,你比较指针的大小是没有意义的,要比较指针所指向的内容.
实际上i指向的内容是stu[j],j指向的内容是stu[j+1],你需要的也就是直接比较stu[j]和stu[j+1]的大小,确定两者是否交换位置而已

xingyuebuyu 2010-03-06
  • 打赏
  • 举报
回复
void swap1(float *i,float *j)
{
if(*i>*j)
{
float temp;
temp=*i;
*i=*j;
*j=temp;
}
}

这个是冒泡排序
一休宗纯 2010-03-05
  • 打赏
  • 举报
回复
你对着书上的伪代码检查啊。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧