• ベストアンサー

この問題がわかりません・・・

この問題がわかりません(-_-;) 7個×2行分のデータをdata配列に読み込みというところが理解できず何度もやってみたのですが解けませんでした・・・答えが載っておらず困っています(@_@;) C言語詳しい方よかったら回答お願いします<m(__)m> 次の2行の内容でtest614.txtファイルを作成しなさい。 1 2 3 5 8 13 21 1 2 2 4 8 32 256 ※スペース区切りで7個の数字2行分。 int型2次元配列変数data[2][7]を宣言後、test614.txtファイルを開いて7個×2行分のデータをdata配列に読み込み、その内容を右のように表示する。続いて、test614.txtファイルを閉じてから、右のようにdata配列を用いて縦に並んだ数値を加算した結果を表示するプログラムを作成しなさい。 実行結果例 (実行結果例) 1 2 3 5 8 13 21 1 2 2 4 8 32 256 ------------------- 2 4 5 9 16 45 277

質問者が選んだベストアンサー

  • ベストアンサー
  • yama5140
  • ベストアンサー率54% (136/250)
回答No.4

>7個×2行分のデータをdata配列に読み込みというところが理解できず・・  その前に、 >次の2行の内容でtest614.txtファイルを作成しなさい。 >1 2 3 5 8 13 21 >1 2 2 4 8 32 256  ができていないから、「読み込み」までいかないのでは・・。  2行とも、3項以降は、 ・1行目は、( 1 + 2 ) = 3, ( 2 + 3 ) = 5, ( 3 + 5 ) = 8, ・・ ・2行目は、( 1 * 2 ) = 2, ( 2 * 2 ) = 4, ( 2 * 4 ) = 8, ・・  となりますよね。この法則?を「コード化する」のが「問題」の重要な部分と思いますが・・。 ☆1行目は、↓でうまくいくはずです・・(BorlandC++5.5.1)。  2行目は、・・う~ん、自分で考えて。 #include <stdio.h> void main() {  int iVal, iTane1 = 0, iTane2 = 1, i;  for( i = 1; i <= 7; i++ ){   iVal = iTane1 + iTane2;   printf( "%3d", iVal );   iTane1 = iTane2;   iTane2 = iVal;  }  printf( "\n" ); } 注:インデントに全角空白を用いています。コピペ後、タブに一括変換して下さい。

その他の回答 (3)

  • ko_kinta
  • ベストアンサー率39% (43/109)
回答No.3

