搜索
查看: 577|回复: 2
打印 上一主题 下一主题

挑战第三题,童鞋们看看哪里出问题了!谢谢

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-6 23:02:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <iostream>
using namespace std;
void main()
{
        int m[123456]={0};
        int j = 0;
        int b = 0;

        for (int i = 1;i <= 123456;i++)
        {
                if ((i%7)==0)
                {
                        m[j] = i;
                        j++;
                }
        }
        for (int a = 0;a <=1;a++)
        {
                for (int b = 0;b <= 2;b++)
                {
                        for (int c = 0;c <=3;c++)
                        {
                                for (int d = 0;d <=4;c++)
                                {
                                        for (int e = 0;e <=5;e++)
                                        {
                                                int s = (100000*a+10000*b+1000*c+100*d+10*e+7);
                                                 m[j] = s;
                                                 j++;
                                        }
                                }
                        }
                }
        }
        for (int g = 0;g < 123456;g++)
        {
                if (m[g]!=0)
                {
                        b++;
                }
        }
        int s = 0;
        for (int n = 0;n <= b;n++)
        {
                s = s + m[n];
        }
        cout << s << endl;
}
运行无结果啊!

沙发
发表于 2014-12-7 12:57:28 | 只看该作者
1. m的长度是123456,所以访问m[123456]越界了,是未定义的
2. 把b限制在[0,2]是不正确的,这样99999就没有试验到,下面的c,d,e同理
3. 现代C++编译器中void main不能通过编译,如果你的环境中可以,该换了
4. 根本用不着这么写,重新构思吧
板凳
发表于 2014-12-13 06:27:01 | 只看该作者
这样会不会好点呀
[mw_shl_code=c,true]int test()
{
  int temp, sum = 0;
  for(int i=1; i<=123456; i++)
  {
    if(i%7==0 || i%10==7)
      sum += i;
  }
  return sum;
}[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表