
1 「ファイルの入出力」
以下のプログラムはdata.txtのデータを読み込み,画面に出力するものです.
下記のプログラムの######を埋めて完成させよ.
#include <stdio.h>
#include <stdlib.h>
int main(void){
char dummy[128], filename[128];
FILE *fp;
char x;
sprintf(filename,"data.txt");
fp=fopen(filename, "r");
if(#####(1)####) {
printf("ファイル%s が見つかりません\n",filename);
return(-1);
}
while(#########(2)############){
putchar(x);
}
fclose(fp);
return(0);
}
2 構造体を用いたプログラム
名前と点数用のメンバを持つ構造体dataを宣言しなさい。
また、名前と点数を表示する関数hyoujiを完成させよ。
#include <stdio.h>
(1)
void hyouji(###(2)###, int no);
int main(void){
struct data member[3] = {{"伊藤", 71},{"小林", 81},{"山田", 67},};
hyouji(member, 3);
}
void hyouji(####(3)####, int no){
int i;
for(i=0; i<no; i++){
printf("%s:%d\n", ###(4)###);
mem++;
}
}
3 「2次元配列を使った行列の四則演算」
次のプログラムは、2次元配列の和を求め結果を表示するためのものである.
関数 mat_tasu()の中身を完成させよ.
ただし関数 mat_tasu()は引数を持たない関数とします.
#include<stdio.h>
int ma[2][2]={{1,2}, {3,4}};
int mb[2][2]={{5,6}, {7,8}};
int mc[2][2];
void mat_tasu(void);
int main(void)
{
int i,j;
mat_tasu();
for (i=0; i<2; i++){
for (j=0; j<2; j++)
printf("%3d", mc[i][j]);
putchar('\n');
}
return (0);
}
/*行列の和の計算 */
void mat_tasu(void)
{
(1)
}
各問題の(1)や(2)みたいになってるところに当てはまるプログラミングを教えてください!
一問だけでもいいので分かる方いましたら、回答お願いいたします!
No.1ベストアンサー
- 回答日時:
1-1 if だから何かを判定しているんですよね。
オープン出来なかったのは何かですね。1-2 while だからループですよね。ファイルから1文字読み込んだ値が適切かどうかでしょうか。
2-1 何かinclude か変数の定義でしょうか?
2-2 2-2 と2-3 は同じですね。宣言と定義ですので。んでこの関数が呼ばれている所を探すと、ここにどんな型が入るのか分かりそう
2-4 おそらく配列の個々の値でしょうね。(ヒント:ここは値が複数?)
3-1 mc = ma * mb でしょうね。具体的には行列の計算なんですが・・・。
いかにも課題って感じですね。プログラムの楽しみもへったくれもココから見いだせません。まっ、がんばって。
No.4
- 回答日時:
おっと, 1 の (2) は処理系によらない書き方ができそうだ. 多分, この問題を出した人間が期待する解答にはならんけど.
単純に getc ではダメなんだよな~.
No.3
- 回答日時:
みなさん騙されてはいけません.
1 の (1) をよ~く見てください. この if でチェックすべきは「ファイルが存在するかどうか」ですよ. 「ファイルがオープンできたかどうか」ではありません. つまり, 「ファイルはあるけど諸事情でオープンできない」ときにはこの if で引っかかってはいかんのです. で, それをこの 1行で書くことはできません.
ちなみにその次の (2) も書きようがなかったりする (厳密に言えば「動かない処理系があっても文句の言えない」プログラムにはできる).
No.2
- 回答日時:
これ課題でしょ。
自分で考えないと後々困ると思いますが。ヒントだけ。1.「fopen」「戻り値」で検索。
2番目は
http://www1.cts.ne.jp/~clab/hsample/IO/IO14.html
を参照
2.は以下を参照。
http://www.mapee.jp/cpp/post_30.html
その際、文字列を格納する配列はSJISならば文字数×2+1(文字列終端を示す'\x0')分の領域が必要。「hyouji(member, 3);」のところでhyouji関数に構造体配列の先頭アドレスを渡しているのでhyouji側では「->」で参照しなければならない。
3.関数内でi,jを宣言して2重ループにして足せばいいのでは。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数から配列を返すには?
-
c言語
-
配列の要素数に変数を入れたい...
-
C言語において、 配列要素をひ...
-
2番目の最大値を求める
-
C#で構造体の配列を持った構造...
-
MFCのCArrayを使った二次元配列
-
ファイルのデータを構造体に代...
-
C#で配列が空かを判定するには?
-
RAW画像高速表示について
-
C言語についてです 5人のテスト...
-
C言語 ファイルの指定された行...
-
define で 配列
-
配列における数値の比較について
-
要素数・要素の値が未定の配列...
-
ループカウンタを使用せず、配...
-
コンボボックスでデフォルト値...
-
引数で指定された配列の要素数...
-
配列のアドレス部
-
C言語 配列の長さの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数から配列を返すには?
-
配列の要素数に変数を入れたい...
-
C言語において、 配列要素をひ...
-
c言語
-
C言語 ファイルの指定された行...
-
define で 配列
-
C#で構造体の配列を持った構造...
-
C言語の課題が出たのですが自力...
-
char型配列をint型に代入するには
-
C#で配列が空かを判定するには?
-
MFCのCArrayを使った二次元配列
-
コンボボックスでデフォルト値...
-
MFC - ダイアログボックスのPic...
-
c言語 構造体
-
2番目の最大値を求める
-
C言語から質問です。
-
Cのエラー
-
プログラミングに関する問題が...
-
C言語の2次元配列 容量が大き...
-
Visual C++を 用いたテキストフ...
おすすめ情報