永发信息网

请帮忙指出c++程序的错误之处

答案:3  悬赏:70  手机版
解决时间 2021-05-10 06:07

#include<iostream>
using namespace std;
int main()
{void input(int *p);
void ouput(int *p);
void deal(int *p);
int a[10];
intput(a);
deal(a);
output(a);
return 0;
}
void intput(int *p)
{int i;
for(i=0;i<10;i++)
cin>>*(p+i);
}
void deal(int *p)
{int i,j,k;
i=0;
for(j=1;j<10;j++)
if(*(p+j)<*p(p+i))
i=j;
k=*(p+i);*p(p+i)=*p;*p=k;
i=9;
for(j=8;j>=0;j--)
if(*(p+j)>*(p+i))
i=j;
k=*(p+i);*p(p+i)=*p;*p=k;
}
void output(int *p)
{int i;
for(i=0;i<10;i++)
cout<<*(p+i);
}

最佳答案

#include<iostream>
using namespace std;
int main()
{
void intput(int *p);
void output(int *p);
void deal(int *p);
int a[10];
intput(a);
deal(a);
output(a);
getchar();getchar();
return 0;
}
void intput(int *p)
{
int i;
for(i=0;i<10;i++)
cin>>*(p+i);
}


void deal(int *p)
{
int i,j,k;
for(i=1;i<=9;i++)
for(j=0;j<10-i;j++)
if(*(p+j+1)<*(p+j))
{
k=*(p+j+1);
*(p+j+1)=*(p+j);
*(p+j)=k;
}
}



void output(int *p)
{
int i;
for(i=0;i<10;i++)
cout<<*(p+i)<<" ";
}

全部回答

int main() {void input(int *p); void ouput(int *p); void deal(int *p);

这几个函数是这样声明的,为什么后面调用时是:

intput(a);

output(a);多了个“t”?

而且ouput函数没有定义,编译器找不到该函数,看了后面你应该声明的是output()吧!还有就是deal函数里会发生下表越界问题,其他错误楼上的都已经说明了,我就不重复,不过你这段代码运行的效果不是很理想,不知你是不是要从最大数与第一位交换,最小数与最后一个交换?

效果如下:

#include<iostream> using namespace std; int main() {void input(int *p); void output(int *p); void deal(int *p); int a[10]; input(a); deal(a); output(a); return 0; } void input(int *p) {int i; for(i=0;i<10;i++) cin>>*(p+i); }

void deal(int *p) {int i,j,k; i=0; for(j=1;j<10;j++) if(*(p+j)<*(p+i)) i=j; k=*(p+i);*(p+i)=*p;*p=k; i=9; for(j=8;j>=0;j--) if(*(p+j)>*(p+i)) i=j; k=*(p+i);*(p+i)=*p;*p=k; }

void output(int *p) { int i; for(i=0;i<10;i++) cout<<*(p+i)<<" "; cout<<endl; }

截图:

#include<iostream> using namespace std; void main() //主函数不用定义类型,一般用void声明。 {void input(int *p); void ouput(int *p); void deal(int *p); int a[10]; intput(a); deal(a); output(a);

//return 0; 主函数没有返回值,这个return没有必要。 } void intput(int *p) {int i; for(i=0;i<10;i++) cin>>*(p+i); } void deal(int *p) {int i,j,k; i=0; for(j=1;j<10;j++) if(*(p+j)<*p(p+i)) //你多写了个字母P,删掉就可以了 i=j; k=*(p+i);*p(p+i)=*p;*p=k;//同上 i=9; for(j=8;j>=0;j--) if(*(p+j)>*(p+i)) i=j; k=*(p+i);*p(p+i)=*p;*p=k; //同上

} void output(int *p) {int i; for(i=0;i<10;i++) cout<<*(p+i); }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
不爱了、谁的错?
冰杯里面是什么,安逗和黑仔怎么回事啊?他们
天龙八部不PK武当和星宿哪个更好?
减肥方案谁给个?
为何、伤心?
足球经理2010曼联欧冠宣青训队员,怎么选?
寻仙 宠物成长率低能学隐秘吗?
外国学生学汉语吗???
如果穿了一双短靴,平低的,佩什么样的裤子
人才是什么
谁能给个蝴蝶的鼠标效果
如何设置网卡的ip地址和网络协议(回答的具体
史上最牛鼻的人是谁
深圳2016动物园门票多少了
“大风车”要怎么学最帅?
推荐资讯
NBA2k9和2K10那个好玩,
我的TT里怎么没有穿越火线的皮肤
门里边加一个水念什么
梦幻怎么跑商?
诺基亚全系列刷机包,固件下载
怎样讨好老婆,??
为什么打开空间是谷歌浏览器
西安机场有动物检疫监督站吗?谁知到,急!
香薰蜜语个人护理用品旗舰店地址在什么地方,
如何开办WAP手机网站
雄辉家具有限公司这个地址在什么地方,我要处
DNF深渊怎么样才容易刷到好东西
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?