cicoa
2016-02-21 13:07
采纳率: 100%
浏览 1.3k

看一下为啥a=c【4】(c++循环嵌套的一个问题,)

#include
using namespace std;
int main()
{
int a,b,i,c[4];
cin>>a;
for(i=1;i<=a;i++)
{
for(b=1;b<=4;b++)
{
cin>>c[b];
}
cout<<c[1]<<c[2]<<c[3]<<c[4]<<a;}
return 0;
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • threenewbee 2016-02-21 13:47
    已采纳

    cin>>c[b];
    这里c的下标是0~3,你这个是越界了。
    for(i=1;i<=a;i++)
    你这里重复n次,只有最后一次有效。其它的都被冲掉了。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 00林森00 2016-02-21 13:47

    兄弟,你这个数组越界了~并没有c[4]哦~即使是c[3],如果要是a与c[3]相等,也是你需要输入的时候输入相同的值才可以相等哦~

    评论
    解决 无用
    打赏 举报
  • M醉清风Y 2016-02-21 13:54

    #include
    using namespace std;
    int main()
    {
    int a,b,i,c[4];
    cin>>a;
    for(i=1;i<=a;i++) //---------------这个循环没有卵用 只能进入一次 因为进入第一次后就return掉了 应修改为 break;
    {
    for(b=1;b<=4;b++) //----------------为什么 要B=1 B<=4 应该B = 0
    {
    cin>>c[b]; //-----------------明显的数据益处
    }
    cout<<c[1]<<c[2]<<c[3]<<c[4]<<a;} //--------------数据溢出
    return 0;
    }

    虽然你可以依然使用了 溢出的内存 但那a[4] 4个字节的内存 根本就不在你的数组内
    数组下表索引 是从 0 开始

    还需要再熟练掌握基本知识

    评论
    解决 无用
    打赏 举报
  • Chely_Yi 2016-02-21 14:32

    这个根本就没有嵌套循环吧 你return之后 外面那个循环只执行了一次呀
    而且没有c[4] 数组越界了
    另外 这个能运行? 难道不会直接报错? 怎么会有a == c[4]?(PS: 看见你写的a=c[4] 我总以为是在赋值......)

    评论
    解决 无用
    打赏 举报
  • sinat_33931347 2016-02-22 08:15

    哥们,return 放在循环嵌套的外面,OK?另外,如果作为IT道上混得人,如果你连数组从0开始都不懂,那么你就out了!

    评论
    解决 无用
    打赏 举报
  • John_ToDebug 2016-02-23 04:08

    a=c【4】仅仅是一个巧合。你运气好,而且这种概率不大...

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题