トップページ⇒tech
1001コメント395KB

ぼるじょあがC/C++の宿題を片づけますYO! 67代目

■ このスレッドは過去ログ倉庫に格納されています
0001ぼるじょあ ◆yBEncckFOU 2006/12/10(日) 11:33:41
(・3・)エェー ぼるじょあですYO!
         わからない宿題を片づけますYO!

あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】
http://www.linux.or.jp/JM/index.html

【前スレ】
ぼるじょあがC/C++の宿題を片づけますYO! 66代目
http://pc8.2ch.net/test/read.cgi/tech/1149349035/
0011デフォルトの名無しさん2006/12/10(日) 15:15:15
まともな話がしたい人はまともなスレへ移動して下さい
ここを荒らすのは勝手だがまともな話は場違いです
0012ぼるじょあ ◆yBEncckFOU 2006/12/10(日) 15:19:54
(・3・) エェーまともなスレなんてあるのかYO!
(・3・) ネタの話もいいよNE!
0013ぼるじょあ ◆yBEncckFOU 2006/12/10(日) 15:27:39
(・3・) エェー 宿題に答えてあげればいいだけですYO!
0014デフォルトの名無しさん2006/12/10(日) 17:31:43
自分も参加してる某スレはまともなスレだと自負しています。
たまにちゃかしに来る人も居ますけどみんなスルーできてますね。
そこのみんなは或る共通意識(?)を持ってる気がします。
0015ぼるじょあ ◆yBEncckFOU 2006/12/10(日) 21:25:23
>>10
(;-3-) エェー もいらのせいにするのはいかがかと・・・
           ちゃんと回答できずに名無しにまかせてる奴が偉そうなこと言うなお




           w
0016ぼるじょあ ◆yBEncckFOU 2006/12/11(月) 00:32:46
(・3・) エェー まともに回答せずにケツの話しかしないキティガイが来たYO
0017デフォルトの名無しさん2006/12/11(月) 02:33:48
>>1
VIPでやれ
0018デフォルトの名無しさん2006/12/11(月) 12:01:14
ttp://pc8.2ch.net/test/read.cgi/tech/1165190320/
誘導
0019デフォルトの名無しさん2006/12/11(月) 17:15:12
前スレ

1000 :ぼるじょあ ◆yBEncckFOU :2006/12/09(土) 19:23:39
(・3・) エェー 100げっとずざー

ゲットできなくて残念だったね。
0020デフォルトの名無しさん2006/12/11(月) 17:38:54
[1] 授業単元:情報処理演習
[2] 問題文(含コード&リンク):
  最後はワードでプログラム・実行結果をまとめます。
  1、フィボナッチ数列の第N項を求めるプログラムを作れ(Nは代入)
  2、x*x+x+1のグラフをプログラムを用いて作れ。
(ところどころの値を出してエクセルでグラフをつくるようです
 すいません )
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:bcc32 (秀丸で作ります)
 [3.3] 言語: C
[4] 期限:[12月13日3:00まで]
[5] その他の制限:繰り返し(forとか)、配列、関数までやりました。
0021ぼるじょあ ◆yBEncckFOU 2006/12/11(月) 19:21:53
(・3・) アルェ〜空気読めYO!
0022ぼるじょあ ◆yBEncckFOU 2006/12/11(月) 19:41:13
>>19
(^3^) エェー もいらが1000もらっちゃったお

1000 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2006/12/10(日) 01:21:31
1000
0023homoじょあ ◆5OLf4yFnuM 2006/12/11(月) 20:53:00
>>20
#include<stdio.h>
#include<stdlib.h>
#define N 10

int func(int n);
int main(void){
printf("%d\n", func(N));
return EXIT_SUCCESS;
}

int func(int n){
if(n== 1 || n== 2)return 1;
return func(n-1) + func(n-2);
}

#include<stdio.h>
#include<stdlib.h>
#define MIN 0.0
#define MAX 10.0
#define SPAN 0.1

