免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1620 | 回复: 2
打印 上一主题 下一主题

数组的第一个元素输出的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-15 22:03 |只看该作者 |倒序浏览
呵呵

[ 本帖最后由 yuchenyier 于 2009-10-17 09:05 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-16 11:42 |只看该作者
囧..CU的a[i]打不出来,你的代码里面那两处a[i]到底是显示不出来还是什么问题?
#include<iostream>
using namespace std;
#define N 10
void PaiXu(int *a)                //对10个数排序

{
    int i, j;
    int temp;
    for (i = 0; i < N; i++)
        for (j = 0; j < N - i; j++)
        {
            if (a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    for (i = 0; i < N; i++)
        cout << a[i] << " ";
    cout << endl;
}

int main()
{
    int i, j, x;
    int a[N];
    cout << "请输入10个数:" << endl;
    for (i = 0; i < N; i++)
        cin >> a[i];
    cout << endl;
    for (j = 0; j < N; j++)
        cout << a[j] << " ";
    cout << endl;
    cout << "排序后的数组为:" << endl;
    PaiXu(a);
    return 0;
}

这个代码反正是能通过编译的

论坛徽章:
0
3 [报告]
发表于 2009-10-17 09:03 |只看该作者

回复 #2 garymb 的帖子

找到问题在哪里了,第一轮循环的时候,数组下标越界了,a[N]的值就是个不确定的值,最后交换到了最小的位置,也就是a[0],虽然后面的循环没越界,但都与最后的最大的值比较了一次。将j<N-i改为j<N-1-i就行了!

[ 本帖最后由 yuchenyier 于 2009-10-17 09:06 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP