おまいら!今日からC言語を学んでいくぞー!パート3
2 :
デフォルトの名無しさん:2005/12/15(木) 20:28:18
3 :
デフォルトの名無しさん:2005/12/15(木) 21:30:19
またこの手のスレかよ。
一体何を意図してこんなすれをたてるのか?
Cでそんなに苦戦するならやめればいいのに。
話題も無いのにスレ立てるな
7 :
デフォルトの名無しさん:2005/12/16(金) 17:02:07
まあ立てないと話題は発生しないけどな。
8 :
デフォルトの名無しさん:2005/12/17(土) 23:37:00
txtをhtmlに変換するプログラム作ったのですが、最後の位置文字が処理されません。助言願います。
#include<stdio.h>
#include<stdlib.h>
void page(char *tg){ //タグ用書込関数
FILE *fp;
fp = fopen("output.html","a");
fprintf(fp,"%s",tg);
fclose(fp);
}
void kakiko(char *kk){ //書込関数
FILE *fp;
fp = fopen("output.html","a");
fprintf(fp,"%s\n",kk); //一行書き込んで改行
fclose(fp);
}
int main(void)
{
char *tag; //html,body,/body,/html
char col[2][20];
char fn[30],buf[1024]; //ファイル名,置換前バッファ
char buf2[1024]; //置換後バッファ
char br[]="<br>";
char lt[]="<"; //'<'
char gt[]=">"; //'>'
char ap[]="&"; //'&'
FILE *fp;
int i,t,A=0,B=0,con=0,sum=0;
printf("\t\t************************\n");
printf("\t\t* convert Text To HTML *\n");
printf("\t\t************************\n");
printf("textファイル名?:");
scanf("%s",fn);
fp = fopen("output.html","w");
fclose(fp);
fp = fopen(fn,"r");
if(fp==NULL){
printf("File Open Error\n");
exit(1);
}
tag="<html>\n";
page(tag);
printf("色を指定しますか?(する:1,しない:0)>>");
scanf("%d",&i);
if(i==1){ //「する」なら背景色と文字色指定
printf("背景色?:");
tag = "<body bgcolor=\"";
page(tag);
scanf("%s",col[0]);
page(col[0]);
printf("文字色?:");
tag = "\" text=\"";
page(tag);
scanf("%s",col[1]);
page(col[1]);
tag="\">\n";
page(tag);
}else{ //1以外なら<body>
tag="<body>\n";
page(tag);
}//1以外なら白地に黒
while(1){ //EOFまで反復処理
for(i=0;i<1024;i++){ //buf(2)の初期化
buf[i]='\0';
buf2[i]='\0';
}
fgets(buf,1024,fp); //1行読み込み
i=0;
while(buf[i]!='\0') //文字数取得
i++;
buf[i]=' ';
buf[i+1]='\0';
if(buf[1]=='\0')break; //EOF判定
A=0;
B=0;
while(buf[A]!='\0'){ //文字列の最後まで
if(buf[A]=='<'){ //'<'があれば
for(i=0;i<4;i++){
buf2[B]=lt[i]; //"<"に置換
B++; //置換後ポインタ++
}
B--;
}else if(buf[A]=='>'){ //'>'があれば
for(i=0;i<4;i++){
buf2[B]=gt[i]; //">"に置換
B++; //置換後ポインタ++
}
B--;
}else if(buf[A]=='&' && buf[A+2]=='t'){ //"&?t"があれば
for(i=0;i<5;i++){
buf2[B]=ap[i]; //"&"に置換
B++; //置換後ポインタ++
}
B--;
}else //それ以外なら
buf2[B]=buf[A]; //そのまま代入
A++; //次の文字へ
B++; //置換後ポインタ++
}
i=0;
while(buf2[i]!='\0')
i++; //出力字数を取得
i-=2;
if(i==0)
i++;
for(t=0;t<4;t++){
buf2[i]=br[t]; //文末に<br>を挿入
i++; //文末++
}
buf2[i]='\0';
sum+=i;
kakiko(buf2); //書出し関数へ
12 :
デフォルトの名無しさん:2005/12/17(土) 23:41:49
con++;
printf("・");
if(con%10==0)
printf(" %d\n",con); //行数出力
}
tag = "</body>\n";
page(tag);
tag = "</html>\n";
page(tag);
printf("\n\n%d行、%d文字くらい\n",con,sum/2);
printf("output.htmlに出力しました\n");
return 0;
}
//以上です。実行環境はgcc2.95.1です。
ここまでできてんだったらご自分で解決できそうなもんじゃねえかと。
最後にスペースとか無駄に入れるとできるもんです?
>>13 ええ、実行時にムダスペース入れる処理とか考えたのですが、
元ファイルを弄るのもどうかなと思いまして。
それに実行するたびにどんどんスペースが増えていくし。。
>>12 コードに無駄が多すぎて全部をきちんと読んだわけではないが、
取り敢えずstring.h内の標準関数くらい使い方覚えたら?
以下問題点列挙。
・文字数取得:strlen()を使え。
・EOF判定:意味不明。
・1行1024バイト以上のファイルを食わせたらどうなる?
・変数名を大文字はセンスが凄すぎ。
・buf2は最悪bufの4倍の長さが必要だと思うが。
・"<"に置換:自分で「4」を数えるな。コンパイラは既に知っている。
#つーかそもそもsprintf()かstrcat()でも使え。
・"&?t"があれば:意味不明。なんで&だけの場合は置換しないんだ?
・htmlの規格を満たすためには要素が足りなすぎる。
・colを配列の配列にする必然性がない。そう言えばtag変数も要らない。
・1以外なら白地に黒:とは限らない。単に、無指定なだけ。
・buf(2)の初期化:要らない。
何故なら、それぞれ上書きされるだけだし、初期化に頼って安直なコードを書く癖がつく。
恐らく空白を追加したりカウンタを微調整したりと言う小細工の所為で文字が消えているのだろう。
基本を抑えつつ、書き直した方が早いかも知らん。
#例えば、fgets()で取り込んだ行には大抵改行文字が最後に一つある。それの処理が明記されていない。
#但し、改行文字がない場合が二つある。一つはバッファが一杯のとき、もう一つはファイル末尾。
#もしかしたら、当てずっぽうで調整していないか?
ファイルポインタって使い回しできるのね?
文字数取得はstrlen
配列とポインタは別物
>>15 了解です。一度見直してみます。
>・EOF判定:意味不明。
buf[1]が\0なら末尾扱いするようにしました。
"EOF"という言葉が適切ではないかもしれませんが。。
>・"&?t"があれば:意味不明。なんで&だけの場合は置換しないんだ?
'>'、'<'の特殊文字を見つけるためにそのようにしました。
>#但し、改行文字がない場合が二つある。一つはバッファが一杯のとき、もう一つはファイル末尾。
このあたりが怪しい気がします。
>#もしかしたら、当てずっぽうで調整していないか?
ごめんなさい。
ここは学びたい人間が使うスレだ
校正なら宿題スレにでも行け
まとめwiki見たけど
これ何の価値もないなw
まず本読め
おまいは未だポインタの意味が分ってない
*tagにアドレス入ってないぞ
>>20 >*tagにアドレス入ってないぞ
???
>>20 文字列ポインタとして使ってるです。
"<html>"とかをメモリ上に確保してそこのアドレスが入るはず。
*tagはどこをさしてるか分らんポインタ
そこに""でくくったサイズ不定の文字列ブッコン伝だぞ
恐ろしい奴だな
それでエラーでないの?
tag[256]にしてstrcpyで文字列変更が普通
本読んで出直して来い
>>20==
>>23か?
char * tag; tag = "foo";
と書いた場合、tagには単純に文字列リテラル("foo")へのポインタが代入されるだけだぞ。
もしかして、
char foo[] = "foo";
と
char * bar = "foo";
では振る舞いが全く違うことを理解していないのではないか?
すいません、間違っていたようで…
char *tag;
tag="abc";
とできるのは知ってたが、さらに
tag="def";
とできるのは知らんかった
文字列はいじれないという事と勘違いしてたみたいだorz
でも普通こんな使い方しないだろ
*tag使わず直でpage("abc");でいいし
それかchar配列に前もって容れとくだろ
まあ間違ってたのは俺で一通りKR読んだんだが…出直してきまつ
>>15 ファイル末尾の改行文字無しが文字欠けの原因だったようです。
これから無駄を削っていくことにします。
ありがとうございました。
>>28 page("abc");が出来るのを忘れてました。
仰る通りです。。
31 :
デフォルトの名無しさん:2005/12/20(火) 12:45:08
標準入力から入力した文字列の順序を逆さまにして、標準出力へ表示するCプログラムを作成せよ。例えば、"abc"と入力すると"cba"と出力する。
みんな何言ってるかわかんね。
俺は超初心者だからな。
>>32 初心者の学びスレなので分からないことあれば誰か教えてくれるかも。
34 :
デフォルトの名無しさん:2005/12/20(火) 17:01:35
#define LSIZ5000
int main(void)
{
short *a,*pa;
a=(short *)calloc(LSIZ,sizeof(short));
pa = a;
l_seti(a,19999,pa);
return 0;
}
void l_seti(short a[],int n,short *pa)
{
pa+=2;
if(n>100000000)
{ a=pa;
*a = n/100000000; n = n%100000000;
a--; *a = n/10000; n = n%10000;
a--; *a = n;
}
else if(n>10000)
{ pa -=1;
a=pa; *a = n/10000; n = n%10000;
a--; *a = n;
}
else
{ pa-=2; *a = n; }
}
35 :
34:2005/12/20(火) 17:04:43
上のプログラムですが、
callocで確保したaの配列の各要素に4桁の整数を入力していくプログラムです。
paはaの値の入っている部分の末尾をさすポインタです。
l_setiではpaは上手くaの末尾をさしていたのですが
mainに戻ると、paはaの先頭を指してます。
paをそのまま維持してmainに戻るにはどうすればよいでしょうか?
宿題は宿題スレへ
37 :
34:2005/12/20(火) 17:20:47
関数をshort *l_seti(〜)にして
関数の最後にreturn pa;を入れて
mainに戻って
pa=l_seti(〜);
にすればいいのかな?
要するに関数にはpaのアドレス値を渡してるだけで
mainのpaと関数のpaは別者だから最後にpaのアドレスを返さんといかんのでは?
出直して来た28が言う事だからスルーしてくれ
40 :
デフォルトの名無しさん:2005/12/27(火) 23:25:00
41 :
デフォルトの名無しさん:2006/01/12(木) 23:34:46
人いNEEEE
42 :
デフォルトの名無しさん:2006/01/14(土) 17:32:09
しぃ言語とC言語。その違いは?
43 :
デフォルトの名無しさん:2006/01/14(土) 18:11:02
C#の宿題のアドバイスも可能ですか?
期限まであと2日、困ってます。
可能
46 :
デフォルトの名無しさん:2006/01/25(水) 11:13:10
最初にやるべきことは?
開発環境の導入。
48 :
デフォルトの名無しさん:2006/01/27(金) 16:21:49
だれか救いの手を。
学生の名前と、一教科試験の成績をメンバとする構造体をつくり、それ
らを20個(学生20人分)集めた配列をつくる。ライブラリ関数rand
を用いて、各学生の名前(英小文字5文字)と成績(0〜100)を初期化した
あと、試験の成績の降順に整列して出力するプログラム
構造体の宣言は
struct student{
char name[6];
int point;
};
難しすぎて解けません
>>48 ここは解いてもらうためのスレでは無い
自力で解く人のためのスレだ
50 :
デフォルトの名無しさん:2006/01/27(金) 16:47:40
52 :
デフォルトの名無しさん:2006/03/13(月) 00:21:59
課題のコードブレイカー出来た。。
ソフ開の過去問見たので全く自力ではないが。
#include <stdio.h>
#include <stdlib.h>
struct student{
char name[6];
int point;
}a[20];
int main(void)
{
int n,i = 0;
for{;;} //でぐるぐる回す
n = rand()
n > 0x61 && n < 0x7a
a[i].name = n
a[i].name[5] = '\0'
a[i].point = n%101
for //文終わり
あとは、pointでソート
}
ま、こんな感じになるだろうね。
別にどうでも良いけど
54 :
デフォルトの名無しさん:2006/03/13(月) 05:54:57
さっそくやってみた
さすがにまだまだ余裕
#include <stdio.h>
int main()
{
printf("Hello, world\n");
return 0;
}
ところでreturnで返す値ってEXIT_SUCCESSのほうがいいの?
55 :
デフォルトの名無しさん:2006/03/13(月) 05:57:26
#include <stdio.h>
int main()
{
int i, sum=0;
for (i=1 ; i<=50 ; i++)
sum+=i;
printf("%d", sum);
return 0;
}
56 :
デフォルトの名無しさん:2006/03/13(月) 06:25:43
#define _CRT_SECURE_NO_DEPRECATE //VS2005のセキュアな関数を使わない
#define FILENAME "data.txt"
#include <stdio.h>
void swap(int *l, int *r)
{
int tmp;
tmp=*l;
*l=*r;
*r=tmp;
}
int main()
{
FILE *fp;
char buf[6];
int nums[100], int_num=0, i, j, count=0;
//ファイル読み込み
fp=fopen(FILENAME, "r");
while (fgets(buf, sizeof(buf), fp) != NULL)
{
sscanf(buf, "%d", &int_num);
nums[count]=int_num;
printf("%d\n", nums[count]);
count++;
}
fclose(fp);
57 :
デフォルトの名無しさん:2006/03/13(月) 06:27:17
//ソート
puts("");
for (i=0 ; i<count ; i++)
{
for (j=i+1 ; j<count ; j++)
{
if (nums[i]>nums[j])
{
swap(&nums[i], &nums[j]);
}
}
}
//表示
for (i=0 ; i<count ; i++)
{
printf("%d\n", nums[i]);
}
}
ちょっとむずかった
swap関数で値じゃなくてアドレスを入れ替えて失敗したりorz
改行だけのためにputs("")を使うのは割とナンセンス。
59 :
デフォルトの名無しさん:2006/03/13(月) 15:19:14
putchar('\n');かな。
61 :
デフォルトの名無しさん:2006/03/14(火) 04:27:51
今日、初めてswitch文って物を知って感動したよ。素敵。
ところで俺が今勉強しているような超超基本的な関数って、
ゲーム作る段階に至っても使うんだよね??
それは、君のアルゴリズムによるさ
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
どなたかお暇なら僕を育成して下さい。wiki問題ならたぶん全部出来ます。暇な方問題出しておいて下さると助かります。
早く汁。
マジ早く汁!
我慢汁
メッサ早く汁
69 :
デフォルトの名無しさん:2006/04/07(金) 01:27:36
func.hがあって、次のような定義があるとする。
extern void func(void);
この関数はあちこちのソースから呼ばれているものとする。
プログラムを実行した結果、どのソースの何行目からfunc()が呼ばれたか知りたい。
どうすれば良いだろうか。
ただし、func()を呼んでいる.cは正しくfunc.hをincludeしているものとする。
(つまり勝手に内部でextern void func(void);とか宣言して使っていたりはしない)
また.cファイルに手をくわえることを禁止する。.cファイルの中身を見ることも
禁止する。
func.hはいじっても良い。
デバッグ技術クイズってとこかな。
やっとキターーーーーーーーァァァァァ!!!!!!!!!ず〜〜〜〜〜と待ってますた。
>>69 と言いますか難しいですよ・・・。デバッグをした事が無いから答えが出せないorz
勘で当ててやるぜ!!!デバッグで関数呼び出し回数だから#ifdefとかを使って
関数の呼び出し回数をカウントする!かもしれない、という憶測しか立てられない。
難す過ぎるからデバッグの勉強のし直しをしますか・・・。
>>70 日本語の勉強からし直した方が医院で内科医。
72 :
デフォルトの名無しさん:2006/04/07(金) 07:53:54
答え書くから、あきらめたら言ってくれ。
ヒント func.hに1行加えてコンパイル&実行するだけ。その1行とは?
>>71 見放さないで下さい。
>>72 誰かが答えるまで少しヘッダについてググッてきます・・・('A`)
分かりましたこうだ!#define func() printf("FileName=%d Line=%d",__FILE__,__LINE__)
やった、これなら合ってる気がします。
そして解答が来ない・・・。
76 :
デフォルトの名無しさん:2006/04/07(金) 18:55:39
>>74 方向性はいいけど、それでは func() を呼び出せないんジャマイカ。と通りすがりの突っ込み。
課題をお借りしてpythonで書きます。
Cも同時並行で書いてみます。
お断りします。
何も頼んでないと思われますが
お引取り下さい。
>>76 ぐぁ・・・。そうですよねマクロで定義されてしまいますから、そうなりますねorz
では、#define func() printf("FileName=%d Line=%d",__FILE__,__LINE__),func()
というようにprintfの後にfunc()を呼び出せばいいと考えましたが、これはどうでしょうか?
無駄なプログラムっぽいですが・・・。
せめて括弧でくくれ。
(printf(...),func())
>>83 括弧でくくるんですか。勉強になります!では今回の問題はクリアですね(´∀`)
85 :
69:2006/04/08(土) 09:42:22
出題者です。
82で正解。
87 :
69:2006/04/08(土) 13:05:48
よくみたら、82違う。
__FILE__は%sな。
>>86 演算子の優先度の違いで予期せぬ結合をする可能性があるから。
int x;
x = func();
上みたいなコードを誰かが書いてもコンパイルエラーで叩き落せるしね。
初学者です。今日からプログラミング言語Cを教科書にしてちょっとずつ
プログラミングをやっていきたいと思ってますので、よろしくお願いします。
過疎スレにいらっさいまし
ぅし、 俺も観察しといてやる
誰も居ないと思ってたが何人か居たのね。
言語の文法 と そもそもプログラムをどのように考えて作るか といった事は
どんな感じで習得すれば良い?
普通一般的に外国語の習得とかっていきなり書くことから始めないよね?
>>94 言語の文法:あらかじめ規定してある。
どのように作るか:分かりやすく、読みやすく、移植性に優れ、バグがなく
要求を満たす、だが要求以上なものを作り無駄なコストを作らない事。
俺超かっこいい(´∀`)
>>95 >要求を満たす、だが要求以上なものを作り無駄なコストを作らない事。
それってエラー処理も含まれるの?
今日から参加したいのですが、よろしいですか?
空気の読めない人ですね。
皆さん申し訳ない(-_-;)暖かく見守って欲しいです
嫌な別の道を探します
100 :
デフォルトの名無しさん:2006/05/24(水) 11:50:08
初心者は参考書のサンプルプログラムを全部打ち込んで動かして見ろ
言語の文法も意味も分からなくていい
ただそのプログラムを動かすと何が起こるかが判ればいい
次に自分でプログラムを組む時『○○は××ページの例を変えたらできそう』となればその参考書が宝物になる
101 :
デフォルトの名無しさん:2006/05/24(水) 11:53:40
読むだけや付属CDのサンプルプログラムを動かすだけではダメ
自分で打ち込んで初めて身につく
>>102 再起不能だって?
冗談兎も角、マクロの展開は際限なく行なわれることはない。
^~
知らんかった。どうも
>100-101
その辺の理由をもう少し深く説明してくれると
より理解できると思うんですが
そんなことを説明されないと理解できないんだったら、
深く説明したところでどうせ理解できないから安心しろ。
>>105 それはなんでまむこにtぃんぽをつっこむと気持ちがいいんですか?と聞いているのと同義
cin
cout
const
↑なんて読むんですか?
109 :
デフォルトの名無しさん:2006/07/21(金) 16:05:04
しまった。過疎スレに書き込んでしまった。あげないと駄目だ。
俺はシーイン、シーアウト、コンストと読んでいる。
過疎じゃないスレ使えばいいのに
ありがとうございます。
誰がいいかな?と悩んだ結果・・
18歳○校生 158,45.82C/59/85 30K
18歳○校生 160,47,84C/59/86 25K
1○歳○校生 151,?,85D/58/87 30K
1○歳○校生 157,51,84/62/85 20K
19歳○学生 158,?,85F/64/86 20K
結局悩んだ挙句、ちっちゃい子ロリフェチな俺は三番目に突撃した。
これ全部、ワクワクで本当にアポ取れた子。ホントの話。
他の子断るの申し訳なかったが結果的によかった。
まじで夏川純似の人形みたいな女の子が!?
しかも制ふ○で来ちゃったもんだから自分でも騙されてるとか、もしかして美人局か!?と思ったくらい。
生まれてこんなタイプな子とエチーできたなんて偶然だろうけど本当によかった。
一度でもこんな体験してしまうとマジではまる。というか、もう完全にはまってしまった。馬鹿な俺w
http://550909.com/?f4720435
114 :
デフォルトの名無しさん:2006/07/21(金) 23:36:30
シーアウトって読むの?カウントの略でコウトって読んでた・・・
うぜえよ黙れ
116 :
デフォルトの名無しさん:2006/07/22(土) 00:48:47
居やhhッ頬頬オほほほほっふううううううううううううううううううううう
>>114 cout/cinのcはconsoleのcだろ。
118 :
デフォルトの名無しさん:2006/07/22(土) 01:31:05
>>1よ
もうチョット分割してくれないか・・・orz
119 :
デフォルトの名無しさん:2006/07/22(土) 01:40:54
文字列が完全に同じかどうか判断すんのって
strcmpで0が帰ってくるかどうか判定すればおk?
120 :
デフォルトの名無しさん:2006/07/22(土) 01:54:40
>>1に触発されてCUIのhtmlエディタ作ってみたんだが
配列でstr[1023];って指定してるから
1023文字以上入力できねえwwwwwwwwwwwwwwww
だれかボスケテ
>完全に同じかどうか
strcmp(s1,s2) は、ゼロよりも、1)小さい、2)等しい、3)大きいのいずれかを返す。
それぞれは、s1 が s2 よりも、1)小さい、2)等しい、3)大きいに対応している。
123 :
デフォルトの名無しさん:2006/07/22(土) 02:08:39
じゃ、str[2054];で
>>122 メモリ確保。
malloc(),free()使えばいいよ。
例>
char* str = NULL;
char
126 :
125:2006/07/22(土) 03:16:56
すまん、途中までうって転送してしまった。あとは補完しといて。
ぷっって吹いた
128 :
デフォルトの名無しさん:2006/07/22(土) 11:40:32
こんなんになった
#include <stdio.h>
#include <stdlib.h>
/*htmlを書き始める*/
FILE* starthtml() {
char str[1023];
FILE *fp;
printf("htmlファイル名を入力してください\n");
scanf("%s",&str);
if((fp=fopen(str,"w"))==NULL) {
printf("ファイル作成時にエラーが発生しました\n");
exit(1);
}
printf("htmlのタイトルを入力してください\n");
scanf("%s",&str);
fprintf(fp,"<html>\n<head><title>%s</title></head>\n<body>",str);
return (fp);
}
129 :
デフォルトの名無しさん:2006/07/22(土) 11:41:02
/*htmlの終了処理*/
int endhtml(FILE *fp){
fprintf(fp,"\n</body>\n</html>");
fclose(fp);
return 0;
}
130 :
デフォルトの名無しさん:2006/07/22(土) 11:41:33
/*htmlに書き込むメイン処理*/
int writehtml(FILE *fp){
char str[1023];
while(1){
scanf("%s",&str);
if(strcmp(str,":q")==0) break;
fprintf(fp,"%s<Br>\n",str);
}
return 0;
}
131 :
デフォルトの名無しさん:2006/07/22(土) 11:42:03
int main(){
FILE *fp;
fp=starthtml();
writehtml(fp);
endhtml(fp);
return 0;
}
>scanf("%s",&str);
>if(strcmp(str,":q")==0) break;
:
この辺りを1文字づつ処理するようにすれば問題なし
scanfに&はイラネ
134 :
デフォルトの名無しさん:2006/07/22(土) 18:23:30
>134
>> 配列でstr[1023];って指定してるから
>> 1023文字以上入力できねえwwwwwwwwwwwwwwww
138 :
デフォルトの名無しさん:2006/08/22(火) 12:19:55
今日から学校が再開するまでの3週間の間に
C言語の予習をしようと思って勉強を始めたのですが、
どこら辺まで勉強すべきでしょうか?
予習なんかすんな
140 :
デフォルトの名無しさん:2006/08/22(火) 12:46:05
>>139 来年からはSEとして働くのでCの基礎を
マスターしておきたいのです。
CができなくてもSEの内定通るんだな。
SEはプログラマじゃないからね
143 :
デフォルトの名無しさん:2006/08/23(水) 11:09:29
どこら辺まで勉強すべきかなんて会社側に聞けよ。
っていうか勉強に制限をかけようとしている時点で
SEとして終わっているが。
145 :
18歳:2006/08/23(水) 12:31:51
こんにちは。C習おうと思いスクールに通おうと思うのですが…
ゃっぱり独学より覚えが断然早いんですかね?
来年の4月には、基本情報技術者も視野にいれて頑張るつもりです。
また独学の場合はどのような参考書がいいでしょうか?
アドバイスよろしくお願いします。
スクールに通うのはやめておけ。ぼったくられるだけだ。
参考書に関しては過去に色々なスレで同じ質問が何度もされてきているから
それらを探した方がいい。
これからC言語を学ぶ方へ
・独学で学ぶ知的好奇心が無いなら止めろ
・勉強には終わりが無いことを認識しておけ
・まともなアプリ等が作れるようになると楽しい
・なるべく仕事にしない方がいい
・気長にやれ。他の事で気分転換しる
・とりあえず自分でやってみれ
・時々、定義を再確認しる
・参考書などを一冊買うと統一性のある知識が得られ理解が早まる、かも
・アイデア帳などを常に持つといい、かも
148 :
デフォルトの名無しさん:2006/11/23(木) 22:50:34
age
懐かしいな。
>>1はフリーターに戻ったのだろうかw
確かに、仕事にはしないほうがいいわな。
嫌になってくるよ。
別の言語がやりて〜〜〜〜〜って。
俺日記
何とはなしに分割コンパイルってかっこよさそうだから
無理やり3つ4つに分けて1個数十行程度のコード書いてみた
……数時間のにらめっこの末インクルードガードの大切さを知ったのだったとさ、ちゃんちゃんorz
にしても汎用的な関数作るのって難しいんだなぁ
どうしても書いてるうちにあれもこれもやらせたくなってしまう
OOとか夢のまた夢だろうなーまあぼちぼち頑張ってこ
>>151 逆に考えるんだ。
関数にあれもこれも詰め込もうとするのではなく、如何に機能を削減するかが鍵だと。
>>152 難しいなぁ……一つの関数で出来ることはやっちゃった方が効率良いじゃん、とか思ってやってしまう
自分みたいな素人がどう書いたところで有意な差なんて出ないって分かってはいるけど
構造化プログラミングの風上にも置けないぜ
>>151の日記を読んだ感想
C言語を学ぼうとする姿勢の前向きさが伝わった。
OOPが夢なんてほどの物じゃないよ〜
Cだけでも立派なプログラム
C++でお粗末なクラスを使ったプログラム
あんたの言うとおりぼちぼち頑張れ〜
>>153 コンパイラも賢いからそれ位下手したら同じコードを出力する。
そうでなくとも、今時のPCのCPUからすればその程度の効率の差なんて、
何百万〜何億秒分の一程度の違いにしかならない。
>>151 ライブラリとか作る際にはソースが奇麗よりもいかに便利に使ってもらえるかが優先されるぞ。
だからやたら泥臭いソースを書く事になる。
中身が泥臭くても、見た目(インタフェース)が良ければ由。
な、何故急にこんなにレスが
確かにコンパイラ一つでやって来てるから、プロファイラとかデバッガも分からんのよね
そんな状態で早さ求めてもしょうがないので、これでもかってくらいに関数作ってしまおう
いろいろありがとう
最近、仕事でコードを見ると吐き気がするよ。
退職した方がいいのかな。。。。。。
と、人生相談をここでしてみる。
コードでオナニーできる人もいるというのに
自分のコードじゃなくて他人のコードなら時々あるね
良いコード見ながら仕事するのと
糞コード見ながら仕事するのとでは
全然作業効率が違う
162 :
助けて・・・:2007/01/19(金) 00:03:50
西暦入れて十二支を出すプログラムが出来ない!!
天才様助けて・・・超初心者です・・
分かりやすいプログラム教えて下さい・・・
163 :
デフォルトの名無しさん:2007/01/19(金) 00:16:01
>>162 西暦を12で割った余りで条件分けしたらどう?
164 :
助けて・・・:2007/01/19(金) 00:27:54
よくわかりません・・・
頑張ってみます・・・
つまらんコードをぺたぺた貼り付けるスレはここですか?
166 :
デフォルトの名無しさん:2007/01/19(金) 01:12:10
今年は2007年で、これを12で割った余りは3。
それを「亥」とすると、4は「子」、
int seireki,x;
printf("西暦:");
scanf("%d",&seireki);
x = seireki % 12;
if (x == 3) printf ("亥\n");
if (x == 4) printf ("子\n");
以下略
12で割った余りは0〜11が出てくるので、それで判定
判定はswitch〜caseでもいいし、お好みで。
167 :
助けて・・・:2007/01/19(金) 01:44:44
超すごい!!天才ですね!!
ありがとうございます!
あーあ、マルチに教えちゃって
>if (x == 3) printf ("亥\n");
>if (x == 4) printf ("子\n");
>
>以下略
死ねよ
printf("%.2s\n", "申\酉戌亥子丑寅卯辰巳午未" + x * 2);
>>170 まさかお前、ShiftJis未対応のコンパイラなんか使っているのか?
3級取ったー
fprintfで構造体をファイルに書き込むことはできないんでしょうか。
できます。しかし、余り意味がないのでお勧めはしません。
>>175 そうなんですか
余り意味がないとはなぜなのですか?
>>176 fprintf()では出力するものを文字列として取り扱うので、
「構造体をメンバごとに出力する」ことはできても「構造体のメモリイメージを出力する」ことはできないのは判る?
文字列として扱おうとするfprintf()ではなくて、メモリイメージのまま扱えるfwrite()なら話は違うのだろうけどね。
180 :
デフォルトの名無しさん:2007/05/20(日) 20:35:53
独習c約数表示でつまずき中。自分の馬鹿さ加減に愕然としてる。
181 :
デフォルトの名無しさん:2007/05/20(日) 20:42:42
182 :
デフォルトの名無しさん:2007/08/07(火) 11:06:22
int main(int argc,char *argv[]){}だけで
アプリケーションの引数を取得できるんのか。感動〜。
やっぱ人によって違うもんだな
どうやってその仕組みを実現してるのか知りたかった俺はがっかりした
数字入力したときに0が表示されないんだけどなんでかなー?
185 :
デフォルトの名無しさん:2007/09/24(月) 08:29:24
パソコンを買って、いざ家で勉強しようと思っても、うまくコンパイラ等がインストール
できません。
仕方なくROM付の教材を買ってきてそこからダウンロードしようと思ったのに
それもうまく出来ません・・・。
助けてください!!!!お願いします!!!!
>>185 パソがハイスペック過ぎるから
中古のを買いなおしな
>おまいら!今日からC言語を学んでいくぞー!
一人じゃ何もできないんですか。
俺は独学で九九を表示できるまでになったし
>>1は努力が足りないぞ
その程度で人にものを言える立場かよm9(^Д^)プギャー
192 :
デフォルトの名無しさん:2007/09/24(月) 22:41:04
俺は独学で、Hello,wrold! を印字するプログラムかけたし
>>1は努力が足りないぞ
その程度で人にものを言える立場かよm9(^Д^)プギャー
俺は独学でコンパイラをインストール出来るようになったし
>>1は努力が足りないぞ
その程度で人にものを言える立場かよm9(^Д^)プギャー
196 :
デフォルトの名無しさん:2007/09/25(火) 13:51:23
俺は独学で、華氏を摂氏の変換するプログラムかけたし
>>1は努力が足りないぞ
その程度で人にものを言える立場かよm9(^Д^)プギャー
198 :
デフォルトの名無しさん:2007/09/25(火) 15:57:53
俺は独学で、ガウス消去法のプログラムかけたし
>>1は努力が足りないぞ
その程度で人にものを言える立場かよm9(^Д^)プギャー
200 :
中卒引き篭もりブタニート:2007/10/08(月) 05:26:19
よろしくおねがいします
悪いけど気持ち悪いからこっち来ないで
203 :
デフォルトの名無しさん:2007/10/08(月) 11:43:30
WIKIの課題ってVS05でおk?
204 :
デフォルトの名無しさん:2007/10/19(金) 00:02:16
あ
独学で何もないとこからバブルソートくらいは組もう…。
昔課題ででてソートアルゴリズムなんか知らなくて
自力でバブルソートのアルゴリズム考えた。
(そのころは表示と分岐とループが教えられた程度)
でもクラスメイトの分布数えソートに負けた…。
先生がどんなデータをソートするか言わなかったから自分はやめたのに…
くすん(;_;)
Visual C++ 2005 Express Edition を使ってます。
C言語を練習したいんですが、コンパイルしようとしても
C++ は int を既定値としてサポートしていません
とか言われてしまいます。どうやったらC言語に対応させられますか?
そもそもこれはC++専用なんですか?
207 :
デフォルトの名無しさん :2007/10/24(水) 00:08:12
>>206 どうゆうコード書いたかしらんが
ファイル拡張子を.cppから.cにすれば勝手に理解してくれる
208 :
デフォルトの名無しさん:2007/10/26(金) 11:19:35
初心者です。
研究でセンサーのデータをとりました。
これをもとにセンサの配置などをシミュレーションしてみたいのですが
何の言語を使えばいいのか、全く分かりません。
何かヒントなどあれば教えてもらえませんか??
>>206 main()の頭に型名の修飾がついてない(int main()になってない)とか、そんな問題じゃないの?
>>208 先輩に聞け。
こんなところで聞くような奴が、よく研究とか言えるな。
シミュレータ作るなんて、何年後になるんだろうな。
211 :
デフォルトの名無しさん:2008/05/09(金) 23:16:42
ぽぽい
212 :
デフォルトの名無しさん:2008/05/10(土) 13:23:25
includeファイルがオープンできないとコンパイラに怒られました
パスもしっかりしてるのに、どうすればいいんですか?
>>212 状況を他人に説明できるように、コミュニケーション能力を鍛えてみましょう。
質問なんですが
12月から大学でC言語プログラミングの授業がはじまります。
初めてプログラミングをするので大学指定のテキスト意外にも
初心者でも分かり安いテキストを購入したいと思います。
オススメのテキストはありますか?
読んだだけで理解できるほどプログラミングは簡単ではありません。
テキストを増やすくらいなら、手数を増やしましょう。
>>214 大学指定のテキスト + K&R
これで分からなければ橋渡しの本を買え
そうかなあ
またそういうことを
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L
名言集 その2
『お前が規制系キャップ取れるか審査してやるよ』
http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★
> 36 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:31:30.02 ID:PVAf+dux0
>
>>33 > キャップとコテハンの違いは何?
> 46 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:38:05.34 ID:PVAf+dux0
>
>>45 > その回答では落ちるなw
> 答えは教えないがw
> 50 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:41:29.96 ID:PVAf+dux0
> Q.キャップとコテハンの違いは何?
> A.2ちゃんねるのボランティアの登録制度
> それがお前の答えかw
> 52 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:43:10.06 ID:PVAf+dux0
> まぁ、どうせ正解が出るわけもないし、次の問題。
> 君が思う面白いスレはどんなの?
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください