2-14编程练习
#include <iostream>
using namespace std;
//定义main函数
int main()
{
//定义数组和数组指针
int mytest[8]={35928746};
int i,j,t;
int *p=mytest;
//输出原数组
for(i=0;i<8;i++,p++)
{
cout<<*p;
}
cout<<endl;
p=mytest;
//使用指针对数组进行由大到小的排序
for(i=0;i<8;i++)
{
for(j=0;j<8-1-i;j++)
{
if(*(p+j)<*(p+j+1))
{
t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
}
}
}
p=mytest;
for(i=0;i<8;i++,p++)
{
cout<<*p;
}
cout<<endl;
//输出排序后的数组
return 0;
}
两次输出无变化,请问老师是哪里出问题了,谢谢
正在回答
你好,排序循环输出时有误,参考代码如下:
for(i=0;i<8;i++) { for(j=7;j>i;j--) { if(*(p+j)>*(p+j-1)) { t=*(p+j); *(p+j)=*(p+j-1); *(p+j-1)=t; } } } for(i=0;i<8;i++,p++) { cout<<mytest[i]; } cout<<endl; //输出排序后的数组
如果解决您的问题请采纳,祝学习愉快!
#include <iostream>
using namespace std;
//定义main函数
int main()
{
//定义数组和数组指针
int mytest[8]={35928746};
int i,j,t;
int *p=mytest;
//输出原数组
for(i=0;i<8;i++,p++)
{
cout<<*p;
}
cout<<endl;
p=mytest;
//使用指针对数组进行由大到小的排序
for(i=0;i<8;i++)
{
for(j=7;j>i;j--)
{
if(*(p+j)>*(p+j-1))
{
t=*(p+j);
*(p+j)=*(p+j-1);
*(p+j-1)=t;
}
}
}
p=mytest;
for(i=0;i<8;i++,p++)
{
cout<<mytest[i];
}
cout<<endl;
//输出排序后的数组
return 0;
}
老师,还是没有变化,感觉没问题了..........
- 参与学习 529 人
- 提交作业 110 份
- 解答问题 594 个
无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星