指针冒泡排序c语言代码,用指针编写冒泡排序方法

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

ha141988

2013.05.26

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:44%    等级:13

已帮助:10095人

需要修改三个地方:(确保程序正常运行)

1.scanf("%d",*ptr);改为scanf("%d",ptr);

因为ptr本身就是指针,*ptr是内容,不对;scanf函数的第二个参数应该是指针(也可以是地址)

2.第一个for循环,就是在scanf的那个循环体完后加上ptr=&num[0];

如果不加上你的ptr就指向一块未知的内存,那么你下面的for循环操作将出错

3.在printf("冒泡完了为:\n"); 语句后加上ptr=&num[0];

道理同上

还需修改的一个地方,就是你的算法不对,你这个根本不是什么冒泡算法,请你自己修正吧;这里就不帮你修改了!!!

修改后的程序如下:

#include

#define N 5

void main()

{

int *ptr,num[N],i,temp;

ptr=&num[0];

printf("请输入5个数字:");

for(i=0;i

{

scanf("%d",ptr); //修改错误

ptr++;

}

ptr=&num[0];//修改错误

for(i=0;i

{

if(*ptr

{

temp=*(ptr+1);

*(ptr+1)=*ptr;

*ptr=temp;

ptr++;

}

}

ptr=&num[0];//修改错误

printf("冒泡完了为:\n");

for(i=0;i

{

printf("%d",*ptr);

ptr++;

printf("\n");

}

}

10分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值