問題文の最初の4行は実行準備についての記述ですね。 エディタででもいいので、test614.txtを作成しなさいということですが、これは出来ていますか? 5行目からがプログラム作成のための記述ですから、これを自分で箇条書きに分解して、なにをやるべきかをひとつずつ確認しましょう。 1. int型2次元配列変数data[2][7]を宣言 2. test614.txtファイルを開いて 3. 7個×2行分のデータをdata配列に読み込み … というように。 そうすれば作り方が見えてくると思いますよ。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>for(y=0;y<7;y++){ >for(x=0;x<7;x++){ >data[y][x]=(y+1)*(x+1); >printf("%3d", data[y][x]); >} data 配列はテキストファイルから読み込むのではないのですか?

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

>何度もやってみたのですが そのときのソースを載せてみてください。

nba1989
質問者

補足

#include<stdio.h> int main(void){ int data[2][7]; int y,x; int sum; for(y=0;y<7;y++){ for(x=0;x<7;x++){ data[y][x]=(y+1)*(x+1); printf("%3d", data[y][x]); } printf("\n"); } sum=0; 遅れて申し訳ございません<m(__)m> 途中までですが・・・

関連するQ&A

  • 演習問題が解けません…

    ファイル名data.txtにデータが30個以上記憶されていてこれらのデータを(ドライブ、ディレクトリィ、ファイルリストのツールボタンを使って)すべて読み込んで、降順に並び替えるプログラムを作成。ボタンを次の4つ用意、ボタンの表示内容と機能は次の通り:「読み込み」はデータを配列に読み込む。「表示」は配列の内容をフォームに表示。「並べ替え」は配列の内容を降順に並べ替え、その結果を同じ配列内に記憶。「終り」はプログラムを終了。 という演習があるのですがつまづいてしまいました。独学なのですがどうもうまくいかないんです。 Open "*" For Output As * と打つとファイルがすでに開かれていますとでます。これはいったいどういうことなんでしょうか? オブジェクトのメソッドもなにをどうしたらいいのかさっぱりです。わかる方、どうか回答お願いします。

  • しつもんです

    cygwinでc言語を使っています。同じディレクトリに na.txtというテキストファイルがあるとします。 そのファイルには 2,3,4,5,6 7,8,9,10,11 12,13,14,15,16 と5つずつカンマ区切りのデータが入力されているとします。このファイルのデータを読み込んで二次元配列に入れたいです。この例でいえば、5つのデータで3行あるので a[3][5]の配列が必要でそれにa[0][0]=2 a[0][1]=3, .... a[2][4]=16と入れていきたいです。 ただ、ファイルが何行あるのかわからないとします。つまりこの場合なら3行あるのですが、それはわからないとします。 たぶんファイルポインタを用意するんだと思うですがどうしてもよくわかりません。教えてください

  • PHPで、○番目のカンマの文字を呼び出す方法

    0,123,45,678,999 など、カンマ区切りの情報がある data.txt というファイルがあり、 別のPHPファイルにdata.txtの内容を書き出したい場合、 <?php echo file_get_contents("data.txt"); ?> と書くと全部表示されてしまいます。 data.txtの1行目で、2番目と3番目のカンマの間の数字(上の例ですと123)を書き出すには、どのように書いたらよいか、お分かりになる方教えて頂けませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ファイルからの読みこみについて

    下記のようなdata.txtがあります。 2005/12/01,0:44:55,2.2 2005/12/01,0:45:55,7.8 2005/12/01,0:46:55,4.8 2005/12/01,0:47:55,5.5 いまこのようなプログラムがあります。(一部) $date=[]; $temp=[]; open(DATA,"data.txt"); while(<DATA>){ #一行ずつ読む if(/$name/){print "$_<BR>";} #$nameの中身を発見→出力 @field = split(/,/,); push @$date, $field[1]; push @$temp, $field[2]; } @data=($date, $temp); です。 簡単にプログラムの説明をしますとdata.txtで$name($name=2005/12/01)という文字を一行単位で検索していきます(今はすべてが当てはまります)この検索してヒットした一行の,区切りの一番右のデータを並べたものを$tempとし、,区切りの真ん中のデータを並べたものを$dateとしています。このプログラムですと$temp は [2.2,7.8,4.8,5.5]になり$dateは["0:45:55","0:45:55","0:45:55","0:45:55"]となるはずですがこのプログラムを実行すると検索結果は表示されるのですがプログラムの最後の行の@data=・・・というところが検索結果でなくdata.txtのすべてになってしまいます。どうやったら正常にもどりますか??お願いします。

    • ベストアンサー
    • CGI
  • DOSコマンドによるテキストファイル編集について

    下記「test1.txt」のようなファイルがあります。 先頭から指定桁目に特定文字を挿入し、末尾から指定桁分を削除する。それを行単位に行い、最終行まで繰り返す。 といったコマンド(構文)についてご教授頂けないでしょうか? 例: 先頭から4桁目に特定文字(XXX)を挿入 末尾から3桁分の文字を削除 <test1.txt> aaabbbcccddd eeefffggghhh ・・・ <実行結果:test1.txt> aaaXXXbbbccc eeeXXXfffggg 宜しくお願いします。

  • シェルスクリプト while read lineにつきまして

    シェルスクリプトについて、各行の値を使って、更新したいと考えています。 引数を2つ持たせて、2つともファイルです。 ファイル名1には、 test1 test2 test3 のディレクトリを記載し、 ファイル名2には、 test4.txt test5.txt test6.txt のテキストを記載します。 例) 引数1 ファイル名1 引数2 ファイル名2 while read lineをどのように使ったら良いかわからないのですが、 ファイル名1を1行ずつ読み込んで、 読み込んだディレクトリをファイル名2に書かれているテキストを更新します。 具体的にやりたいと思っている内容ですが、 ・cd ファイル名1の1行目ディレクトリ ・svn up ファイル名2のテキスト ここをファイル名2に書かれている行分ループして 上記svn upコマンドを実行します。 ・ファイル名2に書かれている行分ループ完了後、 ファイル名1の2行目にかかれているディレクトリを読み込んで、 cd ファイル名1の2行目ディレクトリ ・svn up ファイル名2のテキスト ここをファイル名2に書かれている行分ループ。 という形のシェルスクリプトを作成したいと思っています。 上手く説明できないのですが、このようなことが出来るのかお教えいただけますでしょうか。 出来るのであれば、どのようにすればできるのかご教授いただけると幸いです。 宜しくお願い致します。

  • PERL カンマ区切り 一致行削除

    教えてくださいm(_ _)m 最初に目的を書きます・・・ ~test.txt~ 1,aaa,eee,ttt 3,eee,eee,yyy 5,ttt,yyy,eee 2,yyy,bbb,qqq ↓ 5,ttt,yyy,eee 2,yyy,bbb,qqq ~~~~~~~~~~ 例1)、カンマ区切り3列目が「eee」 の行を全て削除(完全一致) 例2)、カンマ区切り3列目が「e」を含む 行を全て削除(部分一致) というふうにしたいのですが、 どのようにするのかわからないです・・・ 現在下記のように とりあえず1行目(0番目)を削除するとこまできました。 #! /usr/bin/perl $TEST = 'test.txt'; open(FILE, "<$TEST"); eval{ flock(FILE, 1) }; @DATA = <FILE>; close FILE; $NO = 0; splice @DATA, $NO, 1; open(FILE, ">$TEST"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE;

    • ベストアンサー
    • Perl
  • VBSで配列の結果内容から任意の文字列を探す。

    VBS初心者です。 配列を1つにまとめた内容(strMSG)から 正規表現を利用して任意のキーワードを元に grepのような実行結果が欲しいです。 【実行サンプル】 ------------------------------------------- Option Explicit Dim TEST(4),i,strMSG TEST(1) = "001-AB1" TEST(2) = "001-AB2" TEST(3) = "AB1-001" TEST(4) = "AB2-001" For i = 1 To UBound(TEST) strMSG = strMSG + TEST(i) & vbCrLf next msgbox strMSG ------------------------------------------- strMSGの内容として4行分TESTの配列が格納されています。 ここでは例として、先頭001で始る文字列を検索かけたいです。 【理想の実行結果】 検索キーワード:先頭が001で始る行 ------------------------------------------- 001-AB1 001-AB2 ------------------------------------------- よろしくお願いします。 【備考】 1つ1つのTEST配列単位でgrepかけるより、配列を1つにまとめたものに 1度だけgrepかけたほうが処理速度が速いかな?と考えているためです。

  • C++のファイルに対する配列データの読み書き

    C++で配列c[0],c[1],....の値をファイルに出力すると、 1.2 3.2 5.1 8.2 -9.1 のようになると思います(この例は配列のサイズが5)。実際は100以上の配列にします。 プログラム的にはだいたい下のようになると思っています。 std::ofstream ofs( "test.txt" ); ofs << ここで並びの出力をするはず? << std::endl; 意味は、出力ファイルの定義とストリームによる書き出し?と改行だと思います。 並びの出力ですから、ループでよいのでしょうか。プログラム作法が分からないので教えて頂きたいのですが。データの区切りは空白で、できれば書く数値のフォーマットは揃えたいですが。 次に、読み込むときはどうなるでしょうか。 std::ifstream ifs( "test.txt" ); std::string str; ifs >> str; std::cout << str << std::endl; これだと読んだデータを画面表示して終わりです。配列に読み込む方法なのですが。 よろしくお願いします。

  • シェルスクリプト複数の配列を使用したループ処理

    bashシェルスクリプトの素人です。 IPアドレスを1行に1つずつ記したファイル IP.txt と、IDを1行に1つずつ記したファイル ID.txt があります。 これらのファイルを使用して下のコマンドをすべてのIPアドレスに対して実行した結果を得たいです。 コマンド▲IPアドレス▲ID > result.txt IPアドレスの配列と、IDの配列を作成し、それをforでループさせれば良いのではと考え、Webで調べましたが実現方法がわからず困っています。 素人質問で申し訳ありませんが知恵を貸してください。

専門家に質問してみよう