わたしはCやりたーての人間です
■ このスレッドは過去ログ倉庫に格納されています
0001C萌え〜
NGNG簡単なのからお願いしまーす
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004C萌え〜
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007C萌え〜
NGNGint main(){
printf("Hello World!\n");
return 0;
}
こんな感じでしょうか?
0008デフォルトの名無しさん
NGNG0009C萌え〜
NGNG簡単にできます??ムズカシイ(;;)
0010デフォルトの名無しさん
NGNGとかになんでこだわるの?
0011C萌え〜
NGNGえ?どこですか?
0012デフォルトの名無しさん
NGNG0013C萌え〜
NGNG猫でもわかるで現在勉強中でござい〜
0014C萌え〜
NGNGみたことありますです。
Win32のプログラムかなんか。
まだそこのレベルまで達しておりませぬぅ。スミマセン
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG指令:「"Hello World!"」と出力せよ。
0017C萌え〜
NGNG#include <stdio.h>
int main()
{
int tate;
int yoko;
int seki;
char tab;
tab=0;
for (int i=1;i<=9;i++){
for (int cnt=1;cnt<=9;cnt++){
seki=i*cnt;
printf("%d",seki);
printf("%c",tab);
}
printf("\n");
}
return 0;
}
0018C萌え〜
NGNGtateとyokoはいらんかった。(;;)
0019C萌え〜
NGNG0020名無しさん
NGNG0021C萌え〜
NGNGint main(){
char chonchon;
chonchon=34;
printf("%cHello World!%c\n",chonchon,chonchon);
return 0;
}
0022C萌え〜
NGNGコマンドライン引数の意味がまだわかりませんので
今しばらく。。。
0023C萌え〜
NGNGvoid main()
{
printf("%cHello World!%c\n",'"','"');
}
0024C萌え〜
NGNGScreenSaver.scr /sみたいなやつですか?ヤバイ
0025C萌え〜
NGNGおおぅ!なるほど。そのまま代入すればよかったのですねぇ。
ソロソロゲンカイチカイカモ
0026デフォルトの名無しさん
NGNG0027C萌え〜
NGNG0028C萌え〜
NGNGvoid main()
{
int i,j;
for (i=1;i<=9;i++){
for (j=1;j<=9;j++){
printf("%d*%d=%d\t",j,i,j*i);
}
putchar('\n');
}
}
0029デフォルトの名無しさん
NGNGなんだよそれ。気持ち悪い
printf("\"Hello World!\"\n");
0030デフォルトの名無しさん
NGNGそのとおり、
>>12 がヒントだよ
それからお願いだからインデントしてくれ、
tabを&nbsp;(&は半角)に変換してから貼り付ければ反映されるから。
0031C萌え〜
NGNGコンパクトなソースかつ実行結果見ました。
感動しました。なんだか、、、C萌え〜〜
0032C萌え〜
NGNG了解しました。
0033デフォルトの名無しさん
NGNG1〜45:さくさくいく。
46〜?:ポインタが出てくると、スレは廃れ深く潜る。
0034C萌え〜
NGNGつくれ。
0035デフォルトの名無しさん
NGNG0036C萌え〜
NGNGvoidでも困らんもん。
C++ではOKじゃなかったけ。
0037デフォルトの名無しさん
NGNGこれが
>voidで良い。
理由?
積極的にvoidにする理由は?
0038C萌え〜
NGNG0039デフォルトの名無しさん
NGNG0040C萌え〜
NGNGでなければならない理由を説明してみろ。
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGint main(int argc, char *argv[])
{
&nbsp;int i;
&nbsp;for(i = 1; i < argc; i++){
&nbsp;&nbsp;printf("%s\n", argv[i]);
&nbsp;}
&nbsp;return 0;
}
0043デフォルトの名無しさん
NGNG規格にそう書いてあるから。
もちろん規格を破っても良いけど、そのときの動作は一般
には保証されない。環境によっては main から返った瞬間
に stack underflow したり、鼻から悪魔が出てくるかも
しれません。
もちろん処理系によっては void main() でも動作を保
証してる場合もありえるし、スタートアップルーチンか
ら自分で書く場合には戻り値の型は何でも良い。っつー
か、その場合には関数名が main() である必要さえない
ね。
0044デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG0048C萌え〜
NGNG0049T88H-34D
NGNGint main()
だとか。
void main()
にするの?
void main(void)
でいいのに。。。。 ん?
0050デフォルトの名無しさん
NGNG{
return 0;
}
とはじめに書いてからプログラミングすれば
とりあえず問題はないんじゃないんですか?
0051デフォルトの名無しさん
NGNG”などの”ってところが曖昧かも。
「整数の加減乗除+括弧による演算順位の変更」だけでいいんだよね?
また、当然エラーリカバリは勘弁してあげようよ。
それでも独力での回答は無理か?。いきなりその問題はキツイと思う。
(このスレが終わる予感が・・・)
てめえらぁ、そんなに初心者いじめて楽しいのかぁ!!!(オレは楽しいぞぉ〜)
0052デフォルトの名無しさん
NGNGで宣言してもコンパイル時に自動的に
int main()
に変換されていると聞いた事がある
0053デフォルトの名無しさん
NGNGそれはないない。絶対にない。
0054ワシもマターリと
NGNGここに書かれている人は、main関数として
int main(int argc, char **argv)
int main(int argc, char *argv[])
この2つを書かれてますが、なぞが2つあります。
argcとargvとは一体どういう意味で名前が付いてるのですか?
もうひとつは、**argv。
*argv[]の方は、「2つ目のコマンドライン引数は文字列で、
ポインタが渡されているため、ポインタ*argv[]でその値を
受け取る(可変長のため、[]になっている)」ということだと
思うのですが、
**argvと、書かれていることもあるのは、なぜでしょうか。
と、すると、またしても疑問が。
2つめの文字列は、ポインタが渡されるのに、1つめの
int型のコマンドライン引数は、なぜポインタじゃないのでしょうか。
0055デフォルトの名無しさん
NGNG(このままだと 1 が戻ってこない気がする・・・)
コマンドラインから "11001" などの2進数を入力して10進数に
変換して表示するプログラムをつくれ。
なんてのはいかが?
0056C萌え〜
NGNG頑張ってみたけど、まだ無理みたい。。。
できそうで、デキナカッタ
>>55
#include&nbsp;<stdio.h>
int&nbsp;main(){
&nbsp;&nbsp; char&nbsp;c[100];
&nbsp;&nbsp; int&nbsp;su[100];
&nbsp; &nbsp;int&nbsp;tmp=0;
&nbsp;&nbsp; int&nbsp;kazu=0;
&nbsp;&nbsp;printf("2進数を書いてチョ\n");
&nbsp;&nbsp;scanf("%s",&c);
&nbsp;&nbsp;for&nbsp;(int&nbsp;i=0;i<=100;i++){
&nbsp;&nbsp;&nbsp;if&nbsp;(c[i]>=48){
&nbsp;&nbsp;&nbsp;su[i]=c[i]-48;
&nbsp;&nbsp;&nbsp;printf("%d\n",su[i]);
&nbsp;&nbsp;&nbsp;kazu++;
&nbsp;&nbsp;&nbsp;printf("kazu=%d\n",kazu);
&nbsp;}
&nbsp;}
&nbsp;&nbsp;for&nbsp;(int&nbsp;k=0;k<=kazu-1;k++){
&nbsp;&nbsp;tmp=tmp*2+su[k];
&nbsp;}
&nbsp;printf("tmp=%d\n",tmp);
&nbsp;return&nbsp;0;
}
0057C萌え〜
NGNG0058デフォルトの名無しさん
NGNGargv:argument vector
0059デフォルトの名無しさん
NGNG"argument vector"?
"argument value" じゃなかったっけ?
0060デフォルトの名無しさん
NGNG(とりあえず)要チェックの所!
1.scanf() は使わないように
C言語についてある程度以上のスキルを持っている人のうち
99.999%は scanf() は使わないと思う。
この場合せめて gets() で読み出しては?
2.char c[100] のアドレスは c
つまり c と &c[0] はおなじだよ
3.c[100] の要素数は 100 個
for(i=0;i<=100;i++) は101個調べてることになるよん。
0番目から100番目まで指を折って数えればわかる
4."11001" を後も c[i] を調べてる
この場合5番目以降の c[i] には何が入っているかは誰もわかりません。
結果、訳の分からない数(ゴミ)が su[i] にはいるよ
(なんか下手に添削すると達人から突っ込みが
入りそうな気がするけど・・・(^^;))
0061デフォルトの名無しさん
NGNGすいません、何で scanf 使っちゃだめなんですか?
0062ワシ
NGNGvoid main()
{
char c[100];
int su[100];
int tmp=0;
int kazu=0;
printf("2進数を書いてチョ\n");
gets(c);
/* while(c[kazu] != NULL) */
while(c[kazu] != '\0')
{
su[kazu] = c[kazu] - 48;
printf("%d\n",su[kazu]);
kazu++;
printf("kazu=%d\n",kazu);
}
for (int k=0;k<=kazu-1;k++)
{
tmp=tmp*2+su[k];
}
printf("tmp=%d\n",tmp);
getchar();
}
C萌え〜さんのソースを見て、こんな風にしてみました。
0063デフォルトの名無しさん
NGNG正しい入力に対して動けばいいプログラムを作るときとか
動きがわかって使う分には全然オッケーです。
006460
NGNGとりあえず、”使わない”と覚えててほぼ間違いないです!
(私の意見に文句を言ってくる人がいても
その人も実際(業務など)には使っていないはずです)
0065デフォルトの名無しさん
NGNG初期設定とかの固定フォーマットのファイル読み出しには
使うよ。楽だし。
Cで開発はもういやだなあ。JavaのResouceBundleは賢いぜ。
006660
NGNGでは大ウィザード様、今回の場合に scanf() を使った
びゅーちふぉーなコードを御開陳して下さいませ。
ぼくちんは厨房なのでわかりません。
>>65ほんとに!?
ある意味で尊敬するよ
0067デフォルトの名無しさん
NGNG63ではないが、scanfによるword countの例。
#include <stdio.h>
int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;int nw = 0;
&nbsp;&nbsp;&nbsp;&nbsp;while (scanf("%*s") != EOF)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++nw;
&nbsp;&nbsp;&nbsp;&nbsp;printf("%d words\n", nw);
&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}
0069C萌え〜
NGNGscanfを使うなってどこかで聞いたことありますです。(リユウハマダシリマセン)
コマンドライン引数がいまいちワカラナイ
0071デフォルトの名無しさん
NGNGコマンドライン引数は >>42 を参考にして >>20 のをまずやってみろ
007363大ウィザード
NGNGだからよ、ここは初心者の勉強スレなんだから、
実務のための絶対に落ちないコードを
書くためのスレじゃないんだよ。そこのとこをわかって
レスしてくださいや。
0074デフォルトの名無しさん
NGNGscanfについて。困ったときのC FAQ。
0075C萌え〜
NGNGhttp://homepage1.nifty.com/toshio-k/prog/c/cmdline.html
今ここらへんを見て勉強中・・・。ちょっとワカッテキタカモ
007661
NGNGふむふむ。
scanf 使ってると色々問題が起こる可能性があるので初心者には
すすめられないって事かな?
何となくですが分かりました。ありがとう。
0077ワシ
NGNG#include <stdio.h>
#include <string.h>
void main(int argc, char *argv[])
{
char c[100];
int su[100];
int tmp=0;
int kazu=0;
if(argc == 1)
{
/*引数が1つしかなかったので、この場合はコマンドライン引数が無かった*/
printf("2進数を書いてチョ\n");
gets(c);
}
else
{
/*コマンドライン引数の値をc[100]へコピー*/
/*strcpy(&c[0],argv[1]);*/
strcpy(c,argv[1]);
}
while(c[kazu] != '\0')
{
su[kazu] = c[kazu] - 48;
printf("%d\n",su[kazu]);
以下は、>>62と同じ
こんな感じではないでしょうか。
コマンドライン引数が2つだったら、argcは3、argvは[0]〜[2]で、引数として入力された値は[1]と[2]。
コマンドライン引数が3つだったら、argcは4、argvは[0]〜[3]で、引数として入力された値は[1]〜[3]。
AAA.exe 1001 1010 1110とした場合、argv[1]は'1001'のポインタ、
argv[2]は'1010'のポインタ、argv[3]は'1110'のポインタが入る。
と、思います。
0078この板にプログラマはいないのか?
NGNGmainの返信はどちらかというとvoidでなくintで書くのが正しい。
本なんかの一般論から言うと
「C言語はUNIXのために作られた言語であり、UNIXでは返した値を使って...」
って事。(ちなみにgccなんかでvoid mainって書くと警告かなんかでなかったっけ?)
じゃあDOSならvoidでいいじゃんと思うかもしれないが。
んなこたぁない。
command.comとかのshellがちゃんとmain返信を取得しているし、
バッチファイルなんかで簡単にその値を取り出すことも可能。
素直にint mainで書いときなさい。
正常終了は0異常終了は1以上の値を返してね。
0079デフォルトの名無しさん
NGNG一般論もなにも、今までに何度も何度も何度も何度も書かれてるが
ANSI Cの規格上戻り値の型はintに決まってるからint、でええやん。
ま、他はその通り。
0080C萌え〜
NGNGchar型からint型にするのはドウスレバ?
その必要もないのかなぁ?う〜む。シコウチュウ
0081デフォルトの名無しさん
NGNGatoi
0082C萌え〜
NGNG008360
NGNGこんな議論しても埒があかないから’C萌え〜さん’や
’ワシ’さんが学習を終えて、1年なり2年なりたった後、
その時に「どちらが正しかったか」判断してもらえばよい
のでは?(ちなみに勝つ自信あり)
下らない意地の張り合いで他人の学習意欲を削ぐような真似
はよそうよ。
0084ワシ
NGNGわかりました。ルールとして受け止め、以後はint main()を使います。
voidにしてたのは、今後、その時々でゼロなり1なりを返すのを忘れて
mainを抜ける事があると怖いので、voidでも動作するなら、voidでいいかな。
と、割り切ってました。
0085デフォルトの名無しさん
NGNGint main()
{
&nbsp;char str[100],*p;
&nbsp;int ans=0;
&nbsp;puts("2進数を入力せよ");
&nbsp;gets(str);
&nbsp;for(p = str ;*p != '\0';p++){
&nbsp;&nbsp;ans <<= 1;
&nbsp;&nbsp;ans += *p - '0';
&nbsp;}
&nbsp;printf("%d\n",ans);
&nbsp;return 0;
}
0086C萌え〜
NGNG#include <stdlib.h>
int main(int argc, char *argv[])
{
&nbsp;&nbsp;&nbsp;int i;
&nbsp;&nbsp;&nbsp;int tmp=0;
&nbsp;&nbsp;&nbsp;for(i = 1; i < argc; i++){
&nbsp;&nbsp;&nbsp;printf("%s\n", argv[i]);
&nbsp;&nbsp;&nbsp;tmp=tmp+atoi(argv[i]);
&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;printf("コマンドライン引数の和は%d",tmp);
&nbsp;&nbsp;&nbsp;return 0;
}
0087C萌え〜
NGNGデキテル?
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG満点取れた人いる?
0090デフォルトの名無しさん
NGNG多分そのうちprintfもどきが作れるぞ
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG次の文章の[1]〜[4]に適切な数値をあてはめなさい.
char型の変数が表現できる値は,少なくとも[1]以上[2]以下である.
int型の表現できる値は少なくとも[3]以上[4]以下である.(各1点×4)
0093デフォルトの名無しさん
NGNG[2]127
[3]-3万くらい
[4]3万くらい
0094デフォルトの名無しさん
NGNGネタが無いのはわかるけどさあ・・・
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGmain関数が正常終了したことを実行環境に知らせたい場合,
次の�@〜�Cのうち適切でないものはどれか.
�@return 0; �Areturn (0); �Breturn EXIT_SUCCESS;
�Cexit (1); (2点)
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG去年の 12月号の「インターネットプログラムの基礎知識」なんかは
役に立ったけど、ドキュソなの? 定期購読止めようかな・・・
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG#include <string.h>
int main(int argc, char *argv[])
{
nbsp;&nbsp;int nTmp, nBit, iDec;
&nbsp;&nbsp;char *pWork;
&nbsp;&nbsp;if(argc != 2) return 1;
&nbsp;&nbsp;if((nBit = strlen(argv[1])) == 0) return 1;
&nbsp;&nbsp;if(nBit == 1) return *argv[1] - '0';
&nbsp;&nbsp;nTmp = 1;
&nbsp;&nbsp;nBit--;
&nbsp;&nbsp;while(nBit--){
&nbsp;&nbsp;&nbsp;&nbsp;nTmp *= 2;
&nbsp;&nbsp;}
&nbsp;&nbsp;iDec = 0;
&nbsp;&nbsp;pWork = argv[1];
&nbsp;&nbsp;while(*pWork){
&nbsp;&nbsp;&nbsp;&nbsp;if((*pWork - '0') == 1){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iDec += nTmp;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;nTmp /= 2;
&nbsp;&nbsp;&nbsp;&nbsp;pWork++;
&nbsp;&nbsp;}
&nbsp;&nbsp;printf("DEC = %d", iDec);
}
ちょっと遅いですが
2進数を10進数で表示。
これじゃまちがい?
無駄おおい?
0103デフォルトの名無しさん
NGNG[問1]
[1] -127 [2] 127 [3] -32767 [4] 32767
8ビットあれば,2^8=256通りの状態を値として表現できます.
charの表現できる値が-128〜127の範囲である処理系も
ありますが,C言語の規格では-127〜127の範囲が表現できれば
いいことになっています.同様に,intの表現できる値は
少なくとも-32767〜32767の範囲をカバーしなければならないことが
定められています.
0104102
NGNGif(nBit == 1) return *argv[1] - '0';
これひとけた用の表示にしようと思ってたんだけど。
returnさしてまふ。
じっさいは表示している事にしてください。
0105デフォルトの名無しさん
NGNG[1]SCHAR_MAX
[2]SCHAR_MIN
[3]INT_MAX
[4]INT_MIN
(limits.h参照)
ふぁあ・・
0106デフォルトの名無しさん
NGNGそれは反則
0107デフォルトの名無しさん
NGNGなんかわかりにくいね。
0109デフォルトの名無しさん
NGNGmain関数の書き方として,次の�@〜�Cのうち正しいものはどれか.
�@int main(void) {...}
�Avoid main() {...}
�Bvoid main(void) {...}
�Cvoid main(int argc, char *argv[]) {...} (2点)
0110デフォルトの名無しさん
NGNG答え�@
0111105
NGNGだとしたら、かなりいただけない解答の様な・・。
0112デフォルトの名無しさん
NGNG問題は,標準的なC言語(いわゆるANSI C,JIS C)を想定しています.
特別な処理系では,必ずしもこのとおりにならないことがあるかもしれません.
疲れた,もうヤメ
0113デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGP.J.プラウガーの翻訳記事さえどっかにあれば。
011663大ウィザード
NGNGぉぃぉぃ、、俺は別にscanfやgets使用禁止に反対してるわけじゃないぞ…。
勝つとか負けるとかいわれてもねぇ…(藁
ただ、動くプログラムに対してそういうことをつっこむ
誰かの方がよっぽど他人の学習意欲を削ぐような真似を
してるとは思いますけどねヽ(´ー`)ノ
0117デフォルトの名無しさん
NGNGなんかグチャグチャしてるね。入力が正しい二進数文字列と仮定できて、
オーバーフローも無視して良いのら、こんなもんじゃない?
int
atoi_2(const char *s)
{
int val = 0;
do {
val <<= 1;
val += *s - '0';
} while (*++s != '\0');
return (val);
}
nTmp とか nBit とか捨て捨て。
0118デフォルトの名無しさん
NGNGそれをいちいちつっこむやつは変だよ。
0119デフォルトの名無しさん
NGNGこれ以降を知りたい方は,立ち読みでもしてください.
[問2]
�C
解説
main関数からのreturnに指定した値は,同じ値を引数としてexit関数を
呼び出したのと同じ意味になります.main関数が正常に終了したことを
意味する値はEXIT_SUCCSESSまたは0なので,特別な意味を持たせる
場合を除いて,正常終了時に1を与えるのは一般的には不適切です.
なお,exit関数やEXIT_SUCCESSを使う場合は,stdlib.hをインクルード
する必要があります.
return 0;とreturn (0);は同じ意味で,後者は単に定数0をカッコで囲んだ
だけです.カッコで囲む意味はないのですが,なんとなく付けている
プログラムもよく見かけます.
[問3]
�@
解説
標準規格では,main関数の型はintであることになっています.
仮引数がある場合には,
int main(int argc, char *argv[]) {...}
のような定義になります.ふだんはvoid main()と書いている方も,
このような試験問題のときはintと答えるようにしましょう.
0120デフォルトの名無しさん
NGNG学習ならfgets & sscanfで決まりだと思うが。
(sscanfではなく、)scanf使って妙な挙動で混乱するのは学習の妨げになるだけ。
自分でトークン切り出す方法でも可。
まあどうでもいいけど・・
0121C萌え〜
NGNG#include <stdio.h>
#include <stdlib.h>
int main(){
&nbsp;&nbsp;int tmp=0;
&nbsp;&nbsp;char deci[100];
&nbsp;&nbsp;int amari=0;
&nbsp;&nbsp;int cnt=0;
&nbsp;&nbsp;char receive[100];
&nbsp;&nbsp;printf("10進数を入力してチョ\n");
&nbsp;&nbsp;gets (deci);
&nbsp;&nbsp;tmp=atoi(deci);
&nbsp;&nbsp;printf("tmp=%d\n",tmp);
&nbsp;&nbsp;while (tmp!=0){
&nbsp;&nbsp;&nbsp;&nbsp; amari=(tmp % 2);
&nbsp;&nbsp;&nbsp;&nbsp; printf("amari=%d\n",amari);
&nbsp;&nbsp;&nbsp;&nbsp; tmp =tmp / 2;
&nbsp;&nbsp;&nbsp;&nbsp; receive[cnt]=amari;
&nbsp;&nbsp;&nbsp;&nbsp; cnt++;
&nbsp;&nbsp;}
&nbsp;&nbsp;for (int i=1;i<=cnt;i++){
&nbsp;&nbsp;&nbsp;&nbsp; printf("%d",receive[cnt-i]);
&nbsp;&nbsp;}
&nbsp;&nbsp;puts("\n");
&nbsp;&nbsp;return 0;
}
0122デフォルトの名無しさん
NGNGインタフェース
void file_n_to_radix(FILE *fp, int number, int radix);
テストソース
int main() {
file_n_to_radix(stdout, 123, 2); fputc('\n', stdout);
file_n_to_radix(stdout, 123, 8); fputc('\n', stdout);
file_n_to_radix(stdout, 123, 10); fputc('\n', stdout);
file_n_to_radix(stdout, 123, 16); fputc('\n', stdout);
}
テストソースの出力結果
1111011
173
123
7b
0123デフォルトの名無しさん
NGNG0124C萌え〜
NGNG#include <stdio.h>
int main(){
int baito=8;
int dekasa=0;
int tmp=1;
dekasa=baito*sizeof(char);
printf("intのサイズは%d\n",dekasa);
for (int i=1;i<=dekasa-1;i++){
tmp=tmp*2;
}
printf("マイナス%dから",tmp);
tmp=1;
for (int k=1;k<=dekasa-1;k++){
tmp=tmp*2;
}
tmp--;
printf("プラス%dまで\n",tmp);
return 0;
}
0125デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
&nbsp;int dec;
&nbsp;unsigned long int mask = 0x80000000;
&nbsp;puts("10進数を入力せよ");
&nbsp;scanf("%d",&dec);
&nbsp;while(mask){
&nbsp;&nbsp;putchar( dec & mask? '1' : '0');
&nbsp;&nbsp;mask >>= 1;
&nbsp;}
&nbsp;putchar('\n');
&nbsp;return 0;
}
0127デフォルトの名無しさん
NGNG(1)作った後は、(1)を使って fprintf と上位互換の関数作れ。>127
それ作った後は、vsprintf, sprintf と上位互換の関数を同様に作れ。>127
より安全な、vsnprintf, snprintfも作れ。>127
0128デフォルトの名無しさん
NGNG自分に課題を出す奴。
0129デフォルトの名無しさん
NGNGネタか?
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNGではこれからはパートナーと色々相談して、色々な体位で
プレイしてみましょう。
って、こんなんじゃダメ?
0132C萌え〜
NGNGすごい。なんとなくやってることがワカリマシタ。
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNG出力するプログラムをつくれ。
日本語が絡むと面倒なので、半角英数だけでいいよ。
入力
windows
出力
w
0135デフォルトの名無しさん
NGNG数値を出力するプログラムをつくれ。
数値でない場合、標準出力にエラーを出力し、
数値が入力されるまで繰り返せ
出力例)
数値を入力して下さい> aaa
エラー:入力された文字は数値ではありません。
数値を入力して下さい> bbb
エラー:入力された文字は数値ではありません。
数値を入力して下さい> 0
入力された数値は0です。
0136デフォルトの名無しさん
NGNG指定した文字列ですべて置き換える処理をせよ。
(エディタとかの置換だね。)
0137初期不良
NGNGWin98 で問題なく動いてた自作ゲームが、
Win2000 でファイル書き込み時にハングアップするようになった原因。
もしかしたらそれかも。とてもチュヴォウだったので
write とか知らなくて、全部テキストにして保存しようとして
fprintf とか fscanf とか使いまくってます。
やる気が出たら直してみよう。
ていうか write って C++ か?
0138デフォルトの名無しさん
NGNG0139C萌え〜
NGNG//文字は嫌よ♪
#include <stdio.h>
#include <stdlib.h>
int main(){
&nbsp;&nbsp; int tmp;
&nbsp;&nbsp; int asc0=48;
&nbsp;&nbsp; int asc9=57;
&nbsp;&nbsp; int hantei=1;
&nbsp;&nbsp; char userin[100];
&nbsp;&nbsp; int i=0;
&nbsp;&nbsp; while(hantei==1){
&nbsp;&nbsp;&nbsp;&nbsp; puts("数値を入力して下さい\n");
&nbsp;&nbsp;&nbsp;&nbsp; gets(userin);
&nbsp;&nbsp;&nbsp;&nbsp; puts(userin);
&nbsp;&nbsp;&nbsp;&nbsp; hantei=0;
&nbsp;&nbsp;&nbsp;&nbsp; while (userin[i]!='\0'){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%d\n",userin[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (asc9<userin[i]){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hantei=1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(&userin[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (userin[i]<asc0){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hantei=1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(&userin[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; printf("%d\n",hantei);
&nbsp;&nbsp;&nbsp;&nbsp; if (hantei==1){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("エラー:入力された文字は数値ではアリマセン\n");
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; printf("i=%d",i);
&nbsp;&nbsp;&nbsp;&nbsp; i=0;
&nbsp;&nbsp; }
0140C萌え〜
NGNG&nbsp;&nbsp; tmp=atoi(userin);
&nbsp;&nbsp; printf("入力された数値は%dデス\n",tmp);
&nbsp;&nbsp; return 0;
}
0141C萌え〜
NGNG0142C萌え〜
NGNG0143C萌え〜
NGNG0144デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int i;
printf("数値を入力して下さい>");
while(scanf("%d", &i) != 1) {
printf("エラー:入力された文字は数値ではありません\n");
printf("数値を入力して下さい>");
fflush(stdin);
}
printf("入力された数値は%dです\n", i);
return 0;
}
scanfでも暴走しないプログラムを書く事は可能
ちなみにfflush()をコメントにし、数値でない値を入力すると暴走する。
なぜfflush()を入れると暴走しないのか理解できん奴には
scanf()は禁止しといた方が安全
0145デフォルトの名無しさん
NGNGダメな環境もある。
規格でもうまくいくことは保証されてない。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGfor(;i<i;)printf("終了");
0149144
NGNG> 規格でもうまくいくことは保証されてない。
しらなかった...
> fflush(stdin);
のかわりに scanf("%*s"); でトークン読み飛ばしは?
一応、fjに載ってたやり方だけど...
0150ワシ
NGNG勉強させてもらいます。
0151デフォルトの名無しさん
NGNG方に適合しなかった場合は読み込まれずにバッファに残ってるから?
0152デフォルトの名無しさん
NGNG以下から引用
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3C8j0rso%24fm3%241%40news%2Etut%2Eac%2Ejp%3E
> scanfは仕様上、
> ・変換が行なわれなかった時は、入力が消費されない。
> ・書式"%s"で変換を行なう場合、バッファオーバーランを
> 引き起こす可能性がある。
> (中略)
> 下手な使い方でscanfを使用したプログラムは、簡単に暴走・無
> 限ループに陥る可能性があります。
> # だから、下手な使い方しか出来ない人(=初心者)が、
> # 「scanfは使わない方が良い」と主張する場合はあります。
0153デフォルトの名無しさん
NGNGおいこら。fflushはstdinに対しては本来は効果が無いぞ。
fflushはバッファにたまってる出力を吐き出すもんだから、
入力に関しては規格上効果はないぞ。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156C萌え〜
NGNGありがとデス。
まだまだまだまだC言語に慣れてないので、
なかなかうまくプログラムできないでイマス。
もっといろいろ関数を知っていれば。。。
すぐにできるのかも・・・(デキナイカモ)
アルゴリズム自体はすぐに思い浮かぶのですが。
あぅ(;;)
0157デフォルトの名無しさん
NGNG> もっといろいろ関数を知っていれば。。。
一通り目を通しとけ
ANSI 規格 標準関数一覧
http://tyrant.chem-eng.kyushu-u.ac.jp/2nd/Programming/Library/Main.asp
0158デフォルトの名無しさん
NGNG↑にある問題です。メインの処理部分のみ書きます。
//count出力した件数 x,yは座標 direction方向 +で(-1,1)、-で(1,-1)
//ONum出力する件数
for (count = 1, x = 0, y = 0 ,direction = 1; count <= ONum; count++) {
printf("%d (%d, %d)\n", count, x, y);
if (direction > 0) {
x++;
y--;
if (y < 0) {
y = 0;
direction *= -1;
}
}
else {
x--;
y++;
if (x < 0) {
x = 0;
direction *= -1;
}
}
}
これじゃマズイんですか?
0159デフォルトの名無しさん
NGNG> for (count = 1, x = 0, y = 0 ,direction = 1; count <= ONum; count++) {
> printf("%d (%d, %d)\n", count, x, y);
間違いではないが...
Cでは慣用句としてN回の繰り返しは
for(i = 0; i < N; i++)
と表記する事が多い
上記の引用は
for (count = 0, x = 0, y = 0 ,direction = 1; count < ONum; count++) {
printf("%d (%d, %d)\n", count + 1, x, y);
とした方が他人の誤解や混乱を招く確率は減る。
0160C萌え〜
NGNG0161sage
NGNG// コメントは古いコンパイラでつかえないことあるから
/* */ 使う癖をつけとくといいよ
0162158
NGNG癖がついちゃってるね。
printf("%d (%d, %d)\n", count + 1, x, y);
ってのが気持ち悪く感じちゃう。気をつけます。
>>161
俺もそーなってるね。。/*は両方とも右小指で打つから打ちにくいから
ついつい//使っちゃう。でも//だと閉じなくても良いしネストも出来るし。。
なんか>>158のページ見ると初心者が陥りやすいアルゴリズムの欠陥が
あるっぽいけど、何も思い浮かばないんだよね。分かる人いませんか?
0163デフォルトの名無しさん
NGNG1はぜんぜんかわいくないです。
1はとてつもないデブで漫画キャラのような渦巻きメガネを
かけています。さらに1年間以上風呂にはいったことがなく、
腐臭を漂わせているばかりか、ふだんからそのぬめっとした
言動で、周りから煙たがられています。
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGvoid main()
{
int a;
int b;
b=10;
for (a=0;a<=b;a++){
printf("aは%dです\n",a);
}
}
int型とforの使い方がわかった〜!
えーっと、voidってのはなんですかね。
あと、whileの使い方がよくわかりませぬ。
0168デフォルトの名無しさん
NGNG同じ内容をwhileを使って書いてみれ。
0169デフォルトの名無しさん
NGNGvoid main()
{
int a;
int b;
b=10;
while(a++ <= b);
printf("aは%dです\n",a);
}
0170デフォルトの名無しさん
NGNGバグメーカ君。
0171デフォルトの名無しさん
NGNGふぉっふぉっふぉ。それしきのこと、コンパイラが
見逃すはずがないであろー。ふぉっふぉっふぉ。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG0174名無しさん@電話にはでんわ
NGNGintだろ
0175デフォルトの名無しさん
NGNGうざったいぞー。
0176デフォルトの名無しさん
NGNG自分が作った関数は未来永劫エラーを出さないと信じている
思い上がりではないのか?
そんな思い上がりを、神は決して許さない。
値を返さない関数も、ステータスのためにリターンバリューは
取っておくべきだ。
暫定的に #define NORMAL 0
でも返しとけばぁ?
0177デフォルトの名無しさん
NGNG聞き飽きた。
0178君に贈るプログラム
NGNG#include <stdlib.h>
#include <memory.h>
int main(void)
{
while(1) {
malloc(1024);
}
}
0179デフォルトの名無しさん
NGNGたまに警告さえ出なければいいと思ってるやつもいる。
0181デフォルトの名無しさん
NGNG見たけど、おかしい所は見受けられませんでした。
実際に動かしてみて100ばかりうまく行ってるようならいいんじゃない?
0182名無しさん@LV2001
NGNGアルゴリズムワケワカメ
0183デフォルトの名無しさん
NGNGCマガ逝ってよし。
105、108、111〜115の少なくともまともな神経を持った人たちが
逝ってしまった。
鬱だ。
0184デフォルトの名無しさん
NGNG引用こっから。
#include <stdio.h>
void main()
{
int a;
int b;
b=10;
for (a=0;a<=b;a++){
printf("aは%dです\n",a);
}
}
int型とforの使い方がわかった〜!
えーっと、voidってのはなんですかね。
あと、whileの使い方がよくわかりませぬ。
ここまで
main()の前のvoid はmain()終了時になにも値を返さないということです。
main(void) と記述されている時はmain()は何も引数を持たないということです。
混同しないように気をつけて。
それからwhile 文は条件判定式が真(0ではない)の間中実行され、
条件判定式が偽(0)になるとループを終えます。
■ このスレッドは過去ログ倉庫に格納されています