1 :デフォルトの名無しさん:2012/04/27(金) 18:10:16.77
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
364 :デフォルトの名無しさん:2012/05/16(水) 20:38:47.72
プログラミングの単位強制的に取得したことになるプログラムまだー?
365 :デフォルトの名無しさん:2012/05/16(水) 20:40:21.98
>>364
うまくいっても後で困るだけだからやめとけ
366 :デフォルトの名無しさん:2012/05/16(水) 20:50:47.24
>>343
#include <stdio.h>
#define LEN 128
int main()
{
char fname[2][LEN] = {0};
char filename[LEN] = "file.doc";
int i, j;
for (i = 0, j = 0; filename[i] != 0 && filename[i] != '.'; i++,j++) {
fname[0][j] = filename[i];
}
if (filename[i] == '.') i++;
for (j = 0; filename[i] != 0; i++, j++) {
fname[1][j] = filename[i];
}
printf("%s\n", filename);
printf("%s %s\n", fname[0], fname[1]);
return 0;
}
367 :デフォルトの名無しさん:2012/05/16(水) 21:04:59.27
>>366
ポインタ使いまくりじゃん!
368 :デフォルトの名無しさん:2012/05/16(水) 21:07:36.81
>>367
ポインタ使ってる箇所をすべて挙げてみて
369 :デフォルトの名無しさん:2012/05/16(水) 21:23:03.13
全部だと多いので、一例。
> printf("%s\n", filename);
filename(これ自体は配列型)は評価されるとその先頭要素をさすポインタとなる。
"%s\n"(これもリテラル自体は配列)も同様。
printfはこれも関数ポインタとなる。
手元にあったC11ドラフト(N1570)なら
6.3.2.1:Lvalues,arrays,and function designators、6.5.2.2:Function Callsを参照。
C99でも同様(章番号は変わっとるかも知れんが)
6.5.2.1:array subscriptingも見といた方がいいな
370 :デフォルトの名無しさん:2012/05/16(水) 21:25:12.78
補足しておく。
御題が"ポインタを使うな"であるからツッコんでいる。
"ポインタ変数を使うな"ならスルーしてた。
371 :デフォルトの名無しさん:2012/05/16(水) 21:28:32.48
>>370
>全部だと多いので、一例。
全部書き出して
372 :デフォルトの名無しさん:2012/05/16(水) 21:41:36.88
>>343
http://ideone.com/g6Y0x
373 :デフォルトの名無しさん:2012/05/16(水) 21:44:12.57
>>350,353
>C[0][1] = A[0][0] - B[0][1];
↓
>C[0][1] = A[0][1] - B[0][1];
スレッドを全部読む