トップページ⇒tech
30コメント13KB

【一人で】C言語課題クレクレ【できないもん】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/09/04(月) 19:47:53
C言語の勉強してるけど上達しません ><
なにか課題をください。
0002デフォルトの名無しさん2006/09/04(月) 20:49:05
557 名前:デフォルトの名無しさん[] 投稿日:2006/09/04(月) 17:53:33
質問です。Perlの配列のように、各要素が型を限定しないようなリスト構造をC言語で作りたいと思っています。
リストの構造は線形リストを使えばそんなに難しくないと思うのですが、データを保持する方法で悩んでいます。
基本的には格納するデータへのポインタをリストの要素に保持すれば良いと思うのですが、どのような手法を使うか悩んでいます。
0003デフォルトの名無しさん2006/09/05(火) 23:04:45
課題01.テキストファイルを読んで表示

>kadai01.exe aaa.txt

課題02.テキストファイルを読んで行中に指定された文字が含まれていたらファイル2に書き込む

>kadai02.exe aaa.txt abc bbb.txt

課題03.指定された年月のカレンダーを表示

>kadai03.exe 2006 09

0004デフォルトの名無しさん2006/09/14(木) 00:33:18
課題04:EXE実行でご飯を炊く
0005デフォルトの名無しさん2006/09/14(木) 07:42:24
課題02. 削除依頼を出す。
0006デフォルトの名無しさん2006/09/14(木) 15:59:36
>>1
何が分からないのかとかハッキリしていれば、其れ相応の課題が出せるんですが・・・。
何処が分かり難いとかって有りますか?
0007デフォルトの名無しさん2006/09/14(木) 16:01:54
>>1
課題がほしいなら学校行け
0008デフォルトの名無しさん2006/09/14(木) 22:16:24
>>7
確かにその意見も一理あり。
0009デフォルトの名無しさん2006/09/15(金) 22:07:14
取り敢えずポインタの課題を。
(課題番号は>>3の続きで4から)

課題04.二つの変数の値を交換する関数void swap(int *x,int *y)
また、その関数を動作させる為の適切なmain関数も作成すること。

次に再帰処理

課題05.階乗を求める関数 unsigned long kaijyo(int n)を作成。
main関数も作成。

次にポインタ文字列

課題06.入力された文字列の複製を作るプログラムを作成。
尚、入力された文字列はポインタに格納すること。
0010デフォルトの名無しさん2006/09/15(金) 22:11:59
BSD上でpthreadを使った課題をくらはい
いまいち何の役にたつのか、どういう局面で
つかうのかわからないんです。
0011デフォルトの名無しさん2006/09/15(金) 22:22:53
こんなスレ立てるより、宿題スレに張り付いてればいいと思うが。

