永发信息网

为什么不排序?哪里出错了吗?各位帮帮忙,谢谢了!

答案:2  悬赏:50  手机版
解决时间 2021-05-01 22:59
#include <iostream.h>
void func(int *);
void main()
{
int data[8];
int i;
cout < <"\nenter 8 is number:";
for(i=0;i <8;i++)
cin>>data[i];
func(data);
cout < <"\norder by enter:";
for(i=0;i <8;i++)
cout < <data[i] < <",";
cout < <endl;
}
void func(int *s)
{
int i,j;
int work;
for(i=0;i <8;i++)
for(j=1;j <8;j++)
if(*(s+i) <*(s+j))
{
work=*(s+i);
*(s+i)=*(s+j);
*(s+i)=work;
}
}
最佳答案

一些细微的错误


帮你改出来了 错的地方也些了注释


如果满意我的回答 记得选个满意答案哦


#include <iostream.h>
void func(int *);
void main()
{
int data[8];
int i;
cout<<"\nenter 8 is number:";
for(i=0;i <8;i++)
cin>>data[i];
func(data);
cout <<"\norder by enter:";
for(i=0;i <8;i++)
cout <<data[i] <<",";
cout <<endl;
}
void func(int *s)
{
int i,j;
int work;
for(i=0;i <7;i++)
for(j=i+1;j <8;j++) //这里j的初始值错了
if(*(s+i) <*(s+j))
{
work=*(s+i);
*(s+i)=*(s+j);
*(s+j)=work; //这里是s+j 不是s+i
}
}

全部回答

在fun函数中的排序:

void func(int *s) { int i,j; int work; for(i=0;i<8;i++) for(j=i;j<8;j++) if(*(s+i) < *(s+j)) { work=*(s+i); *(s+i)=*(s+j); *(s+j)=work; //中间变量应该赋值给*(s+j). 你给*(s+i)了. } }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么怀孕生了孩子之后连声间都变了
DNF中剑魂该如何分配技能?
打小报告好不好?
惠民嘉苑地址在什么地方,想过去办事
求两个个郭德纲的反场相声小段剧本!
腾讯游戏 武将功勋用处
上海至义乌的火车时间
爱什么成语,什么童什么呆成语
高三 不想学了。该如何做?
男友这样算不算威胁我
QQ空间2011版为什么删除了原来的模块,重新进
我和老公是无性婚姻,可我想离婚,他不同意。
连红糖酒百货超市地址在哪,我要去那里办事
为什么我QQ空间的日记阅读量变0了?只剩下评论
游戏人生怎么加工会?
推荐资讯
英雄岛什么时间公测呀?
哪有徽菜旅游节的相关信息啊
我的农场被人克隆了,有什么办法改变吗
DNF毒王怎么觉醒啊?
甲流疫苗的效果有多长
男孩女孩第一次见面说什么
玩WOW烧钱利害么?和梦幻比如何?
qq西游 qq仙侠传 轩辕传奇 哪个好玩
中秋节快到了,应该怎样向心爱的人表达我的爱
挥发份:28 焦渣:7 灰分:7 精煤回收:70 G
联考的时候,除了记得带准考证外还要记得做什
炫舞结婚三天可以离么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?