int main(void){
double cnt;
for(cnt=MIN; cnt<MAX; cnt+=SPAN){
double ans;
ans = cnt*cnt+cnt+1.0;
printf("x = %f y = %f\n",cnt, ans);
}
return EXIT_SUCCESS;
}
0024192006/12/11(月) 21:33:55
前スレって別のとこの前スレだった。
http://pc8.2ch.net/test/read.cgi/tech/1162490865/l50
0025ぼるじょあ ◆yBEncckFOU 2006/12/11(月) 21:46:03
>>24
(・3・) エェー それももいらだお、1000のつもりが100と書いてしまったお

          ぷータンとゆうこりんと大沢あかねたんをアナ○調教して4Pやりたいお
          一応最高はノンストップ4回戦まではがんばれるし一人1回は満足させられるお
          でもさすがに4回戦はたれるしおてぃんぽが麻痺してくるし
          20時間くらいベッドから起きられなかったお
          (トイレの時に移動するくらいで)
0026ぼるじょあ ◆yBEncckFOU 2006/12/11(月) 21:50:22
>>23
(・3・) エェー Cを昔から触ってる頭の硬いじじいみたいにEXIT_SUCCESS使ってんじゃねーお豚
          せいぜい使ってもEXIT_FAILUREくらいだお
0027ぼるじょあ ◆yBEncckFOU 2006/12/11(月) 21:52:40
(・3・) エェー あとわざわざfor文のループ変数をcntとご丁寧に意味づけしてるところもかわいいね
          まあ一番ひどいforLoopCounterみたいにやたら長い名前をつけるやつよりはいいけどお
0028ぼるじょあ ◆yBEncckFOU 2006/12/11(月) 21:56:14
(;^3^) エェー まああまりつっこみたくないけどループを小数で回すというのもまたすごいおw
           使い方によっては誤差が生じるということも忘れずに、だお
0029デフォルトの名無しさん2006/12/11(月) 23:22:02
確かに誤差は出るかも
高校の時に数値計算か何かの実習で習ったけど理由は忘れたな・・・
0030デフォルトの名無しさん2006/12/11(月) 23:26:08
ttp://3rd.geocities.jp/as_rmter/stage_k6.htm

ここのstage6-3と6-4の四則演算をするにはどうしたらいいか助言いただけないでしょうか?
0031デフォルトの名無しさん2006/12/12(火) 01:48:36
>>30
#include <stdio.h>
#include <string.h>
int main( void )
{
double a, b;
char c;
char* ptr = " +-*/";
int t;

while( 1 ) {
printf( "0:無指定 1:加算 2:減算 3:乗算 4:除算 5:終了-> " ); scanf( "%d", &t );
if( t == 5 ) break;
printf( "式入れれ\n" ); scanf( "%lf%c%lf", &a, &c, &b );
if( ! t )t = strchr( ptr, c ) - ptr;
if( t < 1 && t > 4 || ptr[t] != c ) {
printf( "却下\n" );
continue;
}
switch( t ) {
case 1: printf( "%lf + %lf = %lf\n", a, b, a + b ); break;
case 2: printf( "%lf - %lf = %lf\n", a, b, a - b ); break;
case 3: printf( "%lf * %lf = %lf\n", a, b, a * b ); break;
default: printf( "%lf / %lf = %lf\n", a, b, a / b ); break;
}
}
return 0;
}
0032デフォルトの名無しさん2006/12/12(火) 01:49:32
778 名前:デフォルトの名無しさん[sage] 投稿日:2006/12/11(月) 23:24:22
ttp://3rd.geocities.jp/as_rmter/stage_k6.htm

ここのstage6-3と6-4の四則演算をするにはどうしたらいいか助言いただけないでしょうか?
0033312006/12/12(火) 02:00:37
>>32
今答えを書いたばかりなのだが...
ソース読んでも理解できないのなら、何が疑問か書くように。

ちなみに例題に倣って書いたのだが、
  scanf( "%lf%c%lf", &a, &c, &b );