>>10
課題じゃないが、とりあえずこの辺は読んどけ。
期待に沿えるかは知らん。
http://www-06.ibm.com/jp/developerworks/linux/001208/j_posix1.html
0012102006/09/17(日) 23:53:12
>>11
熟読してみます。
ありがとうございますー
0013デフォルトの名無しさん2006/09/19(火) 12:29:10
「C言語とは何か」を小学生でもわかるように簡単な言葉で説明してください。
この小学生は、OS?システム?Windowsって何?と言ってくるようなステキなお子様です。
0014デフォルトの名無しさん2006/09/19(火) 13:14:55
モルボル書いてみて
0015デフォルトの名無しさん2006/09/19(火) 14:03:14
printf 文、scanf 文を必ず使う
if 文を使う
黒色以外で表示
10行以上のプログラムであること
以上を満たした意味のあるプログラムつくってクレクレ
0016デフォルトの名無しさん2006/09/19(火) 20:41:00
答えてくれる人いねええええええええええ
0017デフォルトの名無しさん2006/09/19(火) 21:31:13
>>16
ここは課題クレクレスレであって、答クレクレスレではない
0018デフォルトの名無しさん2006/09/20(水) 01:44:20
>>17
プログラムの課題しかやってくれないの?
>>16も一応課題なんだけど(´・ω・`)
0019デフォルトの名無しさん2006/09/20(水) 15:18:41
>>13
そのレベルに小難しいことを言っても意味無しだろう。
せいぜい「パソコンで動くゲームとかが作れるんだよ」程度でどうか。

つーか、このスレは俺が答えても仕方ないのか。w
0020デフォルトの名無しさん2006/09/21(木) 01:53:28
>>19
あんなレベルだけどちゃんとした説明じゃないと納得しない
困った小学生なんだぜ。
0021デフォルトの名無しさん2006/09/26(火) 12:45:45
>>1のレベルがどの程度かわからないが
()なし、一桁の四則計算機なんてつくってみたら?
例えば1+2-3*4/5と入力したら答えを求めるとか。
もちろん/*と-+の優先順位を考慮して。
0022デフォルト名無しさん2006/09/27(水) 09:21:39
四則演算についてのあるページのコピペ
http://mitty.jp/up/src/up1969.c
0023デフォルトの名無しさん2006/09/27(水) 12:42:39
>>22
ここは課題を出してあげるスレであって、課題をかわりに解いてあげるスレじゃないだろ。
スキルつけたがってるんだから自分で考えさせないと意味ないじゃん。
0024デフォルトの名無しさん2006/09/27(水) 12:52:50
double keisan(char *str){
if(!strcmp(str,"1+2-3*4/5")) return 0.6;
return 0;
}
0025デフォルトの名無しさん2006/09/27(水) 13:37:24
MHK コーディング対局の時間です。

コーディング対局とは、対局者の2人がC言語を使い、"}"または、";"がでるまで
口頭でコーディングをしていくと言うものです。勝者は、有効な「return 文」
または、mainの"}"を閉じた方が勝ちです。

解説は、MHK C言語解説委員の山田さんにお願いいたします。

それでは、先手の攻撃です。

読み手「先手、int main(void) { int i; 」

アナ「山田さん、先手の攻撃をどう見ますか?」
山田「コーディングの対局は、前の行に戻って、コーディングをやり直したり、
新たに変数を付け加える事ができませんので、序盤の変数宣言が後々
勝敗に響いてきますので、この変数宣言は重要ですよ。」

読み手「後手、 int j;」
山田「しかし、この"int i; int j;"は将棋でたとえるなら歩の打ち合いですから
定石といってもいいでしょう。」

読み手「先手、 for(i=1; i < 10; i++) {
for(j=1; j < 10; j++){
printf("%d",i*j); 」

アナ「おっと、先手がいきなり王手飛車取りの様な手を使ってきました 。」
山田「ちょっと、この手は序盤の手としては恐ろしいですよ。なにせ、変数が
二つしかありませんから、先手も自分の首を絞めかねないですね。」
0026デフォルトの名無しさん2006/09/27(水) 13:38:47
読み手「後手、if (i*j == 36) break;」
山田「先手の先制攻撃に対し、後手も荒業breakで反撃にでましたね。」
アナ「では、山田さん、次に先手はどうコーディングしたら良いでしょうか?」

山田「やはり、ここはおとなしく"}"だけで我慢するべきですね。」
アナ「そうですね。では、次の手を見てみましょう。」

読み手「先手、else if (i*j == 25) break;」
アナ「おっと、これは予想に反し、先手もbreakで応酬です。」

読み手「後手、else if (i*j == 16) break;」
アナ「おっと、ついに千日手のbreak3連発になってしまいました。」
山田「千日手ですから、先手は手を変えなければなりません。先手は2手、損を
したことになりますね。」
0027デフォルトの名無しさん2006/09/27(水) 13:39:27
読み手「先手、Label1:
switch(i){
case 5 : if (j = 5) return 0; 」
アナ「おっと、先手、またもや王手をかけてきました。」
山田「先手は勝ちを急ぎ過ぎていますね。あのLabel1と言うのがなかなか曲者
ですね。後手が悪あがきしても、あのLabel1:に飛んでしまえば、
returnで勝ちになりますからね。」
0028デフォルトの名無しさん2006/09/27(水) 13:40:15
読み手「後手、default: return 1;」
アナ「それに対し、後手は余裕のdefaultをかましてきました。」
山田「これはもう、先手は"}"しか出せません。」

読み手「先手、]」
読み手「後手、同、 }」
アナ「後手も"}"ですね。」
山田「そうですね、通常の人間では、今"{"がいくつネスとしているかなんて
おぼえられませんから、減らしているのでしょう。」

読み手「先手、同じく、}」
アナ「いよいよ最終局面に入ってきましたが、先手も"}"で応酬するとは思いません
でした。」
山田「これは、後手が有利ですね。あとはreturn }だけで勝てそうですよ。」

読み手「後手、return 0;」
アナ・山田「え!?」
山田「これは微妙な雰囲気ですよ。これで、先手がmainの"}"を閉じる
わけですから、先手の勝ちのような気がしますが・・・。いったい、
後手は何を考えているのでしょうか?」

読み手「先手、} にて終局です。」

アナ「では実際に動かしてみましょう。ああ、なんと、後手の勝ちです。」
山田「そうです、中盤のdefaultのあとのreturn文でいきなり終わっています。
先手、後手とも、後手が勝っていたことに気づいていませんでした。」

アナ「(「山田、おまえもだろ。」と突っ込みをいれつつ) しかし、山田さん、
このプログラムは何をするプログラムなのでしょう?」
山田「それは各自お考えください。」

それでは「コーディング対局の時間を終わります。 MHK」
0029デフォルトの名無しさん2006/09/27(水) 14:58:26
>>20
ビタミンと同じでCが良い。
脳に良い。
とか言っとけばおk。
0030デフォルトの名無しさん2006/09/27(水) 16:18:26
//課題01の回答
#include <stdio.h>
#include <string.h>

#define BUFF_SIZE 5000

int main(int argc, char *argv[])
{
char buf[BUFF_SIZE];
int i;

if(argc!=2){
printf("コマンドラインエラー\n");
return 0;
}

FILE *fp;
fseek(fp, 0L, SEEK_SET);

if((fp = fopen(argv[1], "rb+")) == NULL ){
printf("ファイルオープンエラー\n");
return 0;
}

fread(buf,sizeof(char),BUFF_SIZE,fp);
fclose(fp);
printf("ファイルの内容=\n%s",buf);

return 1;
}
■ このスレッドは過去ログ倉庫に格納されています