标题:请教一个报错问题
只看楼主
鸡巴毛
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-10-27
结帖率:0
已结贴  问题点数:20 回复次数:2 
请教一个报错问题

#include <stdio.h>

int main()
{
    int temp;
    int i = 0;
    int j = 0;
    int N = 10;
    int a[10]{ 5,6,2,9,7,3,6,4,1,3 };
    for (i = 0; i < N - 1; i++)
    for (i = 0; i < N - i - 1; j++)
            if (a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;

            }
}


编译的时候直接抛出了异常,13行,请问是什么原因导致的呢
搜索更多相关主题的帖子: temp for 报错 int 抛出 
2022-10-27 18:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
编译的时候直接抛出了异常
编译只会报错,不会抛异常;
异常是运行时抛出的。

13行,请问是什么原因导致的呢
如果时编译错误,贴出编译器给出的错误信息;
如果是运行时错误,看你的代码
    for (i = 0; i < N - 1; i++)
    for (i = 0; i < N - i - 1; j++)
有点儿奇怪,你是不是将两处 j 错写成 i 啦?
2022-10-28 13:51
lllyyy3
Rank: 2
等 级:论坛游民
威 望:1
帖 子:24
专家分:20
注 册:2022-10-15
得分:10 
看起来像是要写个冒泡,如果是的话,内层循环变量应该错了。
至于写成这样的错在哪里了,内层循环里i一直为0,i < N - i - 1会一直成立,导致j一直在++,直到a[j]出现下标越界问题。
还有就是2楼r老师说的,编译不会抛异常,异常是运行时抛出的。
2022-10-28 22:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510462-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056735 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved