x_i = cos ((PI*(2*i-1))/( 2*N )) i =1,2,...,N (見づらくてすみません)
という式を計算して、結果を出力したいのですが、コンパイルできません。
自分で書いてみたプログラムとエラーを書いておくので、どこを直せばいいか教えてください。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535
double x_i(int i, int N)
{
for (i = 1 ; i <= N ; i++) {
x_i(i, N) = cos ((PI*(2*i-1))/( 2*N ));
}
}
int main()
{
int i, N ;
printf("N= ");
scanf("%d", &N);
for (i = 1 ; i <= N ; i++) {
printf("x[%2d] = %f\n",i, x_i(i,N));
}
return 0 ;
}
C:\Users>gcc nnn.c
nnn.c: In function 'x_i':
nnn.c:9:16: error: lvalue required as left operand of assignment
x_i(i, N) = cos ((PI*(2*i-1))/( 2*N ));
^
初心者なのでできれば丁寧に教えていただけると助かります。
よろしくお願いします。
結果は、
C:\Users>a
N = 5
x[ 1] = 0.951057
x[ 2] = 0.587785
x[ 3] = 0.000000
x[ 4] = -0.587785
x[ 5] = -0.951057
という風にしたいです。
No.1
- 回答日時:
double x_i の実際の配列の大きさが決まっていないから?
回答ありがとうございます。
配列の大きさってこんな感じで決めればいいんですかね?
もし間違ってたらごめんなさい。
もしあってるのであれば、同じエラーが出るので、違うのかなーと、、、
初心者なんで理解悪くて申し訳ないです。
もし何か間違いがあれば、また、教えていただけると助かります。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535
#define NMAX 20 //ここで配列の大きさ決めたつもりです。
double x_i(int i, N )
{
for (i = 1 ; i <= N ; i++) {
x_i(i, 20) = cos ((PI*(2*i-1))/( 2*N ));
}
}
int main()
{
int i, N ;
printf("N= ");
scanf("%d", &N);
for (i = 1 ; i <= N ; i++) {
printf("x[%2d] = %f\n",i, x_i(i,N));
}
return 0 ;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数から配列を返すには?
-
C言語から質問です。
-
c言語
-
C#で構造体の配列を持った構造...
-
配列の要素数に変数を入れたい...
-
要素数・要素の値が未定の配列...
-
C#でのフィボナッチ数列
-
ファイルのデータを構造体に代...
-
コンボボックスでデフォルト値...
-
C言語 ビットフィールドについて
-
C言語において、 配列要素をひ...
-
char型配列をint型に代入するには
-
C言語(サイズ指定のない配列)
-
MFCのCArrayを使った二次元配列
-
配列の不正アクセスについて
-
関数の仮引数は宣言か式か
-
C言語への翻訳お願いします
-
int i, int i[1];
-
C言語のプログラミングで、ある...
-
C言語の課題が出たのですが自力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数から配列を返すには?
-
配列の要素数に変数を入れたい...
-
c言語
-
c言語プログラミング 等差数列...
-
define で 配列
-
構造体のextern方法
-
C#で構造体の配列を持った構造...
-
C言語において、 配列要素をひ...
-
MFC - ダイアログボックスのPic...
-
C言語の2次元配列 容量が大き...
-
2次元配列のマスを数える方法...
-
C言語 ファイルの指定された行...
-
Cのエラー
-
コンボボックスでデフォルト値...
-
C#で配列が空かを判定するには?
-
C#でのフィボナッチ数列
-
ポインタを使って構造体の配列...
-
C言語の課題が出たのですが自力...
-
MFCのCArrayを使った二次元配列
-
C言語の配列のコピーについて
おすすめ情報
求めたい結果なんですが、Nは5と決まっているわけではなくて、20までで自分で、自由に決めれるようにしたいです。
N = 8
x[ 1] = 0.980785
x[ 2] = 0.831470
x[ 3] = 0.555570
x[ 4] = 0.195090
x[ 5] = -0.195090
x[ 6] = -0.555570
x[ 7] = -0.831470
x[ 8] = -0.980785
N = 3
x[ 1] = 0.866025
x[ 2] = 0.000000
x[ 3] = -0.866025
このように、N=
に数字を入れると計算して出力できるようにしたいです。
説明足らずですみません。
以前、同じ目的で以下のプログラムを作成しました。
今回はこのプログラムを、関数を作成して同じように作動するようにするのが目的です。
以下のプログラムで正常に動いたので、これを関数に変えればいいと思っていたのですが、うまくいかず質問させていただいてるという流れです。
このプログラムも捕足になるか分かりませんが、書いておくので、このプログラムを関数を利用する形(私が最初に質問で書いていたプログラム)にすると、なぜうまくいかないのか、どうすればうまくいくのかなど、教えていただけるとありがたいです。よろしくお願いします。
プログラムが入らないので、次の補足に入れます。
先ほどの補足に入らなかった分のプログラムです。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535
int main()
{
int i , N ;
double x_i ;
printf("i = ");
scanf("%d", &N);
for (i = 1 ; i <= N ; i++) {
x_i = cos ((PI*(2*i-1))/( 2*N ));
printf("x[%2d] = %f\n",i, x_i);
}
return 0 ;
}
皆さんのご回答を参考にさせていただいて何とか正常に動くプログラムを作成することができました。
特にrnakamraさん、Wr5さん、kmeeさんなどの回答を参考にしてプログラムを作らせてもらいました。
皆さんご回答ありがとうございました。また、質問していたらご回答いただけると嬉しいです。
一応成果としてプログラムと結果を書かせていただきます。
入らないので、次のページに書きますね。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535
double x_i(int i, int N)
{
return cos ((PI*(2*i-1))/( 2*N ));
}
int main()
{
int i, N ;
do{
printf("N= ");
scanf("%d", &N);
}
while((N < 0) || (N > 20));
for (i = 1 ; i <= N ; i++) {
printf("x[%2d] = %lf\n",i, x_i(i,N));
}
return 0 ;
}
結果
N= 5
x[ 1] = 0.951057
x[ 2] = 0.587785
x[ 3] = 0.000000
x[ 4] = -0.587785
x[ 5] = -0.951057
N= 3
x[ 1] = 0.866025
x[ 2] = 0.000000
x[ 3] = -0.866025
N= 7
x[ 1] = 0.974928
x[ 2] = 0.781831
x[ 3] = 0.433884
x[ 4] = 0.000000
x[ 5] = -0.433884
x[ 6] = -0.781831
x[ 7] = -0.974928
Nの値も整数なら自由に入れることができました。