2-14编程练习

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;
}

两次输出无变化,请问老师是哪里出问题了,谢谢

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好,排序循环输出时有误,参考代码如下:

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;
//输出排序后的数组

如果解决您的问题请采纳,祝学习愉快!

提问者 GoodGoodStudy_ 2018-05-10 15:08:54

#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;
}

老师,还是没有变化,感觉没问题了..........

  • 提问者 GoodGoodStudy_ #1
    @guly老师,麻烦您再看下,谢谢
    2018-05-10 15:10:00
  • guly 回复 提问者 GoodGoodStudy_ #2
    你好,数组的定义方式有误,应该为: int mytest[8]={3,5,9,2,8,7,4,6}; 祝学习愉快!
    2018-05-10 15:12:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       594    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师