の様な用法は問題が多い。例えば 10.0 + 20.0 の様にスペースを空けただけで求める入力が
得られない。
0034302006/12/12(火) 02:17:55
>>31
ありがとうございます
疑問があるのは四則演算を選択するときに文字での判別はできないのか、ということと
書いていただいたソースで終了の5を入力して確認してみたところ
抜け出さないのですがどうしたら処理を抜け出す終了判定にできますでしょうか?
0035302006/12/12(火) 02:31:13
すみません
自分の間違いでした
5での抜け出し処理は大丈夫でした

最大の疑問は四則演算を選択するときに数字ではなく文字での判定はできないのでしょうか?
0036デフォルトの名無しさん2006/12/12(火) 02:56:46
マルチポストの投稿間隔が1分半ってのもすごいな
最初からマルチする気満々じゃねーか
0037312006/12/12(火) 03:37:35
>>30
文字から数字に変換するなら以下みたいな感じ。

int func( char* str, char c )
{
char* ptr;

ptr = strchr( str, c );
if( ! ptr ) return -1; // Error
return ptr - str;
}

呼び出し側
int t;
char c;
scanf( "%c", &c );
t = func( "?abcdq", c );

これで ?abcdq に対応して 0 〜 5 が t に代入される。
何処に組み込めば良いかくらいは解るよね。
0038デフォルトの名無しさん2006/12/13(水) 00:44:43
if( ! ptr )はやめようぜ
0039デフォルトの名無しさん2006/12/13(水) 00:58:10
じゃあ、 if(ptr != '\0') で
0040デフォルトの名無しさん2006/12/13(水) 01:12:18
strchr()の返却値ってchar型だったっけ?
0041372006/12/13(水) 01:55:50
>>38
何故?久しく "== 0" って書いたことないお。
>>40
char* だと記憶するが何か?
0042デフォルトの名無しさん2006/12/13(水) 11:08:46
面倒だからよく!ptrを使う
使っちゃいけない理由解説してくれ
0043デフォルトの名無しさん2006/12/13(水) 11:28:17
>>39
NULLが偽じゃない可能性を考えてるの?
0044デフォルトの名無しさん2006/12/13(水) 18:38:43
C/C++ユーザーはデータは全てビットパターンだと考えているから、
記述を省略できるなら意味論など気にしないってスタンスが目立つ。

