C/C++の宿題を片付けます 99代目
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
550:デフォルトの名無し 07/11/15 17:27:31 1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 文字列を正数に変換せよ。 入力が空の場合は処理を終了。「入力されていません」と表示。 入力の最大入力桁数は4バイトとし、桁あふれに対して「4文字で入力してください」と表示。 入力が半角数字以外に対しては「半角数字以外入力できません」と表示。 入力がゼロの場合は「0は入力できません」と表示。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 4.0 [3.3] 言語: C言語 [4] 期限: 今週中にお願いします。 [5] その他の制限: 特にありません 551:デフォルトの名無しさん 07/11/15 17:37:23 >>550 突っ込むべき部分があるな 入力の最大入力桁数は四バイト? それとも四文字? -129のような文字列は129に変換? 129を変換したあとの数字は、1290? それとも0129? 552:デフォルトの名無しさん 07/11/15 18:56:30 >>550 #include<stdio.h> #include<string.h> #include<ctype.h> int get_value(void){ char buf[4+1+1]; // 4文字オーバーチェック + 終端 \0 int i, value=0, buflen; fgets(buf, sizeof(buf), stdin); buflen=strlen(buf); if(buf[buflen-1]=='\n') buf[--buflen]='\0'; if(buflen<=0){ puts("入力されていません"); return -1; } if(buflen>4){ puts("4文字以内で入力してください"); return -1; } for(i=0;buf[i];i++){ if(!isdigit(buf[i])){ puts("半角数字以外入力できません"); return -1; } value=value*10+buf[i]-'0'; } if(value==0) puts("0は入力できません"); return value; } int main(void){ int value; value=get_value(); if(value>0) printf("\n%d\n", value); return 0; }
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4713日前に更新/222 KB
担当:undef