C言語の質問です!
#include "stdafx.h"
#include <iostream>
#include <string>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
using namespace std;
double arrayMin(double array[][], int n){
double Min=9999999999999999999999.999999;
for(int N=0;N<n;N++){
if(array[N][0]!=NULL&&array[N][0]<Min){
Min=array[N][0];
}
}
return Min;
}
double arrayMax(double array[][], int n){
double Max=-9999999999999999999999.999999;
for(int N=0;N<n;N++){
if(array[N][0]!=NULL&&array[N][0]<Max){
Max=array[N][0];
}
}
return Max;
}
int main(){
double data[3][10] = {{2.0, 1.0, 5.0, 3.0, 2.0, 21.0, 4.0, 5.0, 4.0, 28.0}, {1.0, 1.0, 5.0, 3.0, 2.0, 21.0, 4.0, 5.0, 4.0, 28.0}, {3.0, 1.0, 5.0, 3.0, 2.0, 21.0, 4.0, 5.0, 4.0, 28.0}};
double min, max;
min=arrayMin(data, 3);
max=arrayMax(data, 3);
printf("min = %lf, max = %lf\n", min, max);
return 0;
}
二次元配列の1行目の配列の最大値と最小値を求めることを考え,上のようなプログラムを書いたのですが,
1>.\maxmin.cpp(12) : error C2087: 'array' : 添字がありません。
1>.\maxmin.cpp(21) : error C2087: 'array' : 添字がありません。
1>.\maxmin.cpp(34) : error C2059: 構文エラー : ']'
1>.\maxmin.cpp(35) : error C2664: 'arrayMax' : 1 番目の引数を 'double [3][10]' から 'double [][1]' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
というようなエラーが出てしまいます.
途中のarray[N][0]!=NULLは二次元配列dataが3行より少ない場合に対応させています.
どなたかアドバイスをいただけますでしょうか?
よろしくお願いいたします!
お礼
あ~、実際に数を入れて考えると確かにそうですよね んで良く考えたら、 c{n}はV{n}が半径1のときの表面積なので、 c{n}=V{n-1}(1) V{n-1}(r)=dV{n}(r)/dr =d(r^n)a{n}/dr a{n}は半径1のときのn次元球の体積なので、定数なので、 =n(r^(n-1))a{n} よって c{n}=V{n-1}(1) =n(1^(n-1))a{n} =na{n} ってことだったんですね^^; 有り難うございました。