游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2299|回复: 7

在线等待C++简单求教!望高手指点!

[复制链接]

20

主题

56

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2004-7-29 19:19:00 | 显示全部楼层 |阅读模式
#include<iostream.h>
void main()
{
        int a[4]={1,2,3,4};
        int i,b=0;
       
        for(i=0;i<4;i++)
                b=b+a;
        cout<<b<<endl;
        for(i=0;i<4;i++)
                b=a+b;
        cout<<b<<endl;

}

问题一:只是交换加法的顺序,为什么结果不一样,成双倍差别?


#include<iostream.h>
int a[8]={1,3,5,7,9,11,13};
void fun(int b[],int n)
{
        cout<<b[7]<<endl;
        for (int i=0;i<=n-1;i++)
                b[7]=b+b[7];
}
void main()
{
        int m=8;
        cout<<a[7]<<endl;
        fun(a,m);
                cout<<a[7];
}

问题二:结果并是不想要的七个数之和,而是他的二倍。为什么?

20

主题

56

帖子

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2004-7-29 19:33:00 | 显示全部楼层

Re:在线等待C++简单求教!望高手指点!

#include<iostream.h>
void main()

{
        int a[5]={1,2,3,4};
        int i;
     for(i=0;i<4;i++)
                a[5]=a+a[5];
         cout<<a[5]<<endl;
      
}
这个类似上面的问题,但结果不是想要的1.2.3.4的和 也不是和的二倍。
清高手指点!·

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20527
发表于 2004-7-29 19:37:00 | 显示全部楼层

Re: Re:在线等待C++简单求教!望高手指点!

vitamin: Re:在线等待C++简单求教!望高手指点!

#include<iostream.h>
void main()

{
        int a[5]={1,2,3,4};
        int i;
     for(i=0;i<4;i++...



上面贴子这里 a[5]=a+a[5];  好像错了吧。

4

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2004-7-29 20:11:00 | 显示全部楼层

Re:在线等待C++简单求教!望高手指点!

第一题做完第一个循环后b要清零,
第二题的循环条件错了, 应该是i < n-1.

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2004-7-29 20:52:00 | 显示全部楼层

Re:在线等待C++简单求教!望高手指点!

数组使用千万不能越界

109

主题

1451

帖子

1475

积分

金牌会员

女神

Rank: 6Rank: 6

积分
1475
发表于 2004-7-30 00:15:00 | 显示全部楼层

Re:在线等待C++简单求教!望高手指点!

1.因为第一次循环以后变量b已经是10了,然后你的第二次循环又把它加了一次,所以变成20.
2.正确的程序应该是
#include<iostream.h>

int a[7]={1,3,5,7,9,11,13};

void fun(int b[],int n)
{
cout<<b[6]<<endl;
for (int i=0;i<n-1;i++)
b[6] += b;
}

void main()
{
int m=7;
cout<<a[6]<<endl;
fun(a,m);
cout<<a[6];
}
/*请楼主再仔细复习一下数组的定义,如果初始化的值的个数多于元素个数就会产生编译错误;如果少于元素个数,其余的元素被初始化为0,楼主要记住咯。以上成功通过编译。
13
13
49
*/

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-7-30 13:03:00 | 显示全部楼层

Re:在线等待C++简单求教!望高手指点!

问题一:
你第一次循环的时候b就已经加了一遍了,换顺序后又加了一遍,当然会两倍了,呵呵!

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2004-7-30 13:19:00 | 显示全部楼层

Re:在线等待C++简单求教!望高手指点!

写程序要注意细节啊。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-4 10:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表