質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

3回答

2807閲覧

xの3乗根を求めたい

tokky711

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2021/05/02 19:48

前提・実現したいこと

xの3乗根を求めたい

発生している問題・エラーメッセージ

エラーメッセージ array initializer must be an initializer list

該当のソースコード

double x_data[4] = {9.0, 13.0, 18.0, 25.0},
y_data[4] = (double) pow ((double) x_data[4] , 1.0 / 3.0);

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/05/02 20:03

C#とCは別物です。 どちらかがわかるような質問に調整してください(質問タグも調整してください)
YT0014

2021/05/03 14:58

ベストアンサーを見る限り、Cが対象のようなので、タグC#を外してください。
guest

回答3

0

ベストアンサー

平方根は sqrt(square root)、立方根(3乗根)は cbrt(cube root)。

c

1#include <stdio.h> 2#include <math.h> // cbrt (or pow) 3 4int main(void) 5{ 6 double x_data[4] = {9.0, 13.0, 18.0, 25.0}, y_data[4]; 7 for (int i = 0; i < 4; i++) 8 y_data[i] = cbrt(x_data[i]); // = pow(x_data[i], 1.0/3); 9 for (int i = 0; i < 4; i++) 10 printf("cbrt(%g) = %g\n", x_data[i], y_data[i]); 11}

投稿2021/05/03 01:49

kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tokky711

2021/05/03 14:14

助かりました.ありがとうございました.
guest

0

C# ならこんなカンジで。

C#

1class foo { 2 static void Main(string[] args) { 3 double[] x_data = {9.0, 13.0, 18.0, 25.0}; 4 double[] y_data = new double[4]; 5 for ( int i = 0; i < 4; ++i ) { 6 y_data[i] = System.Math.Pow(x_data[i], 1.0/3.0); 7 } 8 foreach ( double item in y_data ) { 9 System.Console.WriteLine("{0} ", item); 10 } 11 } 12}

投稿2021/05/02 23:45

episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C

1double x_data[4] = {9.0, 13.0, 18.0, 25.0},

とした場合、配列へのアクセスは x_data[0]~x_data[3] です。
x_data[4]は範囲外ですのでご注意ください。

もしかすると、配列全体に対して、pow を適用したいという意味なのかもしれませんが、
x_data[n] は、配列のデータ1つしか表しません。
例えば x_data[3] なら 25.0 です。x_data[2] なら 18.0 という具合です。

配列全体に適用したいなら、

C

1for (int i=0; i<4; i++){ 2 x_data[i]=...; 3}

という具合に、0から3まで順番にループを回してあげないといけないです。

投稿2021/05/02 20:47

ak.n

総合スコア291

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YT0014

2021/05/03 00:51 編集

趣旨は正しいのですが、元コードは、x_dataとy_dataの2つの配列の宣言と(エラーですが)初期化です。(1行目の最後は、カンマなので) x_dataとは別に、y_data配列の作成するほうが良いかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問