- 1 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 03:01:54 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう. ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):() [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 【前スレ】 C/C++の宿題を片付けます 99代目 pc11.2ch.net/test/read.cgi/tech/1194262698/
- 315 名前:デフォルトの名無し [2007/11/27(火) 18:04:22 ]
- [1] 授業単元: プログラム演習
[2] 問題文:入力された正の2整数の最大公約数と最小公倍数を算出する。 ・キーボードからの入力が空の場合は処理を終了する。 ・キーボードからの最大入力桁数は4バイトとする。 ・キーボードからの入力が4バイトを超える場合は処理を終了する。 ・キーボードからの入力が正の整数に変換できない場合は処理を終了する エラーメッセージ 未入力 :入力されていません、桁あふれ:4文字以下で入力してください、数値以外:半角数字以外入力できません、ゼロ入力:0は入力できません 文字列を正数に変換する関数はatoiを使用。 引数 char data[] 文字列 戻り値 : 正数 エラー値 -1 未入力 -2 桁あふれ -3 数値以外-4 ゼロ入力 最大公約数を算出の関数名はgcdでユークリッドの互除法を使用。 引数 int data1 データ1 int data2 データ2 戻り値 : 最大公約数 最小公倍数を算出する関数名はlcm。最小公倍数を算出する際、最大公約数の関数を使用する。 引数 int data1 データ1 int data2 データ2 戻り値 : 最小公倍数 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 11・28まで [5] その他の制限: なし
- 316 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 18:06:06 ]
- >>310
#include <stdio.h> #include <string.h> #include <math.h> int main() { int i=0,l,c[256]={0}; char buf[256]; double h=0,p; scanf("%s",buf); l=strlen(buf); for(i=0;i<l;i++) c[buf[i]]++; for(i=0;i<256;i++) if(c[i]>0) { p=(double)c[i]/l; printf("\"%c\" %lf\n",i,p); h-=p*log(p); } printf("H = %lf\n",h); return 0; }
- 317 名前:デフォルトの名無し [2007/11/27(火) 18:14:32 ]
- [1] 授業単元: プログラミング
[2] 問題文: 入力された整数0〜9のn個の文字列に対応したヒストグラムを出力するプログラムを作成せよ。 例:(n個の整数文字列=0050011050) 数値0が6個、1が2個、5が2個の場合、以下のように出力する。 <出力例> a[0] = 6 ****** a[1] = 2 ** a[2] = 0 a[3] = 0 a[4] = 0 a[5] = 5 ** a[6] = 0 a[7] = 0 a[8] = 0 a[9] = 0 ただしキーボードからの入力は最大128バイトとし、それを超える場合129バイト以降のデータはカウントしない。 入力データは半角数字のみとし、全角数字の入力は考えない。 文字列カウント関数 count 引数 char inputdata[] 入力データ int outputdata[] 出力データ 算出結果をヒストグラムで描写する関数名 hist 引数 int outputdata[] [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C言語 [4] 期限: 11月28日まで [5] その他の制限: なし
|

|