でも、本当にそれでいいの?
0045デフォルトの名無しさん2006/12/13(水) 18:41:09
>>41
char*と分かっていながら(ry
0046デフォルトの名無しさん2006/12/13(水) 20:22:31
ぜんぜん宿題こねえええええ
ぼるじょあさんの腕がなまってしまわないか心配だ
0047デフォルトの名無しさん2006/12/13(水) 20:52:17
>>44
場合によりけり
0048homoじょあ ◆5OLf4yFnuM 2006/12/13(水) 21:12:44
>>26
(・3・) エェー それ好きなのにお
>>27
(・3・) エェー iとか1文字は秋田んだお
>>28
(・3・) エェー これはリアルに忘れてたYO
          ごめんYO
0049デフォルトの名無しさん2006/12/13(水) 21:15:45
フィボナッチで再帰使うなよ
0050homoじょあ ◆5OLf4yFnuM 2006/12/13(水) 21:20:09
>>49
(・3・) エェー 宿題ならいいではないKA
          あんまり大きい数字は入れないでねってことで
0051デフォルトの名無しさん2006/12/13(水) 22:18:39
>>45
だから ptr は char* で宣言してるだろ。

俺のブラウザと違う見え方してるのか?
0052デフォルトの名無しさん2006/12/13(水) 23:48:38
>>45
>char*と分かっていながら(ry
略せずに全部書いてくれない?
何が言いたいのか自分もわからないし気になる。
0053デフォルトの名無しさんNGNG?2BP(202)
>>52
>>39-40
0054デフォルトの名無しさん2006/12/14(木) 11:42:51
char*とcharを比較してるってこと?
0055デフォルトの名無しさん2006/12/14(木) 12:16:37
[1] 授業単元:コンピュータ・サイエンス
[2] 問題文(含コード&リンク): テキストファイル「myfile.txt」を読み込み、文末にcinで入力した文字列を書き足すプログラムを作成せよ
[3] 環境
 [3.1] OS:Windowsxp
 [3.2] コンパイラ名とバージョン:BCC
 [3.3] 言語: C++優先だがどちらでもOK
[4] 期限: 2006年12月16日
[5] その他の制限:なし
0056デフォルトの名無しさん2006/12/14(木) 12:33:02
>>53
char* ptr に対して if( ! ptr ) が気に食わんのかなぁ。
だとすると >>40 が意味不明なんだが。
『NULLが非0の可能性も有る』って書いてくれれば『そんな環境は今のところは無い』って
答えるんだけど。
そもそもNULLを非0にするご利益が浮かばないんだよなぁ...

>>54
char* と char を比較してる?
0057デフォルトの名無しさん2006/12/14(木) 12:37:02
>>55
読み込む必要無いんじゃない?
fopen( path, "at" ) で開いて入力した文字列を書き込めば良いだけだと思うけど。
0058デフォルトの名無しさん2006/12/14(木) 13:19:18
>>57
ofstreamを使用しても同じことはできますか?
0059デフォルトの名無しさん2006/12/14(木) 14:12:39
>>55
#include <iostream>
#include <fstream>
#include <string>

int main()
{
using namespace std;

const char* file_name = "myfile.txt";

//追加書き込みモード+シーク可能状態でファイルオープン
ofstream out(file_name, ios_base::out | ios_base::ate);
if (!out.is_open()) {
out.open(file_name); //ファイルが見当たらない場合は新規作成
if (!out.is_open()) {
cerr << "Can't open txt file¥n";
return 1;
}
}
string s;
cin >> s;
out << s;

return 0;
}


ぼるじょあさんがんばれ
0060デフォルトの名無しさん2006/12/14(木) 17:49:34
>>56
みんなが突っ込んでるのは、>>39だと思うよ。
ptr !='\0'
↑
これ、ptrがcharじゃなきゃ成り立たなくない?
ptr[0]ならわかるけど。
0061デフォルトの名無しさん2006/12/14(木) 18:13:55
>>39
もしかして'\0'とNULLって必ず同じなの?
>>60
自分もそう思ったけど・・。
0062デフォルトの名無しさん2006/12/14(木) 19:58:13
'\0' = ナル文字 = すべてのビットが0のバイト
0063デフォルトの名無しさん2006/12/14(木) 21:02:35
「ゼロと評価される汎整数定数式を空ポインタ定数と呼ぶ。」 (JIS X 3014:2003 4.10)
X 3010:2003 6.3.2.3にもほぼ同じような規定がある。
ただしこちらはそれをvoid*にキャストした式も空ポインタ定数に含めている。

'\0'はCではint、C++ではcharになるが共に整数型であることに変わりはなく、
ptr !='\0'はptrがポインタ型でもptrがヌルポインタか比較する有効な式になる。
0064デフォルトの名無しさん2006/12/14(木) 21:31:53
ナルポど
006537=41=51=562006/12/14(木) 22:19:46
>>60
>>37 に対するレスだと思ってた。
>>39 俺じゃねぇし...
そもそも if( ! ptr ) を if( ptr != '\0' ) じゃ動作が反対じゃん。
ちゃんとアンカー付けなよ。話が噛み合わない。
0066デフォルトの名無しさん2006/12/14(木) 22:50:42
つまり、プログラムも2chのレスも紛らわしい書き方はやめよう、ということだな。
0067デフォルトの名無しさん2006/12/15(金) 01:21:52
分からなかった奴はこれくらい読もう。
http://www.kouno.jp/home/c_faq/c5.html
0068602006/12/15(金) 02:48:19
>>63
一つ賢くなった。ありがとう。
ポインターと'\0'の比較って、出来るんだね。

>>65
そんな愚痴、俺に言われても困るがな(´・ω・`)
二度目以降の書き込みから、名前欄に最初のレス番入れときゃ済んだ話でしょ。
突っ込み入れてんのも、一人じゃないだろうしさ。
俺も、60がここでの初書き込み。
>>39-40の流れは、どうみても40は39へのレスでしょ。どの書き込みへのレスだと、思い込んだの?
0069デフォルトの名無しさん2006/12/15(金) 09:58:39
結局!ptrはスタイルの違いだけかよ
わかりずらいような箇所はコメントつけてるつーの
0070デフォルトの名無しさん2006/12/15(金) 11:05:11
[1]授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
1)直線回帰の式を導出せよ。
2)決定係数の式を導出せよ。
3)1)の式を用いて「汎用性の高い直線回帰を行うプログラム」を開発せよ。
4)3)で開発したプログラムに2)の決定係数を算出する式を加えよ。
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: gcc3.4
 [3.3] 言語:C
[4] 期限: 2006.12.18
[5] その他の制限: とくになし


お手数かもしれませんが、よろしくお願いします・・・!

0071デフォルトの名無しさん2006/12/15(金) 11:34:30
>>69
Lvの低い厨房が他人を見下したくて因縁つけてるんだ。
だから、気にするな。
0072 ◆jrVK/pjl0Q 2006/12/15(金) 11:41:31
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):√xの定積分(積分範囲0〜1)をモンテカルロ法を用いて
計算せよ。ただし、生成点数が10万点と1千万点の場合について計算する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 2.96
 [3.3] 言語: C
[4] 期限: 2006年12月18日
[5] その他の制限: とくにありません

よろしくお願いいたします。
0073デフォルトの名無しさん2006/12/15(金) 11:42:07
>>70
直線回帰でもN次式回帰でも普通は最小二乗法を使うと思う。
仕事で書いたことあるけど手元にソース無いし、ちょこちょこって書ける量でもないよ。
決定係数は知らん。

多分、回答は期待できないと思う。
最小二乗法はここにソース付きの説明があるから参考にしたら?

ttp://homepage3.nifty.com/ishidate/vcpp6_19/vcpp6_19.htm
0074デフォルトの名無しさん2006/12/15(金) 12:11:58
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 宝くじの抽選番号のあたり調べをし結果を表示するプログラムを作成
最初に当選番号を入力し、買った宝くじの番号を入力しあたりかはずれか表示する
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 来週の月曜日
[5] その他の制限: ・バラ・連番より選択可にする
・連番の場合先頭の番号を入力するだけにする
・枚数チェック、文字チェックを行う。数字以外は入力できないようにする
・上位の等が当たったら下位の等は当たらない
・繰り返し入力できるように何かキーを入力したら終了できるようにする
・買った宝くじは何度でも入力できるようにする
0075ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:05:37
>>48
(・3・) エェー さすがhomoじょあ氏、大人の対応だお
          ちなみにもいらはガキみたいにいろいろ文句行ってみたお
>>49
何で?

0076ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:06:46
(・3・) エェー ところで再帰の使い方(使い道)を知らない、または
          使えないプログラマは多いみたいだね
          



          ・・・まじですか
0077ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:11:29
(・3・) エェー 漸近式をまんまプログラムに起こせるから普通に使うけどね
          まあ家庭狂死していたころに数学教えていた合間の休憩で
          自称学生プログラマにソース見せたら悩んでいたおw

          というか再帰使わないで漸近式をコンピュータプログラムにした方が
          わかりにくいと思うお
0078デフォルトの名無しさん2006/12/15(金) 21:18:14
>75
>あんまり大きい数字は入れないでね
75≠76だよな?
じゃなきゃ76の発言は冗談にしかならんぞ。
0079ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:33:27
(・3・) エェー はっきり家よぼけ
0080ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:35:24
(・3・) エェー ああ、理解した
          そりゃまああまり大きな数字はだめなのは当然のことだお
          文句言うならはっきり言おうね〜ぼくぅ
          何て煽ってみたりするわけですが
0081ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:38:27
(・3・) エェー 新しい部下(といっても派遣社員だが)が入ってきたお
          ぷータン似で顔だけでなく勝ち気な性格も似てるお
          横顔(というよりちょっと正面向きの)がとてもかわいく
          口が少女のようにぷっくりふくらんでいて首に巻いたスカーフが
          愛らしいお
0082ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:39:01
失礼、レスする場所を間違えたお
0083デフォルトの名無しさん2006/12/15(金) 21:49:48
ぼるじょあ語とVIP語が混ざりすぎだろ
0084デフォルトの名無しさん2006/12/15(金) 22:11:50
フィボナッチは再帰を使うべきでないかなり有名な事例だと思ったけど、そうでもないのか?
>79
使うべき所とそうでない所がわかってないと、再帰の使い方がわかってるとは言えない。
それぐらいなら全く使わない方がまし。
0085ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 22:43:29
 〃∩∧_∧
⊂⌒( ・3・)  はいはいフィボナッチ博士フィボナッチ博士
 `ヽ_っ⌒/⌒c
    ⌒ ⌒

  ∧_∧
⊂(# ・3・)   うざいしみんなの迷惑だから他所でやれお!!
 /   ノ∪
 し―-J |l| |
         人ペシッ!!
       __
0086デフォルトの名無しさん2006/12/16(土) 08:46:58
フィボなんかどうでもいい
はい、次の質問どうぞ
0087デフォルトの名無しさん2006/12/16(土) 16:20:30
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3200.txt

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: visual studio2003
 [3.3] 言語: C
[4] 期限: 12月19日
[5] その他の制限: 特になし
分からなくて焦ってます。
0088homoじょあ ◆5OLf4yFnuM 2006/12/16(土) 19:14:17
>>87
(・3・) エェー http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3201.txt
0089ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 20:18:45
(・3・) エェー homoじょあ氏のプログラムに反吐が出そうだったので
          書き直してやったお
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3202.txt
          まだ少しだけむかむかするけどまあ多少は落ち着いてきたお
0090homoじょあ ◆5OLf4yFnuM 2006/12/16(土) 20:35:16
(●・3・●) エェー 吐くのはあんまり体に良くないYO
0091ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 20:40:52
(・3・) エェー おたふく風邪かお
0092homoじょあ ◆5OLf4yFnuM 2006/12/16(土) 20:50:33
(・3・) エェー ちょっと気に入っちゃっただけですお
0093デフォルトの名無しさん2006/12/16(土) 21:03:12
>>88
ありがとうございます。助かりました。
0094ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 21:17:36
(・3・) エェー もいらに例はなしかお
          ふざけんな
0095デフォルトの名無しさん2006/12/16(土) 21:30:43
(・3・) カンマ編集は?もいら風邪ひいた...
0096デフォルトの名無しさん2006/12/16(土) 21:32:15
>>95
中途半端な名無しだなw
0097デフォルトの名無しさん2006/12/16(土) 21:49:46
int comma_format(long value, char *buf)
{
long value_abs, value_div;

value_abs=abs(value);
for(value_div=1;value_abs/value_div>=1000;value_div*=1000)
;
sprintf(buf, "%ld", value/value_div);
for(value_div/=1000;value_div>0;value_div/=1000)
sprintf(buf, "%s,%03ld", buf, (value_abs/value_div)%1000);

return 1;
}
0098ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 22:09:13
┐(´3`)┌ エェー >>97きみの混乱具合が伺えるお
            もう少しシンプルにできんかね、これはキミへの課題だお
            明日の20時頃に股来るからそれまでにちゃんと第2版作っておけお
            もいらは彼女の看護で疲れたから美少女便器2でも見ながら寝るお
0099デフォルトの名無しさん2006/12/16(土) 23:19:30
>>94
ごめんなさい。もちろん>>95さんにも感謝してます。
アンカーつけ忘れorz
0100ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 23:28:29
(・3・) エェー 100
0101デフォルトの名無しさん2006/12/16(土) 23:59:43
int comma_format(long value, char *buf)
{
char temp[20];
int i, temp_len;

if(value<0) *buf++='-';
sprintf(temp, "%ld", labs(value));
temp_len=strlen(temp);
for(i=0;i<temp_len;i++)
{
*buf++=temp[i];
if((temp_len-i)%3==1)
*buf++=',';
}
buf[-1]='\0';

return 1;
}
0102デフォルトの名無しさん2006/12/17(日) 00:43:59
>>100
あ、今度は100ゲトしてる。おめでとう。
0103ぼるじょあ ◆yBEncckFOU 2006/12/17(日) 10:12:40
(・3・) エェー 100だけじゃなく次も1000狙うお
          >>101きみの混乱具合が伺えるお
          *(buf-1)に'\0'を入れる理由を答えろお
          comma_format()呼び出し元に特殊な引数渡しを要求する仕様かお?
          もう少しわかりやすい仕様で作り直すよう希望するお
0104デフォルトの名無しさん2006/12/17(日) 10:17:14
int main(void){
char buf[20];

comma_format(1000, buf);
printf("%s\n", buf);

return 0;
}
0105デフォルトの名無しさん2006/12/17(日) 10:27:01
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * addStringFromIntWithComma(char * buf, int val)
{
char * p;
if (val < 0) {
p = strchr(buf, '\0');
p[0] = '-'; p[1] = '\0';
return addStringFromIntWithComma(buf, -val);
}
if (val >= 1000) {
p = addStringFromIntWithComma(buf, val / 1000);
return p + sprintf(p, ",%03d", val % 1000);
}
p = strchr(buf, '\0');
return p + sprintf(p, "%d", val);
}
void putStringFromIntWithComma(char * buf, int val)
{
buf[0] = '\0'; addStringFromIntWithComma(buf, val);
}
int main(int argc, char **argv)
{
if (argc > 1) {
char buf[100];
putStringFromIntWithComma(buf, atoi(argv[1])); puts(buf);
}
return 0;
}

0106デフォルトの名無しさん2006/12/17(日) 18:11:11
問題:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3204.txt
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3207.txt
 OS:Windows
言語:C/C++どちらでも可
期限:12月20日
この2問がどうしてもわかりません、よろしくお願いします。
0107デフォルトの名無しさん2006/12/17(日) 18:37:32
[1] 授業単元: プログラミング
[2] (1) 0 が入力されるまで正整数を読み込み、最大値、(最後の0 を除いた)最小値、全入力数値の平均(最
後の0 を含めず) を出力するプログラムを作りなさい。
(2) 正整数を入力し、それをローマ数字で表示するプログラムを作りなさい。
例: 1 I
3 III
4 IIII (またはIV)
5 V
12 XII
46 XXXXVI
73 LXXIII
111 CXI
378 CCCLXXVIII
521 DXXI
1001 MI

[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 月曜日
[5] その他の制限:できるだけ簡単で理解できるやつをおねがいします。
0108homoじょあ ◆5OLf4yFnuM 2006/12/17(日) 19:15:46
>>106
(・3・) エェー http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3211.txt
0109デフォルトの名無しさん2006/12/17(日) 19:26:27
>>107 (2)番だけ
#include<stdio.h>
typedef struct tag_roman_number{
 char *symbol;
 int value;
}roman_number;
void print_roman_number(int value){
 roman_number num_list[]={
      {"M", 1000},
      {"D", 500},
      {"C", 100},
      {"L", 50},
      {"X", 10},
      {"V", 5},
      {"I", 1},
     };
 int i;
 for(i=0;i<(sizeof(num_list)/sizeof(num_list[0]));i++){
  while(value>=num_list[i].value){
   printf("%s", num_list[i].symbol);
   value-=num_list[i].value;
  }
 }
}
int main(int argc, char *argv[]){
 int i;
 for(i=1;i<argc;i++)
  print_roman_number(atoi(argv[i])),printf("\n");
 return 0;
}
01101092006/12/17(日) 19:31:55
>>107
>>109 を下のとおり変更してね
      {"V", 5},
      {"I", 1},
↓
      {"V", 5},
      {"IV", 4},
      {"I", 1},
■ このスレッドは過去ログ倉庫に格納されています