dポイントプレゼントキャンペーン実施中!

C#で等比級数の和が1を超えたときの項数を求める以下のようなプログラムを作っています.
デバッグするとx[num,2] =sumnw;の部分がインデックスが配列の境界外と言われてしまいます.なぜでしょうか?誰かご教授よろしくお願いします.
====プログラム==============================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double r = 1.05 , a = 0.037 , sum = 1.0 , sumnw = 0.0 ;
int num;
double[ , ] x=new double[100 ,2 ];
Console.WriteLine("HHHHHHHHHHHHHH Display of variables HHHHHHHHHHHHHHHH");
Console.WriteLine("r={0},a={1},sum={2}", r , a , sum);
num=0;
while(sumnw < sum )
{
num = ++num;
sumnw = a * (1 - Math.Pow(r, num + 1)) / (1 - r);
x[num,1]=num;
x[num,2] =sumnw;
Console.WriteLine("{0},{1}",x[num,1],x[num,2]);
}
Console.WriteLine("fixed number of cell is={0}", num);
}
}
}

A 回答 (1件)

>double[ , ] x=new double[100 ,2 ];


double型の2次元配列[100個の箱,2個の箱]を宣言してるわけですから 


x[0,0] // [1つめの箱,1つめの箱]
x[0,1] // [1つめの箱,2つめの箱]
当然、3つめの箱となる x[0,2]とか存在しないわけです。

そんな感じで
x[1,0]
x[1,1]
x[2,0]
x[2,1]

と続く
    • good
    • 0
この回答へのお礼

無事に配列が表示されました
0からなんですね!!
ありがとうございました☆

お礼日時:2009/07/17 23:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!