为了账号安全,请及时绑定邮箱和手机立即绑定

C语言入门 数组的应用问题

#include<stdio.h>

int main()

{

int shengao[] = { 172,163,179,180,165,168,172 };

int q , r;

for (q = 6; q>= 0; q--)

{

for (r = 0; r <= q; r++)

{

if (shengao[r] > shengao[r + 1])

{

int temp;

temp = shengao[r];

shengao[r] = shengao[r + 1];

shengao[r + 1] = temp;

}

}

}

for (q = 0; q < 7; q++)

{

if (q != 6)

{

printf("%d,", shengao[q]);

}

else

{

printf("%d\n", shengao[q]);

}

}

return 0;

}


正在回答

2 回答

for (q = 6; q>= 0; q--)

{

for (r = 0; r <= q; r++)

q = 6不对。数组里面7个元素,外层for只要循环6次就够,而q从0-6却循环了7次,这就出问题了;

而且对内层的for循环,r <= q即r<=6,循环到r=6,会出现了shengao[6]> shengao[7]的比较,这时数组越界了,这也是一个问题。


0 回复 有任何疑惑可以回复我~
#1

qq_照遍天宇_04160908 提问者

非常感谢!
2016-12-04 回复 有任何疑惑可以回复我~

这段代码运行是时候总是提示异常

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926210    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

C语言入门 数组的应用问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信