1 :
デフォルトの名無しさん :
2007/03/04(日) 13:13:38
#include <2get.h>
2.c:1:18: 2get.h: No such file or directory
前スレは可哀相な人に捧げました
春が来たな
6 :
デフォルトの名無しさん :2007/03/04(日) 15:10:24
前スレを童貞に捧げてきました。さっ、これからは非童貞でモテモテが宿題を答えます故 安心して質問して下さい。
7 :
デフォルトの名無しさん :2007/03/04(日) 15:23:37
[1] 授業単元: C++プログラム [2] 問題文(含コード&リンク): Array, stringを使って打ち込んだ文字をモニターにプリントせよ。その際に打ち込んだ文字のスペースやコンマ、セミコロンは省く形にする。最後にその文字数をカウントし何文字あるかアウトプットする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C++ [4] 期限: ([2007年03月10日17:m00まで] [5] その他の制限: 基本的な問題で質問するのも恐縮なのですが、色々なHPを見たりと調べましたがうまく出来ませんのでこちらでご質問をさせていただきました。 課題の回答例としてですが、 hello, it is fine day today. と入力すると、 helloitisfinedaytoday 21文字 がアウトプットされます。 char a[100]; cout <<"文字入力"<< endl; cin >> a ; から始めていますが、その先が進みません。 どちら様か、アイディア、お知恵をお貸し頂ければ大変恐縮します。よろしくお願いします。
>>7 入力した文字を先頭から調べていって、スペースやコンマ、セミコロンがあったら
strcpy(buf, pos+1); //posがスペースやコンマ、セミコロンの位置
strcat(pos,buf);
みたいな感じで
あとはstrlenで文字数カウントして出力
これじゃC++関係ないな・・・
>>7 #include <cstdio>
#include <cctype>
int main(void) {
char c;
int count = 0;
while((c=std::getchar()) != EOF && c != '\n') {
if(std::isalnum(c)) {
std::putchar(c);
count++;
}
}
std::printf("\n%d文字", count);
return 0;
}
>>9 = 前スレで釣りネタ課題にネチネチ突っ込んできた理解力の無い童貞キモヲタデヴピッツァ
カミングアウト乙。お前が釣られていることにいい加減気づけ。
>>10 > Array, stringを使って打ち込んだ文字をモニターにプリントせよ。
きんもーっ☆
国公立大学生のエリート達は今頃春休み中ですよ。 私大の連中か専門の連中でしょうかねぇ?
俺は私大に通ってたけど、別に今の時期も休みだったが? って勝手なことを言うお前は勝手にエリートについて決め付け過ぎ。 学校によって違いはあるけど、エリートとか私立専門で休業期間が違うと 思っているのは、大学にも通ったことがない高卒だろ?w
釣られすぎだろ、常識的に考えて…
>>17 っと妄想高卒童貞キモヲタピッツァが必死こいて釣りをした気になっていますw
最近このスレ無茶苦茶だな…。あのピッツァさんが来て以来…。
うぉ、本人居たwwwww
釣りをしたつもりが自分が釣られていることに気づかない
>>17 m9(^д^)プギャー
前スレのカレンダー課題はモロに最後にエサと書いてあったけど
>>17 は後から釣り宣言をしている必死さがにじみでていまつw
お前ら雑談してる暇があれば課題をこなせよ…
24 :
デフォルトの名無しさん :2007/03/04(日) 17:51:57
15 名前:デフォルトの名無しさん 投稿日:2007/03/04(日) 17:28:15 国公立大学生のエリート達は今頃春休み中ですよ。 私大の連中か専門の連中でしょうかねぇ?
>>23 こんなこともあろうかと、
前スレの終わりのほうにたくさんネタ課題を挙げておいたのだが。
ネタはいらね
ここは宿題を解くスレであって、ネタ問題を出すスレではないんだが
ネ、ネタのふりをしただけで、本当は宿題なんだからねっ
面白ければなんでもいい
>>15 今春休みの自分がFランク以下の国公立に通っていても
エリート学校と同じ期間に休業中だからといって自分もエリート気取りになっている
低レベル大学の生徒乙wwwwww
私立もお休みですよ?しかも私立でもエリート大学はあるんだがw
お金の無い奴は学費の安い国公立でひぃひぃ言いながら学歴重視な人生を送ってなさいってこった。
政治家とかどこぞの最先端を行く研究所で働いてでもならなきゃそんなのもパーだけどなw
ここまでのキチガイまとめておこうぜ。 ・ピッツァさん ・エリート君 ・俺
なんかこのスレかじゅ○くさいです
じゅうくさい?
35 :
22 :2007/03/04(日) 18:32:01
すまぬ。
>>22 のcopy_if()にはバグがあった。
でもまあこの応用では問題が起きないからいいか....。
うはー、このスレすごすぎ。 季節的なものかな?
どんどん荒れてもらって構わない。 宿題を丸投げするような馬鹿は単位を落とすべき。
いや、普通に他の質問スレに流れるだけかと・・・
マルチの危険があるな
そういえば、マルチの型番ってなんだっけ?
古いエロゲの話なんてしてんじゃね〜ぞ、この彼女いない歴:生まれて今日(ry の童貞キモヲタデヴピッツァめがゴルァ!
42 :
デフォルトの名無しさん :2007/03/04(日) 20:33:34
前スレ埋めたんだね。ご苦労。
43 :
デフォルトの名無しさん :2007/03/04(日) 21:29:48
注:私の有意義な発言に対し、自分の理解不足を棚に上げ煽り、1行レス で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく スレの雰囲気を崩しかねないのでお黙り下さい。 また質問者は回答者に知識を披露する場を与える貴重な存在なので、 質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。 忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、 その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると 判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。
43 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
[2] 問題文(含コード&リンク):
>>43 を3行に要約するプログラムを作成しなさい
貴様ら、なんでプログラミングなんて始めたんだい?俺なんて大学の2単位しかもらえん つまらぬ授業で知って以来、なんとなく数値計算程度で使っているが・・・
>>45 #include <stdio.h>
int main(){ printf("滑って\n転んで\n大分県"); return 0; }
>>46 もともと形式化が好きだったが、一人寂しく形式化して悦に入っているのよりも
フィードバックが得られた方が楽しいことに気づいたから。
>>46 物を作るのは楽しい。それが実際に役に立つのなら言うことは無い。
>>49 そのとーりだ。
でも仕事としてやっていると
つまらないことだらけなんだよな。
性帝トーマス氏は来ていない?あのお方の絡みは結構好きだったんだがw
本人乙
ハッシュ関数に関する問題をお願いした者です
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3722.zip 前スレ
>>885 にて
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3723.txt と解答していただきました
bccで動かしたら動作に全く問題が無かったのですが
課題提出をしたところ↓のエラーが出てきてしまいました
何が問題なのでしょうか
コンパイルエラーです。
error
/home/elg/CAPES/tmp/exe/hash3.c:79: error: syntax error before string constant
/home/elg/CAPES/tmp/exe/hash3.c:79: error: conflicting types for 'printf'
/home/elg/CAPES/tmp/exe/hash3.c:79: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
/home/elg/CAPES/tmp/exe/hash3.c:80: error: syntax error before string constant
/home/elg/CAPES/tmp/exe/hash3.c:80: error: conflicting types for 'scanf'
/home/elg/CAPES/tmp/exe/hash3.c:80: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
/home/elg/CAPES/tmp/exe/hash3.c:83: error: syntax error before string constant
/home/elg/CAPES/tmp/exe/hash3.c:83: error: conflicting types for 'scanf'
/home/elg/CAPES/tmp/exe/hash3.c:83: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
/home/elg/CAPES/tmp/exe/hash3.c:84: error: 'key' undeclared here (not in a function)
/home/elg/CAPES/tmp/exe/hash3.c:84: error: 初期化子の要素が定数ではありません
/home/elg/CAPES/tmp/exe/hash3.c:85: error: 初期化子の要素が定数ではありません
/home/elg/CAPES/tmp/exe/hash3.c:86: error: syntax error before 'while'
/home/elg/CAPES/tmp/exe/hash3.c:90: error: redefinition of 'p'
/home/elg/CAPES/tmp/exe/hash3.c:85: error: previous definition of 'p' was here
/home/elg/CAPES/tmp/exe/hash3.c:90: error: invalid type argument of '->'
/home/elg/CAPES/tmp/exe/hash3.c:91: error: syntax error before '}' token
54 :
前885 :2007/03/05(月) 14:09:35
>>53 ソース中の日本語を sjis で up したんだが、
そのエラーコードから察すると unix 上でコンパイルしてるっぽい。
なので、文字コードを euc に変換したものを渡すか、ASCII で表記してみたら?
55 :
前885 :2007/03/05(月) 14:23:25
もう1点 // が最初から入ってたんでそのままにしたけど、標準Cでは非コメントだお
送信する部分は穴埋め部分のみなので、提出する時には struct tfield *p; struct tfield *old; の部分と if (dat[n] == p) { dat[n] = p->pointer; } else { old->pointer = p->pointer; p = old; } break; } の部分だけで送信していて、文字コードに関してはおそらく問題ないと思うのですが break;あるなしに関わらず同じコンパイルエラーになってしまいます しばらくにらめっこしてみます
57 :
前885 :2007/03/05(月) 16:06:05
>>56 すまね。 最後の } まで含んでるが、実際にはそこ含まないや
if (dat[n] == p) {
dat[n] = p->pointer;
} else {
old->pointer = p->pointer;
p = old;
}
break;
が送信内容に相当だわ
今俺C言語レベル10。新学期が始まるまでになるべくレベル99にまで上げるようにがんばるからさ 応援してくれ!そこまで上がったらそれ以上上がらない、どうすんだと?そりゃお前、転職するさ。 ダーマの神殿も探しておかなきゃ。
遊び人からってならわかるが、遊び人になるのはちょっと・・・ C言語マスターってだけじゃ働かずに食っていけないっす orz
マスターするのがどれだけ途方もない道か分かっていないようだな
C言語マスター=C言語仕様覚える なんだろ
道具の使い方を知っている≠道具を上手く使って目的を達成する 「xxxをマスターしています」発言は後者の意味に取られることが多い
おまえらの言ってるマスターはマスターヨーダのマスターだろ? 習得って意味でもマスターって使うじゃん?
なんか良い例えだな
>>57 うまくいきました
ありがとうございました
まぁ、確かにマスターというのも曖昧か。まぁ、最終的にはどの言語でも そのコンピュータが実装する範囲内でだが、計算処理を自由自在に操れる というのがマスターってことで。
じゃあアイドルマスターってアイドルを自由自在に(ry
やりたきゃやれぇ、アイドルの貞操を乱すものは許さんぞぉ〜!
[1] 授業単元:C言語基礎
[2] 問題文(含コード&リンク): 今までに習った基礎を利用して自由なプログラムを作成しなさい。
ただし配列、もしくは構造体のポインタを使用すること
[3] 環境
[3.1] OS: windows XP
[3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
[3.3] 言語:C言語
[4] 期限: 3月8日 10時まで
[5] その他の制限: アップしたソースの中で使用している命令が今の自分に使える限界なので、
それに合わせた指摘をお願いします。低レベルで申し訳ないです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3734.txt どうにか色々なサンプルを参照しながら完成したのですが
コンパイラで以下の警告が出てしまいます。
71 :
71 :2007/03/06(火) 14:06:26
[1] 授業単元: C++ 基礎クラス [2] 問題文(含コード&リンク): 入力した連続したアルファベットの最初と最後の文字を省き、 残った文字をモニターにプリントする。 その手順で入力したアルファベットがなくなるまでFORループを使って繰り返す。 例; abcdefと入力した場合。 bcde cd absolutelyと入力した場合。 bsolutel solute olut lt u と画面に現れればいいという事です。
72 :
続71 :2007/03/06(火) 14:07:08
[3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 [3.3] 言語:C++ [4] 期限: [2007年03月10日17:00まで] [5] その他の制限: 下記に記入したと通りまで作りましたが、困ったことに7文字までしか正確に作動しません。 8文字を超える文字を入力すると記号類が出てきます。 基本的な問題なのだろうと思いますが、解決策が見当たりません。 どちら様かご援助いただけるようよろしくお願いします。 #include<iostream.h> #include<cctype> #include<string.h> int main () { int a, i, b; const size=500; char c[size]; char str1[200]; char str2[300]; cout << "Enter a string" << endl; cin.getline(c, size); cout << c << endl; a=strlen(c); cout << a << endl; b=a-2; // for(i=1; i<a; a-=2, i++, b-=2){ strncpy (str2, c+i, i+3); str2[b]='\0'; cout << str2 << endl; }// end of for loop return 0; }
>>71 std::string習ってない?
# include <iostream>
# include <string>
int main()
{
std::string s;
std::cin >> s;
int i = 1;
for(int len = s.length() - 2; len > 0; len -= 2)
{
std::cout << s.substr(i, len) << '\n';
i++;
}
}
>>70 まだ大雑把にしか見てないが、
"エラー E2293 467 : )が必要"
pload = ((PPERSON)malloc(sizeof(PERSON));
一番左の括弧がひとつ多い。
"警告 W8066 321:と409:と413:"
return で関数から抜けるので、break;は要らない。
これは必要ないかもしれんけど、
"警告 W8065 プロトタイプ宣言のない関数"
17行目とかを、
int AddData(); → int AddData(void);
なかなかよくできているのではないだろうか(偉そうにスマソ)。
気が向いたら、細かく見て、感想書いてみる。
>>70 513: int DeleteData()
何番目のデータを削除するか、というところで
入力した数( j に入力された数 )がcountを超える場合はreturnした方がいいかも。
処理落ちの予感。
現在登録されているデータの個数が分かると良いかなぁ、って俺なりの要望をしてみる
// コマンド入力 gets(szInput); こんなところにダンディ坂野が!?やっちまったな!
>>70 298: pedit = pedit->pnext;
pedit = pedit->pprev; だと思われ。
処理(ry
>>70 285: j == 0
j <= 0 にする。
-1とかを入力すると処(ry
>>70 LoadData()の挙動がちょっとな……。
81 :
デフォルトの名無しさん :2007/03/06(火) 17:40:03
この問題を解いてもらえませんか?できれば解説つきで。 問題 テキストファイルを読み取って(最大で100文字)すべて アルファベット順に並んだ文字郡のファイルを作る。 またプログラムは、入力ファイルと出力ファイルをユーザーから読み取る。 ヒント(ストリングのアレーを見つけ出す,二次元配列のアレーを使えば 文字を記憶させるのに便利)
いや、追加する仕様なのかもな。
84 :
OCS :2007/03/06(火) 23:06:04
[1] 授業単元: C言語基礎 [2] 問題文(含コード&リンク):ファイルから指定したファイルを読み込み、内容を16進数と文字で表示する。 表示する際、画面の左端から “9999ooooXXXXooXXXXooXXXXooXXXXooooCCCCCCCC” と表示する。ここで、oはブランク1つ、9は数字1桁、Xは16進1桁、Cは文字1文字で、最初に行番号、データを16進4桁ずつを4回、データを文字で8文字表示する。プログラムの作り方ですが、関数の構成を大きく3つに分けます。 ・1行分表示関数 (line_display( ) )データを1行分表示ます。 ・1画面表示関数(all_display( ) ) 1行表示関数を必要分呼んで1画面描画します。 ・開始、キー受付、終了処理(メイン関数) ファイルオープン、キー受付、画面表示、 プログラムの終了を行ないます。 上記の3つ(以上)の関数をつくり機能を実現します。 画面の構成は1行目から24行目まではデータ表示、一番下の行に“>”を表示しキー受付行とする。キーボードからキーを読み込み、下のキーに合致したら L:表示したい行数を指定できるようにする。キー受付行に“何行目から表示?”と表示し入力された行番号から表示する。 F:1行上にスクロール B:1行下にスクロール U:1画面上にスクロール D:1画面下にスクロール C:表示しているデータの型(最初は16進数で表示している)変更を受け付ける E:終了 各処理に適宜エラー回避処理を入れること。 また上記以外に機能を盛り込むことは可。例えば1番上の行はファイル名表示、半画面スクロール等。 [3] 環境 [3.1] OS: Windows2K [3.2] VC 6.0 [3.3] 言語:C言語 [4] 期限:2007年03月09日15:00まで [5] その他の制限:fseek()関数とftell()関数を使うこと 大阪のしがない専門学校からなのですが、これが授業の最終課題なんです。みなさんのお力を貸してください。 よろしくお願いいたします。
85 :
デフォルトの名無しさん :2007/03/07(水) 01:41:07
[1] 授業単元:C++ [2] 問題文(含コード&リンク):預金額のデータを扱うクラス「Kouza」を作成せよ。 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語: C++ #include <iostream.h> class CKouza { private: long yokin; public: void ireru(long okane){yokin+=okane;} void orosu(long okane){yokin-=okane;} int zandaka(void){return yokin;} void disp(); }; void CKouza::disp(){ cout<<"預金額:"<<yokin<<endl; cout<<"残高:"<<yokin<<endl; }
86 :
85 :2007/03/07(水) 01:44:09
void main( void ){ CKouza ginko; long i,j; int zankin; cout<<"預金:";cin>>i; ginko.ireru(i); ginko.disp(); cout<<"払戻し:";cin>>j; ginko.orosu(j); zankin=ginko.zandaka(); cout<<"払戻し額:"<<j<<endl; cout<<"残高:"<<zankin<<endl; } 実行すると打ち込んだ金額に勝手に+1して受け渡してしまうのですが 原因がわかりません。おかしいところを教えてください。
88 :
87 :2007/03/07(水) 01:45:08
ごめん>85しか見てなかった
>>85 yokinを初期化する必要があるんじゃないか?
>>74 >>75 >>78 >>79 >>80 さん
おかげで実行に成功しました。
ただ、所々のポインタが不安定っぽいのでこれ以降は自力で解いてみようと思います。
ご指摘ありがとうございました。
>>76 入力されたデータを読み込む際にカウントして個数を表示するようにしました。
確かに無いと不便でしたね。
91 :
85 :2007/03/07(水) 11:59:14
>>89 はい、私もそう思って、ginko.ireru(i)の前にginko.ireru(0)で
初期化したんですが、それでも1がプラスされるんです。
例として([]内はキーボード入力)
預金:[300000]
預金額:300001 //ここでyokinの内容を書き出すとなぜか1が増えている。
こんな感じです。
>>91 それじゃ0足してるだけで初期化になってないだろ
93 :
85 :2007/03/07(水) 12:08:12
書き込んだあとに間違いに気づきました。 ginko.ireru(0)で初期化されるのは、yokinじゃなくてokaneでした。 ありがとうございました。
宿題というか、書籍の練習問題なんですが、このスレでよろしいのでしょうか・・・? [1] 授業単元: - [2] 問題文(含コード&リンク):§5.8.1のframeを反復子を使って書き直してください。 ---§5.8.1のframe関数--- // 行数の関係で割愛しますが、widthは与えられたvector<string>の要素中で最長の文字数を返す関数です。 // frameは与えられたvector<string>の周りに*マークの囲いをつけたものを返す関数です。 vector<string> frame(const vector<string>& v) { vector<string> ret; string::size_type maxlen = width(v); string border(maxlen + 4, '*'); // フレームの1番上を出力 ret.push_back(border); // 内部の行を左右に*と空白を入れて出力 for (vector<string>::size_type i = 0; i != v.size(); ++i) { ret.push_back("* " + v[i] + string(maxlen - v[i].size(), ' ') + " *"); } //フレームの1番下を出力 ret.push_back(border); return ret; } [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC2005 [3.3] 言語: C++ [4] 期限: 無期限 [5] その他の制限: 必要かどうか分かりませんが、この章で出てきたアルゴリズムは accumulate, find, find_if, search, copy, remove_copy, remove_copy_if, remove_if, remove, transform, partition, stable_partition です。 forループ内の、最長文字数に足るまで' 'で埋めている部分が、反復子でどう埋めるのか分かりません。 その部分だけでも結構ですので、よろしくお願いできましたら。
96 :
OCS :2007/03/07(水) 21:45:34
>>94 番さん
ありがとうございます!
『C』の処理の内容を聞くメールを先生に出したので、明日かあさってに返事がくると思います!!
詳細わかったらまた書き込みます!
ありがとうございました!!
>>95 コンテナに対する反復子は、配列に対するポインタだと思えばいい。
for (vector<string>::size_type i = 0; i != v.size(); ++i) {
ret.push_back("* " + v[i] + string(maxlen - v[i].size(), ' ') + " *");
}
↓
for (vector<string>::iterator it = v.begin(); it != v.end(); it++) {
ret.push_back("* " + *it + string(maxlen - it->size(), ' ') + " *");
}
STLの内部にはよく何度も条件分岐が平気で使われるから、 例えばvectorのsize()も中身を見るとifが1つ。 あるベンチマークの結果では、Cと同じことをSTLを使って処理をさせて時間を計った所 平均で5倍という結果が出た。 だから処理速度だけには注意して組むとよろし。
99 :
95 :2007/03/08(木) 01:51:16
>>97 ご回答ありがとうございました。
it->size() なんてものがあったんですね。
本に書いてなかった(見落としかも)ので、そこで悶絶してましたorz
おかげさまでスッキリです。
本筋と関係なくて失礼かとも思いましたが、後から見る方のために、
(多分)仮引数がconstなので、forの初期化式の反復子もconst_iteratorにしないと
コンパイラーに怒られました、とご報告を。。
100 :
デフォルトの名無しさん :2007/03/08(木) 11:25:12
[1] 授業単元: C++ [2] 問題文(含コード&リンク): char h[]= "H"; char g[]= "G"; char k[]= "K"; 一つ一つの文字を char i[4]; の中に収納せよ。 [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([2007年03月12日17:00まで] そうとう初心者で申し訳ないです!ただstringとArrayを欠けて使う方法がよく変わらず困っています。 以下が自分が素直に考え作ったのですがエラーが出ます。 どちら様か、ご指摘ご回答お願いできればと思います。よろしくお願いします。 #include<iostream.h> #include<string.h> int main() { char h[]= "H"; char g[]= "G"; char k[]= "K"; char i[4]; strcpy(i[0],h); strcpy(i[1],g); strcpy(i[2],k); i[3]= '\0'; cout <<i << endl; return 0; }
>>100 i[0] = h[0];
i[1] = g[0];
i[2] = k[0];
i[3]= '\0';
102 :
100 :2007/03/08(木) 11:59:43
>>100 >strcpy(i[0],h);
strcpy の引数はポインタ
i[0] はポインタではない
104 :
100 :2007/03/08(木) 13:36:31
な、なるほど・・・・ ポインタの基礎から叩き込むとなると、長い道のりとなりそうだ。
strcpy()ってiostream.hに入ってたのか・・・知らなんだ
C++のソースなら、 #include <iostream.h> → #include <iostream> #include <string.h> → #include <cstring> あと、mainの冒頭で using namespace std; しとけ。
#include<iostream.h> int main() { char i[4]; strcpy(i,"ABC"); cout <<i << endl; return 0; } bcc32 でコンパイルできた。
int mein{ char i[4] //iに"ABC"をコピー //%s iでprintf retunrn } 脳内 でコンパイルできた。
mainがありません。
>>109 #define retunrn ;return 0;
#define mein main(void)
112 :
お願いします!! :2007/03/08(木) 17:42:50
100個の数値データを最大値選択法を用いて大きい順に並び替えるCASLUプログラムを作成し、 ソースリストを作成せよ。 という課題なんですがさっぱり分かりません。 詳しい方お願いします!!締め切りが明日までであせってます><
>>111 ワラタ
returnのdefine文が絶妙w
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): 以下の5つの条件を満たす関数"int function(int,int,int)"を書け。 (1) 第一引数は0から3までの数値しか入らないとし、それぞれ0は加算、1は減算、2は乗算、3は乗算を表す。 (2) 第二、第三引数は任意の数値が入るものとする。 (3) 戻り値には、第二、第三引数を第一引数の指す意味の演算で演算した結果を返すものとする。 (4) 回答者の書く全てのプログラム中で、if、switch、for、while、gotoを書いてはいけない。 (5) 回答者の書く全てのプログラム中で、"#include"を書いてはいけない。 [3] 環境 [3.1] OS: WinXP [3.2] コンパイラ名とバージョン:VS2005 EE C++ [3.3] 言語: C [4] 期限: [2007年03月09日13:10まで] [5] その他の制限:コンパイラにはCとしてコンパイルするオプションが付けられる 分かりません お願いします
>>112 CASLUってCではないような・・・・
116 :
お願いします!! :2007/03/08(木) 17:50:55
そうなんですか?? こういうの全く分からないもので。。。 どこに書き込めば回答してくれますかね??><
>>114 第一引数で四則演算を振り分けるのにすらifもswitchも使えないってことは
関数ポインタ配列でも使えということか?
0除算はチェックしなくていいのか?
118 :
114 :2007/03/08(木) 17:52:50
>>117 問題文にしろと書いてないのでしなくて良いと思います
三項演算子を使うんじゃないか?
>>114 /*テスト用コード*/
#include<stdio.h>
int function(int mode,int x,int y);
int main(void)
{
printf("1+2 = %d\n",function(0,1,2));
printf("1-2 = %d\n",function(1,1,2));
printf("4x3 = %d\n",function(2,4,3));
printf("10/2 = %d\n",function(3,10,2));
return 0;
}
/*以下、課題部分*/
/*(1) 第一引数は0から3までの数値しか入らないとし、それぞれ0は加算、1は減算、2は乗算、3は乗算を表す。 */
int function(int mode,int x,int y)
{
return mode == 0 ? x+y : (mode == 1 ? x-y : (mode == 2 ? x*y : (mode == 3 ? x/y : 0)));
}
こんな感じ?
ついでに、0除算チェック付けるならこんな感じだな return y == 0 ? 0 : ( mode == 0 ? x+y : (mode == 1 ? x-y : (mode == 2 ? x*y : (mode == 3 ? x/y : 0))) );
>>118 問題文で2と3が乗算になってるが
3が除算でいいよな
>>121 それだとどの演算でもy==0だと0が返るぞ
int function(int mode,int x,int y) { return mode == 0 ? x+y : (mode == 1 ? x-y : (mode == 2 ? x*y : (mode == 3 ? (y==0)? 0: x/y) : 0))); } だな
125 :
124 :2007/03/08(木) 18:14:17
まちがい (y==0)? (y==0?
サーセンwwwww return mode == 0 ? x+y : (mode == 1 ? x-y : (mode == 2 ? x*y : ((mode == 3 && y != 0) ? x/y : 0)));
>>114 関数ポインタ使ったバージョン
int add(int x, int y){return x+y;}
int sub(int x, int y){return x-y;}
int mul(int x, int y){return x*y;}
int div(int x, int y){return x/y;}
int function(int mode,int x,int y){
int (*func_array[4])(int,int)={add, sub, mul, div};
return func_array[mode](x, y);
}
出題者の意図としては関数ポインタ使って欲しいんだろうな。 typedef int (*op_func)(int, int); int op_add(int a, int b); int op_sub(int a, int b); int op_mul(int a, int b); int op_div(int a, int b); int function(int op, int a, int b) { op_func op_table[] = { op_add, op_sub, op_mul, op_div, }; return op_table[op](a, b); } op_*** の実装は省略。 わかるよな。 まぁ三項演算子使うなとは書いてないからどっちでもいいと思うけどね。
int function(int op, int a, int b) { #define s s##witch s((enum{add, sub, mul, div})op) { case add: return a+b; case sub: return a-b; case mul: return a*b; case div: return a/b; default: return 0; } #undef s } こうですか><
それはないだろ
131 :
114 :2007/03/08(木) 18:46:51
有難うございます。 授業担当の人がむかつくので三項演算子使って提出します。
授業担当がムカツクなら関数ポインタの方がよくね?
むかつくくらいならそいつの授業を受けない方が良くね?
>>130 じゃあもっとわかりづらくして提出しようぜ。一行で。
int function(int a,int b,int c){return a?a-1?a-2?b/c:b*c:b-c:b+c;}
>>130 見た目は美しいな!
だんだん、Code Golfみたいになってきたな。
レス番間違った。
>>134 宛。
定数を全廃して
int function(int a, int b, int c) { return a-- ? a-- ? a-- ? b/c : b*c : b-c : b+c; }
と書けそうな気がするのだが、--の評価が環境依存だったりするとまずい?
C99ならこんなんできるんだっけか。 int add(int x,int y){return x+y;} int sub(int x,int y){return x-y;} int mul(int x,int y){return x*y;} int div(int x,int y){return x/y;} int function(int op,int x,int y){return((int(*[])(int,int)){add,sub,mul,div})[op](x,y);}
>>136 条件演算子は副作用完了点だから大丈夫。
こんなのは? int op_sub(int a, int P){ int m=0, m9=0, o=0; return (m9^o^m)?0 //顔文字 :-P //顔文字 +a ;} //顔文字?
授業担当をイラつかせる解答を出すスレになりつつあるな。
>>137 int function(int op,int x,int y){return(*(op+(int(*[])(int,int)){add,sub,mul,div}))(x,y);}
こうしておけば完璧だな
orz=3 も追加してみるとか
まぁ、悪くはないんだけどさぁ・・・きんもぉ〜☆
おまいらまでいらついてどーするw
return(*(op+(int(*[])(int,int)){add,sub,mul,div}))(x, y) ↓ return(*(op+func_table))(x, y) ↓ return (*func_table[op])(x, y)
あ、(*func_table[op])じゃなく func_table[op] だ。
dクス 調べてみたら複合リテラルとか言うのか
アドバイスお願いします。 <問題> CString s[5]={"あ","1","問題","C++","ならびかえ"}; この文字配列をWindowsのソート機能のように名前順に並び替え、表示しろ。 [出力結果] 1 C++ あ ならびかえ 問題
150 :
149 :2007/03/08(木) 19:58:52
152 :
149 :2007/03/08(木) 20:03:13
>>151 ごめんなさい
【質問テンプレ】
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
CString s[5]={"あ","1","問題","C++","ならびかえ"};
この文字配列をWindowsのソート機能のように名前順に並び替え、表示しろ。
[出力結果]
1
C++
あ
ならびかえ
問題
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2005
[3.3] 言語: (C++
[4] 期限: 今週中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
なるべく短いコード数で行うとのこと。
>>149 #include <cstdio>
#include <algorithm>
#include <atlstr.h>
int main()
{
CString s[5]={"あ","1","問題","C++","ならびかえ"};
std::sort(s, s+5);
for (int i = 0; i < 5; ++i)
std::_tprintf("%s\n", (LPCTSTR)s[i]);
return 0;
}
154 :
149 :2007/03/08(木) 20:38:06
>>153 神速な対応ありがとうございます!!!
無事動きました!
迅速じゃね
アレだ、飛天御剣流の(ry
C書ける龍のキラメキ
>>114 BASIC書いてた頃の名残っぽいコード
int function(int a, int b, int c)
{
return (b+c)*(a==0)+(b-c)*(a==1)+(b*c)*(a==2)+(b/c)*(a==3);
}
んもう、きんもぉ〜☆
>>159 しかしそれ、cが0だと演算の種類に関わらず常にゼロ除算することになるよな
163 :
デフォルトの名無しさん :2007/03/09(金) 02:35:54
C++で行列のライブラリでいいものありますか? 教えてください。
BlackPepper
[1] 授業単元: C言語演習 [2] 問題文(含コード&リンク):ユニークな名前を生成するアルゴリズムを考えよ [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 3/31 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 特になし。
どの程度のユニーク(一意)さを求めているんだろう。 毎回単に乱数生成。稀にかち合ってもキニシナイ。 これまでに作ったものn個を記憶していて、その範囲内で重複なしを保証。 これまでに作ったものをメモリの許す限り記憶していて、重複なしを保証。
当分の間は秒数でおk
乱数で生成してハッシュチェインで重複を排除しなさいって意味だと勝手に妄想
名前空間も指定されてないのにユニークとな!?
>>167 で、評価の時にユニーク名を100万個作ったりすると99万個のコンフリクトが発生するわけだな。
typedef unsigned long serial_t; #define SERIAL_WIDTH (sizeof(serial_t) * 2) char* unique_id() { static serial_t serial = 0L; char format[10]; char* id; sprintf(format, "ID%%0%dX", SERIAL_WIDTH); id = (char*)malloc(2 + SERIAL_WIDTH + 1); sprintf(id, format, serial++); return id; } マルチスレッドから呼ばれることは考慮していない。 必要なら使用後にfree()。
# include <iostream> # include <fstream> int main() { std::ifstream ifs("/dev/urandom"); if(!ifs) throw "ごめんなさい"; for(int i = 0; i < 50; i++) std::cout << "abcdefghijklmnopqrstuvwxyzabcdef"[(unsigned char)ifs.get() & 0x1f]; std::cout << '\n'; } こんなので十分じゃない?
173 :
172 :2007/03/09(金) 12:51:04
よくみたら「C」か。しかも「アルゴリズム」か。 撤回します。
>>165 これでどう?
但し、無駄にファイルを大量に生成してしまうけど ^^;
#include<stdio.h>
int main(void){
char filename[FILENAME_MAX];
FILE *fp;
while(tmpnam(filename)!=NULL){
fp=fopen(filename, "w");
fclose(fp);
puts(filename);
}
return 0;
}
いっそ単なるカウンターでいいんじゃね? これならマルチスレッド考えても楽勝。
それもソリューションであってアルゴリズムではないような。
しかしアルゴリズムならコンパイラや言語を指定する必要ないよな。 擬似コードでいいんだから。
またフローチャートか
N88Basicでも使ってろ
擬似コードつーたらふつー似非ALGOLだろ。
182 :
デフォルトの名無しさん :2007/03/09(金) 19:07:35
今北。超ひさびさ。
>>176 のカウンター案を可逆暗号化してみては?
8桁1億-1ぐらいで十分っぽ
プログラムの存続期間中にユニークであればいいのか? それともUUIDのようなコンフリクトの可能性が限りなく零に近いユニークさが必要なのか?
標準Cでやるなら、現在時刻くらいしかノイズ拾えないから限界があるだろ
プログラムの存続期間中にユニークに1000ペリカ
実務的なソリューションとしては、DB立ててシーケンス叩くだけ。 アルゴリズムとしては排他制御付きカウントアップくらいか。
189 :
デフォルトの名無しさん :2007/03/09(金) 21:50:11
#include <stdio.h> #include <string.h> struct seiseki { char no[10]; char name[20]; }; void main(void) { struct seiseki seito[2]; int i ; printf("NoとNameの入力\n"); for( i = 0 ; i < 2 ; i ++) { printf("No入力\n"); scanf("%s",seito[i].no); printf("Name入力\n"); scanf("%s",seito[i].name); } for( i = 0 ; i < 2 ; i++) { printf("%s",seito[i].no); printf("%s",seito[i].name); } ファイルの扱い方かたがわかりません。scanfを使わずに 一気に読み込ませていくにはどうしたらいいのですか? まだ、ポインタの勉強はしていなにので、ポインタを使って のファイルの取り扱いもわかりません。 とにかく何か標準入出力のプログラムのコード書いてください!! 明日までであせっています。
>>189 標準入出力でいいなら
リダイレクト とか パイプ をググるといいよ
>>187 ( ;∀;)オモシロイナー
そして何気にコードの書き方うまいなー、読みやすい。
194 :
デフォルトの名無しさん :2007/03/10(土) 02:31:01
質問です。プログラミングではないです。 【質問テンプレ】 [1] 授業単元:ソフトウェアーテクニック [2] 問題文(含コード&リンク): 英語を訳しただけなので、訳が変かもしれないです・・・。 #1.コード維持を考えると、static libraryよりDLLの方が良いか。 #2.DLLの中の1つのクラスのヘッダーファイルが書き換えられたとき、 DLLに依存しているコード達を再び、コンパイルしなければならないか。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: MSVC [3.3] 言語: C++ [4] 期限: 2時間後 [5] その他の制限: よろしくお願いします。
#1. 規模による #2. どう書き換えたかによる
197 :
デフォルトの名無しさん :2007/03/10(土) 05:06:27
[1] 授業単元: C++プログラム [2] 問題文(含コード&リンク): 打ち込んだ文字のアルファベットだけをモニターに表示させる。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C++ [4] 期限: ([2007年03月13日17:m00まで] 基本的な問題で質問するのも恐縮なのですが、色々なHPを見たりと調べましたがうまく出来ませんのでこちらでご質問をさせていただきました。 課題の回答例としてですが、 hello, it is fine day today. と入力すると、 helloitisfinedaytoday 21文字 がアウトプットされます。 下記が自分の作ったプログラムですが、最後にarrayに含まれている一つ一つの文字を一つのcharにまとめるところで困っています。 助言よろしくお願いします。
198 :
続197 :2007/03/10(土) 05:07:11
#include<iostream.h> #include<cctype> #include<string.h> int main() { char h[100]; char str1[100]; char str2[100]; char a[100]; int f,k, g=0, n, z=0, v,u=0, r, j=0; const size=100; char c[size]; cout << "Enter a string" << endl; cin.getline(c, size); r = strlen(c); cout << r << endl;
199 :
続197 :2007/03/10(土) 05:09:06
for(v=0; v<r ; v++) { if (isalpha(c[v])) { a[u]=c[v]; z++; u++; } } a[u]='\0'; cout << a << endl; r = strlen(a); cout << a << endl; cout <<"count "<< z << endl; f=z-1; for (n=0 ;n<z ;n++) { strncpy(str1,a+n, strlen(a)-n); str1[strlen(a)-f] = '\0'; cout<<"Front " << str1 <<":"<< endl; strcpy(h," "); strcat(h,str1); // h[n]=str1[n] でも同じような結果が出ます。 } // end of for loop cout << h; return 0; }
201 :
続197 :2007/03/10(土) 07:29:07
YESじゃなくて礼くらい言えよな・・・
203 :
22 :2007/03/10(土) 07:41:12
あー。
>>22 の回答者だが、
もし
>>22 を使うのなら、copy_if()は下のものに直してくれ。
あのままでも「あのコードでは」たまたま問題はないのだが、カッコ悪い。
template<class I, class O, class P>
O copy_if(I beg, I end, O dst, P p)
{
while (beg != end) {
if (p(*beg)) {
*dst = *beg;
++dst;
}
++beg;
}
return dst;
}
204 :
デフォルトの名無しさん :2007/03/10(土) 11:02:10
>>202 201は自分ではないです。その節はお世話になりました。後もう少しなのでまたよろしければよろしくお願いします。
>>205 // ランダムサンプリング
s0 = a[rand() % (right - left) + left];
s1 = a[rand() % (right - left) + left];
s2 = a[rand() % (right - left) + left];
s = (s0 + s1 + s2) / 3;
[1] 授業単元: プログラミングの基礎 [2] 問題文(含コード&リンク): グループメンバー(4人)の名前、入学年度 学生番号、学科、組(A,B)を格納する構造体を宣言し、初期化せよ。 また、それらをキーボードから入力できるようにし結果をディスプレイに表示せよ。 但し、入力部分の関数、出力部分の関数、メイン関数にプログラムを分けよ。 その際に、入力部分の関数、出力部分の関数については引数は構造体へのポインタとなるようになっていること。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限:特になし よろしくおねがいします
208 :
205 :2007/03/10(土) 14:50:04
ごめんなさい、解決しました
>>206 解答ありがとうございます、しかし今回は三点が決まっていたので
s0 = a[left];
s1 = a[right];
s2 = a[(left+right)/2];
s = (s0 + s1 + s2) / 3;
でよかったみたいです
209 :
197 :2007/03/10(土) 15:48:34
みなさまどうも。 色々やっておりましたら解決しました。 どうもです。
「色々やっておりましたら解決」も何も、思いっきり答えが示されてるじゃんか
211 :
デフォルトの名無しさん :2007/03/10(土) 15:51:25
どこに?
212 :
207 :2007/03/10(土) 16:09:04
みなさまどうも。 色々やっておりましたら解決しました。 どうもです。
213 :
デフォルトの名無しさん :2007/03/10(土) 16:23:19
good job!
[1] 授業単元: C++ プログラミング [2] 問題文(含コード&リンク): ユーザーに整数の入力を求め、その整数が2, 3, 5, 7の数字の組み合わせで成り立つ掛け算の場合、その結果を以下のように表示する。 例)60 と入力した場合 60 is a multiple of 2, 3, 5. 31 と入力した場合 31 is not a multiple of 2, 3, 5, 7. [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: Dev-C++ Version 4.9.9.2 [3.3] 言語: C++ [4] 期限: 2007年3月13日19:00まで [5] その他の制限: ifやループを使わず、switchを必ず使いプログラムを構成する。 ifやループを使えば大体分かるのですが、switchを使った場合の計算のロジックが分かりません。 よろしくお願いします。
>>214 授業っていうところはif使ってはいけないとか変なことさせるんだね。
>>214 問題が曖昧でよく分からんな。
入力が22の場合の出力はどうなればいいの?
俺もわかんねーよ! 難しい課題がでるんですね。
>>214 if(x){...}else{...}
は
switch(x==0){case 0: {...} break; default: {...}}
で代用できる。
ループはgotoで代用できる。
220 :
214 :2007/03/11(日) 01:13:58
>>215 前回の授業でifとswitchをやり、それぞれ出た課題のうちの1つです。
>>216 教授に勧められたものを使っていまして、説明を見る限りではコンパイラはgccのようです。
>>217 すみません、説明が下手だったようです。
入力が22の場合の出力は、22=2*11なので「2 is not a multiple of 2, 3, 5, 7.」になります。
60の場合は60=2*2*3*5。よって、「60 is a multiple of 2, 3, 5」になります。
>>219 そりゃそうだけど
俺の感想としては
マジ?そんなのアリ?
いや Switch と 再帰処理でしょ やっぱ
>>220 2,3,5,7以外の素数がひとつでも使われたら
is not a multiple of 2, 3, 5, 7. でいいんだね?
224 :
214 :2007/03/11(日) 01:27:41
>>219 ifをswitchで代用する方法は分かりました。
ただ、gotoは習ってないので、使っていいのか分かりません。
>>223 はい、そうです。
>>214 スゲーダサいコードになった。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0, n = 0, rc;
int nn[5] = { 0 };
char *delim = " ";
switch (n) {}
rc = scanf("%d", &n);
(rc <= 0) && (exit(1), 1);
(n % 2) || (nn[i++] = 2);
(n % 3) || (nn[i++] = 3);
(n % 5) || (nn[i++] = 5);
(n % 7) || (nn[i++] = 7);
printf("%d is ", n);
i || (printf("not a multiple of 2, 3, 5, 7.\n"), exit(0), 1);
i = 0;
printf("a multiple of");
loop:
nn[i] || (printf(".\n"), exit(0), 1);
printf("%s%d", delim, nn[i++]);
delim = ", ";
goto loop;
return 0;
}
>>224 サブルーチンが複数あってもいいのか。
再起していいのか。
俺には難しい。
>>214 # include <set>
# include <iostream>
# include <iterator>
bool f(int x, std::set<int> &m)
{
int old_x = x;
x % 2 || (m.insert(2), x /= 2);
x % 3 || (m.insert(3), x /= 3);
x % 5 || (m.insert(5), x /= 5);
x % 7 || (m.insert(7), x /= 7);
if(x == old_x)
return x == 1;
return f(x, m);
}
int main(void)
{
int x;
std::set<int> m;
std::cin >> x;
switch(f(x, m))
{
case false:
std::cout << x << " is not a multiple of 2, 3, 5, 7.\n";
break;
case true:
std::cout << x << " is a multiple of ";
std::copy(m.begin(), --m.end(), std::ostream_iterator<int>(std::cout, ", "));
std::cout << *--m.end() << ".\n";
break;
}
}
間違えてifを使ってしまった。fの最後三行は return x == old_x ? x == 1 : f(x, m); にしてくれ。
231 :
214 :2007/03/11(日) 01:42:50
>>225 ありがとうございます。
ただ、gotoに関して、使っていいのかわからないので教授に聞いてみます。
>>226 自分がただできないだけだと思ってたのですが、そんなに難しい問題だったようですね。
迷惑かけてるようで…。
>>227 問題には何も書いてないのでちょっと分かりません。
教授に一旦聞いてみようかと思います。
再帰を習っているなら使っていいとおもうけど 習ってないことまで知っていないと解けない問題だとしたらどうかと思うし switch習ったばかりなのに妙にテクニックを駆使したら怪しまれるだろうし どうなんでしょうね。
234 :
214 :2007/03/11(日) 01:52:40
>>228 ありがとうございます。
プログラミング初心者の自分には見たこともないのもあり理解できていないので、勉強してきます。
問題文の不備なんだろうなーと思っても、無理矢理やる方法がないかをですね しかしこれには降参orz
>>234 いや、ifだのwhileだのforだのgotoだの使っちゃいけませんって状態で
stdc++のset<>だのcopy()だの、ありあえないからw
すぐにわからなくても良いよ
237 :
214 :2007/03/11(日) 01:58:07
>>233 再帰はまだ習っていません。
習ったことといえば、式の書き方とifとswitchのみなので。
どうすればいいのかわからないので、一旦教授に問い合わせて、何かあればまた戻ってきます。
手伝っていただいた方々、ありがとうございました。
switch は case の後に break; を入れてなきゃどうなるか?それを使ってやるとか?
fall-throughさせてもループできないので手詰まりですよん
たかが4回やそこらのループだから、単に手動展開すればよい。
ループ禁止、goto禁止、再帰禁止、標準アルゴリズム禁止となると本格的に手詰まりの様相だな。 思いつくのは、qsortのコールバックでqsort、raise+signal、atexitのハンドラ中でatexit など考えるだけで寒気がする手段ばかりだ。 あ、setjmp/longjmpがあったか。
>>240 最初そう思ったけどそういうものか?
>>228 1のときOK?
俺今作成中だけど
再帰使っている。
0とか負の値とかは対応してないよ。
>>240 2, 3, 5, 7を約数に含むという条件で考えてないかお?
244 :
228 :2007/03/11(日) 02:12:47
>>242 1のときはだめだ。0や負の数でもだめ。
2^32 個の case 書けばいいんじゃねw
ぶっちゃけ、使える手段があるのにそれを使わずにやれとかいう 無意味な制限や制約をする学校はレベルが低いとだけ言っておこう by トーマス氏の言葉の請負
>>243 >>225 の下のgotoで実装されたループを手動展開するだけだぞ?
たかだか4回程度回せばいいだけだ。
打ち切る時は
>>225 のように、exit()で逃げる。
#include <cstdio> int main(int argc, char **argv) { static int x[] = {2, 3, 5, 7}; static int n[sizeof(x)/sizeof(*x)]; static int i, j, u; switch(argv == NULL) { case 0: switch(std::scanf("%d", &argc) == 1){ case 0: return 1; } std::printf("%d", argc); switch(argc){ case 0: std::printf("is zero.\n"); return 0; } default: switch(i < sizeof(x)/sizeof(*x)) { case 0: switch(argc) { case -1: case 1: j || std::printf(" is a multiple of"); n[j] && printf(u++ ? ", %d" : " %d", x[j]); switch(++j < sizeof(x)/sizeof(*x)) { case 0: std::printf("\n"); return 0; } break; default: std::printf(" is not a multiple of 2, 3, 5, 7."); return 0; } break; default: switch(argc % x[i]) { case 0: argc /= x[i]; n[i]++; break; default: i++; } } } return main(argc, NULL); } // こんなもんか
道具の使いかたの勉強なんだから使う道具を制限するのも有りだと思うけどな。 さすがにこれはやりすぎだと思うが。
>>248 C++標準でmain()の再帰は許されていなかったはずだが。
setの代わりにフラグにしてみた。 引数に参照やポインタを使わないようにしてみた。 int func2(int x, int f) { int pre = x; switch(x % 2) { case 0: f |= 1; x /= 2; } switch(x % 3) { case 0: f |= 2; x /= 3; } switch(x % 5) { case 0: f |= 4; x /= 5; } switch(x % 7) { case 0: f |= 8; x /= 7; } switch(x) { case 1: return f; } switch(x - pre) { case 0: return -1; } return func2(x, f); }
>>253 つづき
いかにもswitchらしくしてみた。
void func(int x) {
switch(x) {
case 0:
case 1: printf("%d is not a multiple of 2, 3, 5, 7.\n",x); break;
default:
int f = func2(x, 0);
switch(f) {
case 1: printf("%d is a multiple of 2.\n",x); break;
case 2: printf("%d is a multiple of 3.\n",x); break;
case 3: printf("%d is a multiple of 2, 3.\n",x); break;
2chに書き込めなかったので省略
case 14: printf("%d is a multiple of 3, 5, 7.\n",x); break;
case 15: printf("%d is a multiple of 2, 3, 5, 7.\n",x); break;
default: printf("%d is not a multiple of 2, 3, 5, 7.\n",x);
}}}
ほんとのところ、一体どういうコードを期待してこんな問題 出したんだろうな……
>>249 まぁ、それでも効率よく使うんであればまだしも、何でもかんでも
制約つきで使えってのもねぇ・・・
32ビットなら再帰なしでもなんとかなった。 int func2(int x, int f) { x % 65536 || (x /= 65536, f |= 1); x % 256 || (x /= 256, f |= 1); x % 16 || (x /= 16, f |= 1); x % 4 || (x /= 4, f |= 1); x % 2 || (x /= 2, f |= 1); x % 43046721 || (x /= 43046721, f |= 2); x % 6561 || (x /= 6561, f |= 2); x % 81 || (x /= 81, f |= 2); x % 9 || (x /= 9, f |= 2); x % 3 || (x /= 3, f |= 2); x % 390625 || (x /= 390625, f |= 4); x % 625 || (x /= 625, f |= 4); x % 25 || (x /= 25, f |= 4); x % 5 || (x /= 5, f |= 4); x % 5764801 || (x /= 5764801, f |= 8); x % 2401 || (x /= 2401, f |= 8); x % 49 || (x /= 49, f |= 8); x % 7 || (x /= 7, f |= 8); return x == 1 ? f : -1; }
ほんま、きんもぉ〜☆なソースになっちゃうから、スマートなコードにしてもらいたいもんだわ。
/* ((x%m)+(m-1))/m --> 1 (if x%m != 0), 0 (if x%m == 0) */ #include <stdio.h> int main() { int x; scanf("%d", &x); int y = x*x; /* negative guard */ int z = 15 - ((y%2)+1)/2*1 - ((y%3)+2)/3*2 - ((y%5)+4)/5*4 - ((y%7)+6)/7*8; switch (z) { case 0x0: printf ("%d is not a multiple of 2, 3, 5, 7.\n", x); break; case 0x1: printf ("%d is a multiple of 2.\n", x); break; case 0x2: printf ("%d is a multiple of 3.\n", x); break; case 0x3: printf ("%d is a multiple of 2, 3.\n", x); break; case 0x4: printf ("%d is a multiple of 5.\n", x); break; case 0x5: printf ("%d is a multiple of 2, 5.\n", x); break; case 0x6: printf ("%d is a multiple of 3, 5.\n", x); break; case 0x7: printf ("%d is a multiple of 2, 3, 5.\n", x); break; case 0x8: printf ("%d is a multiple of 7.\n", x); break; case 0x9: printf ("%d is a multiple of 2, 7.\n", x); break; case 0xa: printf ("%d is a multiple of 3, 7.\n", x); break; case 0xb: printf ("%d is a multiple of 2, 3, 7.\n", x); break; case 0xc: printf ("%d is a multiple of 5, 7.\n", x); break; case 0xd: printf ("%d is a multiple of 2, 5, 7.\n", x); break; case 0xe: printf ("%d is a multiple of 3, 5, 7.\n", x); break; case 0xf: printf ("%d is a multiple of 2, 3, 5, 7.\n", x); break; }}
すみません記入漏れです。func_a等は呼び出されたことを確認するため printfなどで"a"等出力するだけで良いということでお願いします。
#include <stdio.h> typedef void (* F_FUNC)( void ); void func_a(void) { putchar('a'); } void func_b(void) { putchar('b'); } void func_c(void) { putchar('c'); } void func_d(void) { putchar('d'); } F_FUNC FUNC_TBL[] = { func_a, func_b, func_c, func_d, NULL }; int main() { int i; for (i=0; i<4; ++i) (FUNC_TBL[i])(); }
インデックス変数使うより、定義がNULLで終わってることを考えると ループ陽ポインタでNULL判定ループのほうがよさげな感じがするが typedefも用意されてるし
ぬるぬるで終わってるんだから 最後の呼び出しループはwhile使えって話じゃないかな int i=0; while(FUNC_TBL[i]){ (FUNC_TBL[i])();i++; }
>>264-266 さん
早い回答ありがとうございます、非常に助かります。
関数ポインタテーブルが初めてだったのとtypedefの妙な付け方に混乱してました。
提示してもらったソースを元に、for,while両方進めていきたいと思います。
ありがとうございました。
268 :
デフォルトの名無しさん :2007/03/11(日) 15:24:43
[1] 授業単元: C++ [2] 問題文(含コード&リンク): Recursive Functionを使って、入力したStringがPalindrome(回文 ((前後どちらから読んでも同じ語句))かどうかを判断するプログラム作る。例;radar = ada = d。 able was i ere i saw elbaやa man a plan a canal panama(スペースを抜けば)、もPalindromeですのでReturn Trueされます。 限定としてfunctionの中に strncpy(d, c+1, strlen(c)-2); d[strlen(c)-2] = '\0'; を使う(stringの最初と最後のcharacterを省く)。ファンクション使用なのでforループ等が使えなく、やり方がわからず困っています。頭の良いよろしくお願いします。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C++ [4] 期限: ([2007年03月17日17:00まで]
>>268 int check_palindrome(char *str, size_t len)
{
if(len == 0 || len == 1)
return 1;
else if(str[0] == str[len-1])
return check_palindrome(++str, len-2);
return 0;
}
>>268 bool Recursive(const char * c) {
size_t len = strlen(c);
if(len == 0) return true;
std::vector<char> buffer(len+1);
char * d = &buffer[0];
memcpy(d, c, len+1);
while(len > 1) {
if(d[0] == ' ') {
strncpy(d, d+1, len-1);
d[len-1] = '\0';
} else if(d[len-1] == ' ') {
d[len-1] = '\0';
} else if(d[0] != d[len-1]) {
return false;
} else {
strncpy(d, d+1, len-2);
d[len-2] = '\0';
}
len = strlen(d);
}
return true;
}
>>273 解放(FreeTree)が分からん……。
トラバースしながら開放していけばいい。
じゃあFreeTreeだけ代わりにどぞ。 void FreeTree(BinNode *p) { while (p != NULL){ BinNode*q; while(p->right != NULL){ q = p->right; p->right = p->right->left; q->left = p; p = q; } q = p->left; free(p); p = q; } }
278 :
デフォルトの名無しさん :2007/03/13(火) 02:41:32
C/C++って面倒な言語だけど、奥深くてやり甲斐あるんだよな。
面倒も何も、どの言語も基本は同じだし。
GCやらクロージャやらのある言語使ったことないの?
>>280 広義に言われてもなぁ。
インクルードファイルはあるし、ポインタはあるし
配列の範囲チェックもないし、その他も色々面倒なところあると思うけど。
>>280 メモリ管理も全部自分でやらなきゃなんないじゃないかよ。C/C++は。
Boostのshared_ptrとか言い出すなよ。
そんな知識もない奴がJavaだのVC++だのやっている方がうざいw
クロージャだけでもいいからCにぶちこんでくれんかのう
宿題ないね。
287 :
デフォルトの名無しさん :2007/03/13(火) 20:07:55
過去の良問を紹介してくれんかのぉ?
学校も本格的に春休みに突入したってことかねー。
厨房も本格的に暇になったってことかねー。
>>283 ならばstd::tr1::shared_ptrと屁理屈
でも時には自分で管理することが利点になることもあるよ
Cやった後に学校で見たJavaのソースの オブジェクト作りっぱなしジャーマンなコードに度肝抜かれた GCすげえと思ったけどC出身だと何か気持ち悪い。
外部リソースと紐づけられるものまで作りっぱなしでdispose()とかclose() とかいった解放メソッド呼ばないのはJavaでも行儀が悪い。
C言語マスターが(・∀・)イイ!
>>293 仕事だといろいろなしがらみがあってね…
でも、趣味でやるならおk!
仕事でCはあんまり使うの見てないなぁ な〜んかVBとJavaばかり
296 :
デフォルトの名無しさん :2007/03/13(火) 21:39:39
[1] 授業単元: C言語基礎 [2] 問題文(含コード&リンク): 1から100までの自然数を素因数に分解して出力しなさい 実行結果 1 = 1 2 = 2 3 = 3 4 = 2 * 2 5 = 5 6 = 2 * 3 7 = 7 8 = 2 * 2 * 2 9 = 3 * 3 10 = 2 * 5 ・ ・ ・ 99 = 3 * 3 * 11 100 = 2 * 2 * 5 * 5 [3] 環境 [3.1] OS:Windows xp [3.2] コンパイラ名とバージョン: Internet Navigware Cインタプリタ V4.0 [3.3] 言語: C言語 [4] 期限: [2007年3月16日13:00まで] [5] その他の制限: 勉強しながら頑張ってるのですが一向に進みません。 よろしくお願い致しますm( __ __ )m
>>296 #include <stdio.h>
void printFactors(unsigned i) {
unsigned j, b = 0;
if(i <= 1) printf("%u", i);
else for(j = 2; i != 1; j++) {
if(!(i % j)) {
i /= j;
printf("%s%u", b ? " * " : "", j--);
b = 1;
}
}
}
int main(void) {
unsigned i;
for(i = 1; i <= 100; i++) {
printf("%u = ", i);
printFactors(i);
putchar('\n');
}
return 0;
}
299 :
296 :2007/03/13(火) 22:41:06
>>298 ありがとう御座いますー>w<
僅か30分で・・・・・・自分の勉強不足を痛感してます^^;
実は課題があと2問あるのですが、これらもお願い出来るでしょうか。
よろしくお願いします (_ _(--;(_ _(--;
300 :
296 :2007/03/13(火) 22:42:38
問2 16進数を入力して、10進数に変換し、出力しなさい 実行結果 Input Num: >11 17 Input Num: >A0 160 Input Num: >1111 4369 Input Num: >FFFF -1
301 :
296 :2007/03/13(火) 22:43:33
問3 年(西暦)と月を入力して、当該のカレンダを表示させなさい。 (閏年も考慮すること) 実行結果 input year:2003 input month:1 ------------------------------ 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ------------------------------ 宜しくお願いします m( __ __ )m
これは…確実に入社のための宿題・・・!!
>>300 #include<stdio.h>
int main(void){
short value=0;
while(value!=-1){
printf("Input Num:\n>");
if(fscanf(stdin, "%hx", &value)!=1)
break;
printf("%hd\n", value);
}
return 0;
}
せめて文系で入社した人のための事前研修だと思いたい・・・
>>303 shortが16bitじゃなかったらおかしくならね?
>>305 じゃあそういう風にコメントしておけばおk
>>301 #include <stdio.h>
void zeller(int year, int month);
int main(void) {
int year,month;
printf("input year : ");
scanf("%d",&year);
if(year<=1582) return 1;
printf("input month : ");
scanf("%d",&month);
if(month<=0 || month>=13) return 1;
zeller(year, month);
return 0;}
void zeller(int year, int month) {
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int i,c,zw, zy=year, zm=month, zd=1;
if( (year%4==0 && year%100!=0) || year%400==0 ) days[1]=29;
else days[1]=28;
if(zm<=2) { zy--; zm+=12; }
zw = ( zy + (zy/4) - (zy/100) + (zy/400) + ((13*zm+8)/5) + zd) % 7;
printf("------------------------------\n");
printf("日 月 火 水 木 金 土\n");
for(i=0; i<zw; i++) printf(" ");
for(zd=1; zd<=days[month-1]; zd++,i++) {
printf("%2d ",zd);
if(i%7==6) printf("\n");
} printf("\n------------------------------\n");}
308 :
276 :2007/03/14(水) 00:13:31
309 :
296 :2007/03/14(水) 00:34:34
>>303 >>307 ありがとう御座います( ^▽^)
大変助かりました。
あと、問3なのですが、第1週だけ日にちと曜日がズレてしまうようです。
第4週は左詰になっていて問題ありませんでした。
for(i=0; i<zw; i++) printf(" "); printfの半角スペースが2ch投稿時に減ってしまったのだろう。 半角スペースを三つ分出力すればOK。
311 :
296 :2007/03/14(水) 02:38:22
>>310 綺麗に揃いました^^
皆様ありがとう御座いました m( __ __ )m
>>296 は入社した後にきっと後悔するんだろうなあ
なぜあの時自力で宿題をやらなかったのかと
>>287 前スレに貼り付けたネタ課題群でいいんなら貼るよ。
誰も回答しなかったけどw
ネタ課題で喜んでたのは貼ってた本人だけだろ…
>>314 春休みにおまえらが暇かと思って貼ってやっただけさね。
ネタ課題自体は歓迎するが、前スレのはどれもつまらん。
ネタ課題を貼ったのは俺だ、と自己主張するあたり 単なる目立ちたがり屋なんだろう。 調子に乗ってコテハンになるようなタイプだからシカトしとけ。
あらあら。随分ひねくれた受け取り方をするんだなぁ。 ま、いいけどね。
ここに居る住人の大半がひねくれ者さ。もちろん俺含めてな!
何この自作自演
ネタ課題貼るのはいいけど、おもしろい1問だけにしてくれよ・・・ おもしろくないネタ何個も貼られても・・・
ここでおもしろい課題なんて、ほとんど見たこと無いけどな。 実際に宿題であるかどうかなんて、意味あんの? 親切にもならない親切をした気になって宿題を解いてる奴なんていないだろ。
その後の人生を転落させられるかと思うと、宿題を解く意欲が湧いて来るじゃないか
ネタ課題を出していた奴がムキになって 必死で反論しているのが面白い ネタ課題自体は異常なまでにつまらなかったが
みんなで仲良くね
前から気になってたんだけど このスレで宿題晒してるのってどういう層? 情報技術系高校?
時期的に新入社員への課題じゃないか?
まさか新卒対象か? 春休みの宿題かなんかだと思ってた。 良い年こいた大人がレベル低すぎだろ・・・
>>328 新卒ってまだガキだよ
大学生が在学中にC言語なんか勉強するわけない
すまん。 当方馬鹿にされがちなゲー専生なんだが 以前大学三年生のCのプログラム見せてもらって愕然とした。 ちょっと間接的に養成問題作成の依頼が回ってきてるから 何出そうか考え中。
普段は答えてる側の新卒だけど、引っ越しの片付けやらなんやらで忙しくて課題が進まない 誰か代わりにやってくれって感じだ。宿題じゃないから頼めないんだけど orz
人に優しく
ええなぁ、新卒。俺は就職氷河期世代だから・・・(;ω;)
じゃ、俺が過去にスレにあった良さげな問題を一つ。 下のようなchar brock[8][8]で書いた図があります この図の■によって囲まれている□を他の文字に 書き換える。ただし、外接にある□は書き換えない。 ■■■□■□■□ ■■■□■□■□ ■□□□■□■■ □■□□■■■□ ■■■■□□■■ □■□□■■■□ ■□□■■□■□ □■■■□■□□ 要は下図のように■に囲まれている部分の□だけを書き換える。 ■■■□■□■□ ■■■□■□■□ ■□□□■□■■ □■□□■■■□ ■■■■**■■ □■**■■■□ ■**■■*■□ □■■■□■□□
ん〜、囲碁のゲームに使うのかな?
ペイントソフトという考え方もあるのう
俺はペイントルーチンかな、と思った。 しかし、ペイントにしろ碁にしろ外周と他の文字で囲まれたものが対象に ならないということから、違うな。
まぁ、囲碁ならあとは変わった文字の数を数えりゃ良いじゃん。まぁ、要するにそのアルゴリズムを どう有効活用するか、だな。どっちでも良いけどw
何となく幅優先探索が思い浮かんだ
風呂に浸かりつつ、 素直に塗っていくパターンだと外周に到達してのリトライ多発するから、 外周隣接の□エリアに対象外フラグを立てて、最後に手つかずの□だけ置換 すればいいか。 と考えて出てきたらすでにコード出てるし。
ほぇー 綺麗に書けてるなー
STLハァハァ
>>343 こういう関数のネーミングセンスある人って尊敬する
ネーミング仕様も普通コーディング規約にあるだろ
自画自賛しなくて良いからw
ひとつの聞きたいんだけど括弧つけるとき func( ) { } と func( ) { } ではどっちがいいのかな?見やすさとか
>>351 個人的には関数定義は後者。
前者はwhileとかforとかswitchとかで使うかな。
>>351 Cでは前者、C++では後者にしてる。なんとなく。
>>351 俺は全部後者で。俺は前者だとブロックが分からなくなってしまうので
355 :
351 :2007/03/15(木) 00:43:04
>>352 >>353 >>354 ありがと
私はすべて後者なんだよね
でも、ほかの人のソース見てると前者が圧倒的に多くて
私だけ違うのかなぁと思った
人によってそれぞれっぽいのでこのままでもいいかな?なんて思ってみたり
>>355 > ほかの人のソース見てると前者が圧倒的に多くて
そんなことはないんじゃないの。
上はJavaスタイルだからJavaのコードなら普通だし、その流れで
C++でも使われることはある。
ただ、K&RともANSIともBSDともGNUともLinuxとも違うスタイルだし、
Cでそういうコードは俺はほとんど見たこと無いぞ。
あ、「関数定義以外の」ブロックをそう書くのは普通だけどね。
357 :
351 :2007/03/15(木) 00:56:33
>>356 そうかなぁ?
けっこう見るような気がするんだけど
それと言葉足らずでゴメン
関数は後者だけど ifやswitch、for、whileなどは前者が...と言う意味
私は分岐処理や構造体宣言などのときも後者なんだよね
>>357 なんだ。関数以外のブロックの話ね。なら全然普通。K&Rはそのスタイルだし。
ただし、後者のスタイルも全然普通。ANSIはこっちだし。
コーディングスタイルの話は他所でやってくれたまえ
360 :
351 :2007/03/15(木) 01:04:56
>>358 そうか
スタイル変えたほうがいいのかなぁとかちょっと本気で思ってた
ありがとう
>>359 すみませぬ
字下げやらで括弧の始まりと終わりの位置が揃っていた方が見やすいかもしれんので 俺も後者を採用しようかと。今までなんとなく前者だったが。
いままで”関数の宣言ブロック”とか、”for()にくっついたブロック”とか言う風に ”〜のブロック”って言うブロックを修飾するものの意味で <〜>{ } って書いてた <〜> { } って書くと何かずれてる感じを受けるんだよねぇ
後者はプロトタイプ宣言しようとするときも 一行コピペしてちょこっとやれば完成するから便利。
364 :
335 :2007/03/15(木) 05:40:54
>>274-278 解答ありがとうございます
レス遅れてしまいすいません
今回の問題は自動解答してくれないので、動くものを送信させていただきました
ほんとうにありがとうございました
C++の問題なのですが、 I V X L S D Mの文字を使い、 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 と決まっています。 例えば、MCCLVIIなら1000+100+100+50+1+1=1252というようになります。 そしてインプットファイルは MCCXXVI CV + MCCXXVI MCCXXVI / ・ ・ ・ ・ ・ のようになっており、同じ行にある二つの数字を、 +なら足し算、-なら引き算、*ならかけ算、/なら割り算してアウトプットしなければなりません。 インプットファイルから数字というか文字を取り出すところからもう分かりません。 どなたかお力を貸してもらえませんか?
インプットファイルの書式が全部同じなら ホワイトスペースまで読んで、3つに区切って 1文字ずつ調べて数字に変えて足していく。 で、最後の演算子を調べて計算。 これを繰り返し
CDやIXなんかの処理をする必要はあるの?
逆順になってても、そのまま計算しちゃって構わないんじゃないかな
はぁ?
>370 CDは400、IXは9。 どうやってそのまま計算するの?
373 :
370 :2007/03/15(木) 16:19:24
すんません、勘違いしました……
質問者はローマ数字の表記を想定しているんだろうか
しかし、質問出しておいて、10分も経たないうちにスレを見なくなる(反応しなくなる)ってのは、 mixiとかにマルチするのが忙しいからなのだろうか。
>>366 MCCLVII って 1257だよな?
ローマ数字の文字列を整数に変換する関数作ってみた。 int r_to_n(char *p){ char roman[] = {'M','D','C','L','X','V','I'}; int num[] = {1000, 500, 100, 50, 10, 5, 1}; int i, sum = 0; for(i=0; i<=6; i++) { while(*p==roman[i]) { sum += num[i]; p++;} if(i%2) { if(*p==roman[i+1]) { if(*(p+1)==roman[i-1]) { sum += num[i+1] * 9; p += 2;} else if(*(p+1)==roman[i]) { sum += num[i+1] * 4; p += 2;}}}} return sum;}
mixiのコミュとか低レベル過ぎて噴いたwww
#include <ctype.h> #include <string.h> int roman2dec(const char *s) { static const char *v = "IVXLCDM"; char *p; int r = 0, a, b = 0; for(; *s; s++) { if(!(p = strchr(v, toupper(*s)))) break; for(a = 1; v < p; p--) a *= (p - v) % 2 ? 5 : 2; if(b && a > b) r += a - b, b = 0; else r += b, b = a; } return r + b; } 俺も書いたから置いとく
>>366 は書いた後一切見ていないか
>>367 を見て書き直すのがめんどーで消えた可能性が高い
いやなタイプだな
>>367 の尊大な態度が気に食わなかったんじゃないの?
どうでもいいだろ・・見てようが見てないだろうが 相手の動向チョコチョコ気にしてお前らは童貞かよ
ID出ないからといって粋がってる奴がいるな
どうせ暫くはいかにうまくローマ数字をintに変換するかの話題で進むから問題ないよ ↓
■松たか子語録 「生まれ変わり?信じてないよ。あたしはいつだって松たか子なんだから」「ガキなんてのはこうやってにらみつければ 泣き止むんだよ!」「あたしは男優。だからラブシーンはホモだよ(笑)。」「幸四郎の作る飯はいつも美味いよ。」 「もこみちの演技はもっと愛されていいはずなんだけど。」「玄米ビスケットなんてガキは食わないよ(笑)。あたしは 知ってる。」「お嬢(美空ひばり)が逝ったとき思ったね。あたしがピアフになる、って。」「いじめなんか図工の時間で やり返すんだよ!!」「ガキの頃なんて欲の塊。餓(かつ)えるばかりの鬼なんだから、ガキは"ガキ"でいーの。」 「白百合(高校)はつまんなかった。どうもブルースがない。」「人様に運気がどーのこーの言うもうろくばあさんの ウンコは臭いもんよ。」「兄貴(染五郎)の最初のガキはあたしがこの手で引っ張り出してやった。」「どんなに雪が 吹雪いてたって、あたしん中は一年中が春さ。」「前張りする意味がわかんない。」「最近のタバコは肺にガツンと くるものが少ないね。」「ズバコンはズバコン。松たか子は松たか子。ただ凛としている。」「ホンコンさんとは魂が 生き別れたと思ってる。」
逆ポーランド記法だからスタックで詰めばええんとちゃいますのんと思ったけど 1行に常にひとつの演算子しか出ないならスタックいらんか
どの宿題のこと?
389 :
366 :2007/03/15(木) 18:04:46
すみません、質問しておいてあろうことか眠ってしまいました。
みなさんありがとうございます。
>>377 ,379さんのが答えなのでしょうか?
>>389 おはよう
で、IVはローマ数字どおり4とするのか
それともIV=1+5=6とするのか、どっちにするの?
391 :
366 :2007/03/15(木) 18:10:32
>>390 IVは1+5の6ですね。
最終的にはローマ数字ではなく数字で表記です。
393 :
366 :2007/03/15(木) 19:53:11
だめだ全然わからない… M D C L X V Iはどうやって数字に変換させるんですか? 関数を使わなければいけないのは分かるんですが…
>>393 char taiou[2][7] = {
{'I', 'V', 'X', 'L', 'C', 'D', 'M'},
{1, 5, 10, 50, 100, 500, 1000}
};
>>394 手抜きすぎw
だいたいcharだと500、1000は保持できないだろ
もういっそ switch 使え
#define M 1 これで
#define I 1 間違ったこうか・・・
>>393 >>377 案だとローマ数字の文字の配列と、対応する数の配列で添え字あわせて引いてる
>>379 案だとIVXLCDMってのが5倍、2倍、5倍、2倍・・・になってることから計算
どっちかしかないと思うよ
俺が採用担当ならswitch文使った奴を採用するなw 素直が一番いいよ。 #include <stdio.h> #include <string.h> int str2int( char *str ) { int i; int sum = 0; for (i = 0; i < strlen(str); i++) { switch (str[i]) { case 'I': sum += 1; break; (省略) default: break; }; } return(sum); }
宿題はトリッキーな回答をしてなんぼだろ…
飲みながら採点してる教授が酒吹くような解答が最適です。
採点しているのはバイトの大学院生という事実・・
俺、関数名にはほとんどアンダーバー使わないんだがどうなの?
俺もアンダーバーは変数にしか使わないが 特にどうってことない。
むしろハイフン使わせてくれ・・・いや、やっぱなしでw
アンダースコアをアンダーバーというやつは氏ねばいいよ
アンダースコートを想像した
[1] 授業単元:プログラミング1 [2] 問題文(含コード&リンク): 実数xと整数nを受け取り、ベキ乗(xのn乗)を計算して返す関数を作成せよ。ただし、main関数では適当なデータをキー入力し、 関数を呼び出した後は、ベキ乗の値を出力せよ。ここでは、nが負の値である場合も考慮すること。 [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: VC++ 6.0 [3.3] 言語: C++ [4] 期限: 3月16日14時 初歩的な知識の範囲でよろしくお願いします。
整数乗かよ・・・
これは低レベルすぎる宿題 講義の内容もこんな感じなのか
前スレで俺が書いた不完全?なものを出しておくけど、誰か直してw #include<iostream> using namespace std; double mypow(double x,int n) { int i; double pw=1.0; if(x==0.0) return 0.0; for(i=0; i<abs(n); i++) pw*=x; if(n<0) pw=1.0/pw; return pw;} int main(void) { double x; int n; cout << "べき乗するプログラム\n"; cout << "基数を入力して下さい。 > "; cin >> x; cout << "指数を入力して下さい。 > "; cin >> n; cout << x << "^" << n << " = "<< mypow(x,n) << endl; return 0;}
double mypow(double x, int n) { double pw = 1.0; if (n >= 0) for (int i=0; i<n; i++) pw *= x; else for (int i=0; i>n; i--) pw /= x; return pw; }
double mypow(double x,int n) { double pw; for(int i = 0, pw = 1.0; i < (n<0 ? -n : n); i++) pw*=x; return n<0 ? 1.0/pw : pw; }
0の0乗って0?それとも1?
1
基本的に定義されない
>>418 言うまでもなく0。何かの0乗は1というのは知られているが、0そのものは
ナニを乗算しても0だし。
数学の世界では0^0は0/0と同じで不定とする場合が多い。 プログラミングの世界では0**0=1にするのが普通。
そもそも n^0 = 1 というのは、底が同じで指数が違う計算にて n^2 * n^-2 を計算した場合、 n^(2-2) = n^0 となった場合 本来の結果を元に0乗が1と定義できるというのが証明されているからであって 指数同士の計算をしないんであれば、突然ある数の0乗というのは表れない。 逆に定義しちゃっているからって、1は何かの0乗だとか、敢えて言う必要もなし。
んで、n=0なら何を乗算しても0だし、当然0乗も0と言うまでもないが 前述のように、底が0の値の指数同士の計算をするなんてこともないんで 普通じゃ0の0乗はなんだ?なんて問題にもぶちあたらない。
まぁ、食べたものは尻から出てくる流れの中で、げろで出しちゃったからって わざわざお尻から体内に戻して出す必要もないってこったね。
言語障害が発露しました
証明ってのは何か違和感覚える 指数関数は「P(有理数)をN回(自然数)掛け合わせたら」という 累乗の計算の自然な拡張として定義されているのではなかったか 階乗とガンマ関数の関係みたいに
そう考えるとPENが意味深な物に早変わり
>>422 いや、数学の方でも 0^0=1 な気がする
多分 0!=1 と似たような理由
↓数学科の人、あとよろしく
>>429 気がするならまず実装されているpow関数で結果を見てみな。
ありもしないことを勝手に言うと、数学会の人からクレームが来るよw
>>431 はい、そういうのが本当に正しい結果を出していると勘違いしている人ハッケソ
そういうのは人間が作ったプログラムで、正しい結果を出しているとは限らないんだよ。
実際、エクセルでPOWER関数でやってみたら、答えは出なかった。
Cのmath.hを取り込んでpowでやってみたら、エラーが起きたけど結果は1と出た。
しかし、それは何かの0乗は1と言うルール作りをした上で、0の0乗も1としてしまったミスだと考えられる。
実際のところ、0の0乗なんて数式は計算上出てこない。
>>423 にあるように、nが0以外なら数値として残るが、敢えて意味もなく0の指数同士を
計算する必要性のある計算が存在するだろうか?あるならそこから実例を出して証明してくれい。
そうだね。二項展開とマクローリン展開だね。
詰まる話が、最初っから0の0乗というものは存在しないということ。 8が2の3乗と書き換えられて、1/8が2の-3乗と書き換えられ、それらの値を乗算するとき 2^3 * 2^-3 = 2^(3-3) = 2^0 となってしまう場合の帳尻あわせ程度だろ。 わざわざ1という数字を持ち出して、nの0乗に置き換えて書く奇妙な奴がいたら きんもぉ〜☆ とだけいっておく。例えば 1+1= 3^0 + 4^0 と書き換えて計算する奴は きんもぉ〜★
↓は1が出てきたら n(任意の自然数)のべき乗と置き換えて計算するプログラムを作っている 間違いない きんもぉ〜★
分かった。俺が悪かった そうだよな、擦れ違いな話しを振った俺が悪かったんだよ。 だからもうやめれ。痛々しい……
↑0を発見したインド人に謝れ!
>>435 いや、さすがにそこまで特殊なことを考える奴はおらんだろ……
0の発見は革命的であってなぞが多く秘められている・・・ あぁ、頭の良いインド人と血痕死体
結論から言うと、0乗というのはもともとあったものじゃない。底が同じ値の指数同士の乗算、除算で 出てきちゃった、出来ちゃった婚の計算式があったから。最初っから0乗するなんて誰も思わんだろ。
444 :
デフォルトの名無しさん :2007/03/16(金) 04:41:45
んじゃ聞くけど、そもそも0乗って何なの?何で底となる値を掛ける回数が0回なのに 値として存在するの?直感だの感覚的じゃなくて理屈で言っているんだが?w 人間が0乗を1と定義した理由はあげられている。それを用いて0の0乗まで1にする必要はない。 そもそも、乗算や除算において、0の0乗が出てくる場面と、0の0乗を1にしなきゃいけない実例もあげてくれ。 それがなきゃまず 議論する 必要もない。追求して数学の歴史に名を残したいなら 数学会でそれに関する筋の通った研究結果を論文にして発表してくれ。
処理上の0と理論上の0は実態が違う為
0^3 * 0^-3 = 0^(3-3) = 0^0 = 1 ? = 0 * 0 = 0 ? ちなみに、0の0乗以外は0でした。そりゃ0を何回かけても0だ罠。 0の0乗が1になるのはどんな他の理論をこじつけても説明がつかない。
>>445 それじゃ、
>>446 の結果は0のn乗数にして表したとたん、答えは1になるんだ。恐ろしいな、0って。
お舞ら、数学者じゃないんだからほど度々に汁
450 :
443 :2007/03/16(金) 04:59:41
>>444 じゃあ逆に聞くけど「2の無理数(例:ルート2)乗」って何?
指数が自然数ではないもの、つまりゼロや負数や無理数も扱おうとするのならば、
それは必然的に「PをN回」ではなく、それを拡張した(と見なせる)
指数関数と呼ばれる領域で話をしなければならない、と繰り返しているだけだよ。
ついでに言うと俺はゼロのゼロ乗が1だとは一言も言っていない。
不定なものは不定。ただ、1を返してくれると便宜上楽ではある。
俺が自分の研究で書くプログラムの中に出てくる中で実際に出てくるのはもちろん2項展開。
0の恐ろしさを分かっていないなんてなんて時代遅れなんだ! 蟹にもプログラマなら気づくだろうに。 逆に考えるんだ、0が変わるんじゃない、0に変わるんだ。
>>450 うん、だからそういうもともと存在する値と、存在しない値に対して1と定義したものとじゃ
もう理屈云々の話は通用しないんだよ、ごちゃごちゃうるさいから後は数学板でやれボケ
453 :
443 :2007/03/16(金) 05:04:52
>>452 だから理屈の話をしているのは終始俺だというのにw
>>450 数学版か数学の教授あたりと議論したほうが良い答え出ると思うよ
マは数学の専門家じゃないしね
455 :
デフォルトの名無しさん :2007/03/16(金) 05:20:08
こいつ最高にアホ↓ じゃあ逆に聞くけど「2の無理数(例:ルート2)乗」って何? じゃあ逆に聞くけど「2の無理数(例:ルート2)乗」って何? じゃあ逆に聞くけど「2の無理数(例:ルート2)乗」って何? じゃあ逆に聞くけど「2の無理数(例:ルート2)乗」って何? じゃあ逆に聞くけど「2の無理数(例:ルート2)乗」って何?
……なんで?
ついて行けなかったのが悔しいんだろw 大学の教養レベルどころか大学受験レベルで十分足りるようなもんだが
ああやって他の理論を持ち出して、極限だの言われても、そもそもどうして0乗が出てきたか? って考えたら、他の理論を当てはめる意味すらない。まっ、追求のためにやっているんだろうけど まずは指数同士の計算の帳尻あわせで1にしないと何になるの?指数同士の計算を禁止 せざるを得ないだろ。
459 :
443 :2007/03/16(金) 05:31:58
>>455 数を掛け合わせる「回数」にこだわっていたので無理数を例に出しただけだけど?
2^(2^1/2) という値は別に何かの極限操作ではなく、
ある定まった値として存在するんだよ、という話だね。
例えば sqrt(2) の代わりに pow(2, 0.5) と書くのを普通に受け入れられるなら、
既にその人は累乗ではなく一般的な指数関数の話をしているので、
「ゼロ乗なんて最初から存在しない」とは主張できない、と。
>>459 べき乗の指数が何を意味しているかについても理解してくれ。
なんか、基本を無視して勝手に無理な話を展開させている奴は、数学会じゃなくて
哲学でもやってな。0の0乗を1にしたら、今度はそれを用いた数式がおかしくなるだけ。
461 :
443 :2007/03/16(金) 05:38:39
だから俺は最初から「ゼロのゼロ乗は不定だ」と言っていると言うにw 実際の計算ルーチン中に使うときには 0になって欲しかったり1になって欲しかったりしたので pow0() と pow1() って関数を定義して使ってたけどさ。
>>443 気持ちは凄く良く分かる。 (ついでに俺の勉強にもなったので、感謝もしてる)
でも、ここは諦めてスルーしたほうが良さげ。
これ以上はどんだけ説明してもスレの無駄遣いにしかならんと思う
>>412 以降、宿題は出とらんわけだし
次の質問が来たら、きっと何事もなかったように元に戻ると期待
Radiumさんとこのブログはほんとタメになるよねぇ
宿題が来るまではいいんジャマイカ 宿題が来ても続けてたら死んでもいいけど
てか、0^0なんて出てこないとかDQNの言いぐさだろ (aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n) だから便宜上0^0=1と定義しておかないと aかbが0のときに全体が0になっちまう この程度センター試験レベルだろ?
466 :
デフォルトの名無しさん :2007/03/16(金) 06:28:54
>>465 お前がどこの大学に行ったのか(・∀・)ニヤニヤもんだなw
間違ってるなら教えてもらいたいんだが
468 :
デフォルトの名無しさん :2007/03/16(金) 06:33:14
>>465 ねぇねぇ、君ぃ。それって aX+bY = 0のときのことを考える必要があるのかい?w
は? Σの各項について n=0のときa^0 X^0 b^N Y^N n=Nのときa^N X^N b^0 Y^0 だろ? XもYも変数だぜ?
>>468 はXやYを変数のままべき乗を展開してしかる後に積分するとか
想像もできない世界に住んでるんだよ。
Mathematicaとか触ったこともないんだろうなあ……
ずっとageで的外れなこと書いてる子じゃろ そっとしとき
理解できない話題なのに必死で絡んでくるのはまぁ可愛いと言えなくもない
あらあら、勝ち誇って間違った理論を持ち出してワロスw ax^2 + bx + c = 0 (a≠0) にの二次方程式の解おいて、a=0のときのxの二次方程式の解を求めろ みたいな矛盾を持ち出しちゃったようなこと言われても困る。公式じゃa=0じゃ分母が0になるから矛盾するし。
つまり、XかYのどちらかが0になる場合、それは成り立たないのが筋ってもんじゃ〜ないかね?
いらないと判断すれば計算すらしない。それがプログラマ。
lim(t^0)=1 t->+-0 ってこと考えると1な気がするけどな
どうやら間違った理論を吐き出した奴は、その理論をお尻から入れなおして 後でトイレで出すおつもりです。きったねぇ〜〜w
>>473 何を言ってんだお前は?
暇だから一応マジレスするが、
(3x+2y)^100 を展開しろと言われたら、普通の人は
Σ 100Cn (3x)^n (2y)^(100-n)
と答えるわけ。もちろんnは0から100まで。
これを一般化して、ここで言う2や3や100をa,b,Nとしてもこの式は成り立つ。
しかしaもしくはbがゼロの場合、加算する項の最初または最後に0^0が出てくる。
これを0とすると(0x+y)^2=0といった不合理な結果になってしまうので、
便宜上1と定義しておいた方が便利だ、ということだ。
これがこのスレのかなり上の方から出てくる「2項展開」の意味だよ。
もしかしてxやyを見た瞬間に方程式だと思い込んでたんじゃなかろうな……?
恒等式だぜこれは。
479 :
本日の赤っ恥さん :2007/03/16(金) 07:12:00
465 名前:デフォルトの名無しさん 投稿日:2007/03/16(金) 06:24:22 てか、0^0なんて出てこないとかDQNの言いぐさだろ (aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n)
480 :
デフォルトの名無しさん :2007/03/16(金) 07:13:11
>>478 変数の係数を0にした場合、変数そのものが何であろうと
その項が0で存在しないんだが?要するに公式に当てはまる条件に非ず。
頼むからどこで習ったか教えてくれ。お前の出身校にクレーム入れて
就職ブラックリスト入りしてやるからw
>>480 落ち着いて式を展開してみようか。
話を簡単にするためにb=1,N=2とすると……
(ax+y)^2 =
2C0 (ax)^0 y^2 +
2C1 (ax)^1 y^1 +
2C2 (ax)^2 y^0
さて、ここでa=0とすると、最初の項だけが残って……
(0x+y)^2 = (0x)^0 y^2
……さて、コメントを頼む。
なお、東京で5番目の進学校を経て京都の百万遍大学を出ております。
482 :
デフォルトの名無しさん :2007/03/16(金) 07:43:18
>>481 落ち着くのはお前。勝手に変数xをなくすために係数を0にするな
お前、数学板に言ったら笑われるよ。どこの学校だ?教えろ。
就職内定ブラックリスト入りしておくから。
483 :
大うそつきがなんかほざいてるよw :2007/03/16(金) 07:44:00
なお、東京で5番目の進学校を経て京都の百万遍大学を出ております。 なお、東京で5番目の進学校を経て京都の百万遍大学を出ております。 なお、東京で5番目の進学校を経て京都の百万遍大学を出ております。 なお、東京で5番目の進学校を経て京都の百万遍大学を出ております。 まさか、京都産業大学?w
484 :
デフォルトの名無しさん :2007/03/16(金) 07:46:35
>>481 頼むからxを無視した展開をしないでくれ。お前のそれをこじつけるのは不可能。
単純に bY^N だけやれば良いから公式に当てはめる必要もない。
もっとつきつめると、有効な変数が2つもないんで aX + bY と言う形で存在していないんで
明らかに矛盾。まるで二次方程式の解にx^2の係数を0にして解の公式い当てはめちゃったのと同じ矛盾。
これが
ゆ と り 教 育 世 代
クォリティーか、面白い。
485 :
デフォルトの名無しさん :2007/03/16(金) 07:51:01
それを用いて無理に0^0を出して、合わないから0^0=1を定義するのか 面白い、ただのバカだろ。頼むから数学会にも顔を出すな、低学歴
……すまん、誰か
>>484 を翻訳してくれ。
絶好調なんだか苦し紛れなんだか、それすらも分からん。
本物の学歴コンプを初めて見た
488 :
デフォルトの名無しさん :2007/03/16(金) 07:53:44
>>486 =
>>481 =専門学校(プ
お前の理屈を言っちゃうと、0で除算も何か定義しないと大変だなw
>>484 係数に0があるかないかでいちいち場合分けするよりも
0^0=1と「便宜的に定義」した方が楽だし、この展開式をより一般化できるだろ?
「もっと突き詰めると」以下はマジで理解できなかった。
俺の頭が悪いらしいんで、もう少し噛み砕いて説明してもらえないかな?
490 :
デフォルトの名無しさん :2007/03/16(金) 08:02:21
大学の名前を出した瞬間に連投のペースが加速したのが悲しすぎる
二次方程式の解にしても、重要なx^2 そのものを0にしないという条件で x = -b±√b^2-4ac / 2a が出ているからこそ成り立っている。 まぁ、x^2を0にした場合、bx + c = 0 の形から解を求めるだろ? それと同じで、最初っから変数の係数が0でその重要な変数がないなら ないなりの公式が出てくるのに、何で勝手に途中で0を入れて矛盾した状態で 公式を当てはめるのか?お前のやっていることそのものが矛盾。 これ以上は数学板で議論してこい。
あとは、その矛盾から筋の通らない0^0を導いて1と定義するなんて言わないこと。 俺も大学には通ったけどさぁ、あんたと同じ京都のどこかの大学だったけど 地元の京都人と知り合いになったが、そいつがひねくれものでさぁ。 あんたみたいな屁理屈理論を俺によくぶつけてきて、俺が理屈で返したらこういわれたよ。 「でたーーー、へ・り・く・つ」ってね。屁理屈はお前で俺は理屈(理論に基づいて)話してんのにだよ・・・とほほ orz
公式と聞いて2次方程式しか出てこないのがこの子の限界かあ……ww
いや、本来の理屈にあった実例を出してんだが? なんで重要な変数の係数を0にして、そのもの自身を無かったことにして 本来あるべきときの公式を無視して導く?んじゃa=0のとき、二次方程式の解の公式で bx + c = 0 でも通用するのか?しないからって何かこじつける定義をして良いのか?バカじゃね? 一生数学会に顔を出すなよ、ヘタレプログラマー。
とりあえず、a=0になっちゃうと2aが0になって、0で除算という矛盾が生じるので 1/0 = 1 とかおかしなこと言うなよ。まぁ、それでもx^2そのものが0だった場合の結果に 公式から出る値が一致しないけどなw
そもそも0^0の理屈をググルで証明しようとした間抜けなので
例えばユーザーが入力したa,b,Nから(ax+by)^Nを展開するコードを書くとき、 aがゼロならby^Nでbがゼロならax^Nでそれ以外なら2項展開で、とするのと、 「便宜的に」0^0=1と定義した上で一義的に2項展開使うのと、 果たしてどちらがスマートか、という話なんだが (もちろん俺が書いた実例。なおa=b=0でないことは保証されていた)。 数値計算ってジャンルに少しでも首突っ込めば誰でも嫌でも目にするし、 高校生に2項展開教えるときには必ず触れる部分でもある。 言うまでもなく、必ず「0^0は不定である」と付言するんだが。
500 :
本日の大恥DQN大学卒 :2007/03/16(金) 08:28:32
465 名前:デフォルトの名無しさん 投稿日:2007/03/16(金) 06:24:22 てか、0^0なんて出てこないとかDQNの言いぐさだろ (aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n) だから便宜上0^0=1と定義しておかないと aかbが0のときに全体が0になっちまう この程度センター試験レベルだろ?
501 :
デフォルトの名無しさん :2007/03/16(金) 08:29:54
>>499 プログラミングではちゃんと if 文で条件分岐するんで、プログラミング素人のお前が
何ほざこうがうざいんだよ。頼むからキムチ臭い口は閉じてろ、日本語が理解できない在日。
お前が出るべきは朝鮮関連の大学だったのに、歴史ある日本の京都の大学なんて
生活保護のお金で学費を支払ってたのか?この野郎!
503 :
デフォルトの名無しさん :2007/03/16(金) 08:30:48
てか、0^0なんて出てこないとかDQNの言いぐさだろ (aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n) ↑の式を用いて勝手に矛盾の生じる数値を途中で入れて 矛盾した結果から0^0=1を導くバカw
>>496 は高校生に2項展開を教えているときに
「先生、a=0だったらどうなるんですか?」と聞かれたらどう答えるんだ?
「当然0^0が出てくるが、これは本当は不定だ、ただこの場合は
1と便宜的におくとこの公式はより一般的になるね」と
まともな教師だったら答えると思うんだが、
>>496 は
生徒の脳裏にその思考が浮かぶより先に
「この公式はその場合適用できないんだ! 考えるな! 考えたら殺す!」
とか叫ぶんだろうか。
無理数を発見した弟子を処刑したピタゴラスみたいだなw
>>501 は受験戦争には惨めな敗北を喫しましたがその代わりにプログラムのプロになりました。
そんな彼のプライドを傷つけるようなことはしないであげてください><
これはもはや虐待です><
506 :
まだ噛み付いてきている自分が墓穴を掘っていることに気づかないDQN :2007/03/16(金) 08:43:30
465 名前:デフォルトの名無しさん 投稿日:2007/03/16(金) 06:24:22 てか、0^0なんて出てこないとかDQNの言いぐさだろ (aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n) だから便宜上0^0=1と定義しておかないと てか、0^0なんて出てこないとかDQNの言いぐさだろ てか、0^0なんて出てこないとかDQNの言いぐさだろ てか、0^0なんて出てこないとかDQNの言いぐさだろ ↑お前ガナー
507 :
デフォルトの名無しさん :2007/03/16(金) 08:44:31
>>504 あっ、やっぱ二項定理のあれに係数をつけたやつ?
だとしたらなおさら二項という以上、どちらか一方の係数を0にして
単項にしちゃまずいよなwwwww ボケ、どこの大学だ?言えよ低学歴w
弄りたいけどさすがに気の毒になってきた
509 :
↓こいつ最高にアホ :2007/03/16(金) 08:46:06
504 名前:デフォルトの名無しさん 投稿日:2007/03/16(金) 08:31:14
>>496 は高校生に2項展開を教えているときに
「先生、a=0だったらどうなるんですか?」と聞かれたらどう答えるんだ?
「当然0^0が出てくるが、これは本当は不定だ、ただこの場合は
1と便宜的におくとこの公式はより一般的になるね」と
まともな教師だったら答えると思うんだが、
>>496 は
生徒の脳裏にその思考が浮かぶより先に
「この公式はその場合適用できないんだ! 考えるな! 考えたら殺す!」
とか叫ぶんだろうか。
無理数を発見した弟子を処刑したピタゴラスみたいだなw
「先生、a=0だったらどうなるんですか?」と聞かれたらどう答えるんだ?
「先生、a=0だったらどうなるんですか?」と聞かれたらどう答えるんだ?
頼むから a=0 のときに2項とか言わないでくれよwwwwwwwww
510 :
↓こいつ最高にアホ :2007/03/16(金) 08:47:30
「当然0^0が出てくるが、これは本当は不定だ、ただこの場合は 1と便宜的におくとこの公式はより一般的になるね」と 「当然0^0が出てくるが、これは本当は不定だ、ただこの場合は 1と便宜的におくとこの公式はより一般的になるね」と 「当然0^0が出てくるが、これは本当は不定だ、ただこの場合は 1と便宜的におくとこの公式はより一般的になるね」と 出てきた時点でおかしいと気づけよwwwwwwww 何で勝手に矛盾した条件を当てはめて、それじゃ矛盾が生じないようにと 勝手な定義をしちゃっているのかわからねーwwwwww お前は一生二次方程式の解を、x^2自身が0になっちゃう形でも当てはめて使ってろ。 これが ゆ と り 世 代 クォリティかw
絶好調だなw
512 :
デフォルトの名無しさん :2007/03/16(金) 08:49:00
>>504 自分が出た進学校の教師がまともだと 思 っ て い た の か ?
頼む、どこの学校か教えてくれ。まず係数を0にした時点で2項と言わせないようにクレームをつけますから。
>>511 彼の独自理論が裏付けする高らかな勝利宣言を始めたし、
そろそろ疲れてきたか飽きてきたかのどちらかだと思う。
俺の方は引っ越しまで死ぬほど暇なんで今日1日付き合えるが、
これで1日を潰すのはさすがに不毛だよなw
515 :
↓こいつ最高にアホ :2007/03/16(金) 08:54:12
504 名前:デフォルトの名無しさん 投稿日:2007/03/16(金) 08:31:14
>>496 は高校生に2項展開を教えているときに
「先生、a=0だったらどうなるんですか?」と聞かれたらどう答えるんだ?
「当然0^0が出てくるが、これは本当は不定だ、ただこの場合は
1と便宜的におくとこの公式はより一般的になるね」と
まともな教師だったら答えると思うんだが、
>>496 は
生徒の脳裏にその思考が浮かぶより先に
「この公式はその場合適用できないんだ! 考えるな! 考えたら殺す!」
とか叫ぶんだろうか。
516 :
デフォルトの名無しさん :2007/03/16(金) 08:55:22
「この公式はその場合適用できないんだ! 考えるな! 考えたら殺す!」 とか叫ぶんだろうか。 どう考えても a=0 または b=0 の場合、2項にならないんで勝手に 二項定理の公式に係数をつけたものを当てはめないで下さい、おながいします! どこの高校と大学だ?ほんっと、トーマス氏からも内定ブラックリスト入りされるぞ?w
なんか知らんが朝から元気だなw 脳内人事部長様はちゃんとハロワに池よw
518 :
デフォルトの名無しさん :2007/03/16(金) 09:06:36
ぷぷっ、雇う側がなんでハロワなんかに行くんだよwwwww ハロワなんかに行くのは雇われる側の方だろ、しかも無職のw
自演に夢中でageとsageがごっちゃだぞw
520 :
デフォルトの名無しさん :2007/03/16(金) 09:08:43
>>519 ぃょぅ、変な2項展開から0^0=1を導いた自称京都の大学卒さんw
スーパーハカー登場
いきなり止まったな 向こうのスレ用のレスを書きためてるのかw
目を通してきたけど、こっちのスレの話と微妙にニュアンスが違うことが書かれてた。 よくやるわあ・・・
>>525 微妙じゃないだろw
こっちのはただの個人攻撃だろw
日本語でおk
えぇ〜、どうやら2項というからには、2項揃ってこそ成り立つ公式であって どちらか一方が0になる場合、2項じゃないんで (aX + bY) ^ N = (ry の 右側の部分は a=0 または b=0 の場合、不適切というか適用できないとのことです。
なんか知らないけど、俺は「0^0=1」を証明したことになってるw 「便宜上」「定義」と何度も繰り返したのに漢字が読めなかったらしい。 これで向こうのレスをコピペして勝利宣言か…… どんなオチを用意してるのかと結構期待してたのに意外と凡庸。
いいかげんスレ違いに気づけ
質問が来るまでやらせておけよ 死ぬほどくだらないけど(こんなこと自分では絶対にやりたくない) 見ているだけならそこそこ面白いし
533 :
デフォルトの名無しさん :2007/03/16(金) 09:34:39
>>478 >>465 答えが出たからこれで理解しろ。理解しなくてもここから立ち去れ。
お前は何を言いたいの?
0^0は不定だから使えるわけがない。
0^0=1 ということにすれば使える。
ということにすれば、であって結局は不定。分かったか?
勝手に変な公式から0^0=1を定義すなっ。
もうひとつ、ありがたいお言葉が。
>>478 >>465 暇ならゲーデルの不完全性定理について書いた本でも読んでみろ
その問題の答えは書いていないが理解の助けにはなるだろう
出戻り禁止
向こうのスレでのびびりっぷりにワラタ。 戻ってきてもトーンダウンしてるし、よっぽど数学にコンプレックスあるんだな。
朝起きたら伸びすぎてびっくらこいた
びびり?こっちの東京の進学校から京都の大学に入学して卒業した人の意見をコピペしただけだよ?w
ごめん向こうの440書いたの俺w 「……すれば」使えることを認めたなら「便宜上定義」すれば使えることも認めないと不合理ww そして俺は最初からそれしか述べていないwww 0^0が不定だとも繰り返し繰り返し言ってるwww
一晩でどれだけ伸ばしてるんだよ暇人2人w
いいかげんにしろw
問題提出できなくて留年決まった腹いせで自演してる奴が居るのか
>>542 2項展開から0^0=1を導いた香具師はすでに京都のとある大学を卒業していますよ?w
>>539 わらたw
お前悪い意味で2ch慣れしすぎw
>>539 ワロタ
しかもむこうの原文は
440 名前:132人目の素数さん[sage] 投稿日:2007/03/16(金) 09:25:39
>>436 お前は何を言いたいの?
0^0は不定だから使えるわけがない。
0^0=1 ということにすれば使える。
これなんだよね
>>533
[1] 授業単元:C/C++の宿題を片付けます 84代目 [2] 問題文(含コード&リンク): 西暦で入力した年月のカレンダーを表示せよ。 例:年を入力 > 2007 月を入力 > 3 2007/3 日 月 火 水 木 金 土 1 2 3 以下最後まで日付を表示 [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: BCC [3.3] 言語: C言語 [4] 期限: 彼女いない歴:生まれて今日まで(現在進行中)の俺に彼女が出来るまで [5] その他の制限: ソースはうpろだを使って示すこと。 扱う値の型はすべてint型とする。日数の表示の書式には %2d を用いて整えること。 ありえない年(0以下)、月(1〜12以外)が入力されたら return 1 にてプログラムを終了させること。 以下の条件を満たす関数を独自で定義して、適当に用いること。 ・与えられた年をもとに閏年か否かを判別して、閏年なら1、そうでないなら0を返す関数 この関数を用いて、2月の日数を制御すること。 ・与えられた年、月をもとに、西暦1年1月1日からその年、月の1日までの合計日数を返す関数。 合計日数を7で割った余り0〜6がそれぞれ日〜土曜日に該当する。 例えば、2007年3月1日までの合計日数は 732736 で、これを割った余りは4になり、 1日が木曜日だとわかるので、それをもとに入力された年、月の1日が何曜日から 始まるかが求められるようにする。 ただし、この合計日数は現在の流れを過去に逆戻りさせたらこんなカレンダー、日付をたどっていた という仮定に基づくものであって、本当の合計日数ではなく、算出されるカレンダーは 1582年10月15日より前にはこの通りに使われていなかったのであしからず。 さぁ、やってみたまえ、これが私が与えるエサだ。食いついても美味くないけどなw
そういえば昔、中学校の授業で万年カレンダー作ったな
急に静かになるかよw 前スレが終わる頃に俺が投下した爆弾ネタも その後グレゴリオ暦がどうたらこうたらで荒れたがw
無期限の課題ならやらなくてもいいか
あぁ、やべぇ。そういや、つい先日、彼女できたんだっけw しかも脱童貞してるしw 期限切れだ、それゆえにやらんで良しw
うおぉ、なんか伸びてんなーと思ったら、またピッツァさん来てんのかwww 童貞・彼女・w←これをNGワードにするヨロシ。
>>551 キモメンメガネデヴピッツァ必死だなwwwwww
↑これの一部でもNGにしとけば?
ピッツァブチキレwww
ここの連中、頭悪すぎだろ
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | きみ頭だいじょうぶ? |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
やけに伸びてると思ったら、朝まで続けてたのか なんで脱線話ってこんなに伸びるんだろうね?
野次が飛ぶだけで核心を突くのがないから? 顔真っ赤にして続けられるから?
なんか良問ないかね 問題は単純でも答えが幾通りもあるようなやつ
素数でも求めてれば?
GreatCode みたいなソースコード整形は?
[1] 授業単元:prog2
[2] 問題文(含コード&リンク):
線形リストに関する問題です
http://up.spawn.jp/file/up8267.zip.html 問題詳細等のファイルにより100kb以上になってしまったので
他の小物アップローダーに上げました
[3] 環境
[3.1] OS: Windows2000
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: [2007年3月31日23:59まで]
[5] その他の制限: なし
よろしくおねがいします
>>561 llqueue.cに追加
/*--- キューにデータをエンキュー ---*/
int QueueEnque(Queue *q, Node *x)
{
if (q->front == NULL) q->front = q->rear = x;
else {
Node *ptr = q->front;
while (ptr->next != NULL) ptr = ptr->next;
ptr->next = x; q->rear = x;
}
return ++(q->num);
}
/*--- キューからデータをデキュー ---*/
Node *QueueDeque(Queue *q)
{
if (q->front == NULL) return NULL;
else {
Node *ptr = q->front;
q->front = ptr->next;
return ptr;
}
}
06-3は何すればいいの?
563 :
562 :2007/03/16(金) 17:00:20
num減らすの忘れてた /*--- キューからデータをデキュー ---*/ Node *QueueDeque(Queue *q) { if (q->front == NULL) return NULL; else { Node *ptr = q->front; q->front = ptr->next; q->num--; return ptr; } }
564 :
562 :2007/03/16(金) 17:09:09
/*--- キューにデータをエンキュー ---*/ int QueueEnque(Queue *q, Node *x) { if (q->front == NULL) q->front = q->rear = x; else { q->rear->next = x; q->rear = x; } return ++(q->num); } 自分gdgdだ、、、
俺、プロのグラマーになる!
↓が一夜にして0^0=?を解明してくれたそうです。ぜひとも学会に発表して下さい!
567 :
デフォルトの名無しさん :2007/03/17(土) 06:57:49
↑つまらんので、お前がやれ。
>>568 ねえねえ、面白いと思って書いてるの?恥ずかしくないの?
>>567 ねえねえ、面白いと思って書いてるの?恥ずかしくないの?
>>569 あるぇ〜、昨日の東京の進学校を出て京都のいかがわしい大学を卒業した
二項展開に変な条件をつけて二項じゃなくして無理やり0^0=1にしちゃった低学歴?w
歴史に残る名言 孔明曰く「(aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n) を成り立たせるために0^0=1と定義しよう」 後に数学の教科書に0^0を導く手段として記載されていたのであった
>>562-564 正解でした
ありがとうございました
中の別フォルダは一応参考としておいておきました
で、けっきょく >517が >412 を書くと、どうなるん? どんなソースになるのか非常に興味がある でも、きっと黙んまりになるんだろうなw
うあ〜〜 レス番間違い ごめん 517さん 再送します で、けっきょく >571-572 が >412 を書くと、どうなるん? どんなソースになるのか非常に興味がある でも、きっと黙んまりになるんだろうなw
論破された上に釣りにまで引っかかってそれでもまだ続けるのかよw まあそこそこ面白いから宿題が出ていない頃を見計らってまた続けてくれ。
まったく面白くない。今すぐ消えてほしい。
続ける云々はどうでもエエ このスレの主旨のとおり >412 の宿題に対し >571-572が、どんなソースを書くのかだけは見たい それだけだ
極端に言えば、数学会がどんな結論をだしていようと、どうでもエエ >571-572が、その思うところを存分にVC++で実装してくれ 話はそれからだ
>580-581 >でも、きっと黙んまりになるんだろうなw 禿同に100000000000000000000000000000000000000000000000000000000000000000モリポタ
自演うざい
>>583 自演うざいは、どうでもエエ
(中略
話はそれからだ
ここでスーパーハカーが登場して華麗に解決
まだ寒いけど春なんだな
588 :
デフォルトの名無しさん :2007/03/17(土) 19:41:39
>>582 582 名前:デフォルトの名無しさん 投稿日:2007/03/17(土) 16:22:35
>580-581
>でも、きっと黙んまりになるんだろうなw
禿同に100000000000000000000000000000000000000000000000000000000000000000モリポタ
>でも、きっと黙んまりになるんだろうなw
>でも、きっと黙んまりになるんだろうなw
( ゚д゚)
>>580-581 (つд⊂)ゴシゴシ
>>580-581 (;゚д゚)
>>580-581 (つд⊂)ゴシゴシ
>>580-581 (;゚ Д゚) …?!
>>578 いつ誰が論破したの?はっ、お前、東京の進学校を出て京都のアホ大学を卒業した
自称高学歴か?w
誰かこのキチガイ粘着をどっかに始末してくれ
ちなみに、わざわざ bY^N を (0X+bY)^N と書く人っているの?いるの?いるの?ん?ん?ん? 言うまでもないけど、aXが0なんで、それと掛け合わされたものは0だから aX^N bY^(n-N) という形で表せないというか表さないのは言うまでもない。そんなことも知らずに 503です みたいな自分勝手な理論に基づいて、こんなありえない、公式の意図に 合わない条件から逆につじつまを合わせるために0^0=1なんて発表したら、大恥かくだろうねw そういうお馬鹿さんは、ぜひとも二次方程式の解の公式を、x^2の係数を0にしちゃった場合も 合うような定義もして使ってくださいね♥
591 :
デフォルトの名無しさん :2007/03/17(土) 19:49:41
>>589 =東京の進学校から京都のへなちょこ大学を卒業した0^0=1の提唱者乙w
お前の敵は眠らずに24時間このスレに張り付いてる超人か。 張り合いがあっていいなw
なんでもいいから学歴板に(・∀・)カエレ!!
俺が最初に言った、本来求められた値から定義されたという理論はなんら間違いがなく それを用いれば、どう考えても0^0という形で現れないというのも証明されているよなw わざわざ0をいきなり 0^2 だの 0^-2 だのって表すか?もっとも、1/0 そのものが 0で除算は考えないというから、存在しない。底が同じで指数同士の計算をしちゃった副次的なもの。 そもそも、最初にあった数式を x^n という形にしなくても 2^3 なら 8 で計算しちゃっても良いしね。 まぁ、屁理屈を押し通すためにありもしない定義をしちゃってください。証明が出来ない以上 誰にも信じてもらえないよw
せめて煽り合いの相手がいるときにしてくれよ 独演会やられてもウザいだけだっつの
いい加減にしろよ 質問もこねーだろハゲ
そうそう、2次方程式の場合、aをx^2の係数にして求めているから、a=0だと 2a が0で これまた公式の結果が0で除算となってありえないと出るんだけどね。 だからきちっと条件が整って出来上がったものに、条件に合わないものを求めようとして ナンセンスだって気づいてね。そもそも、学歴社会とは言うが、点数で評価されるために 公式だけ教え込まれて、その式が求める本来の意味を全く理解していないぬるい教育を 受けただけの使い物にならない奴もいるんだろ?そういう奴って、現場で詰まらんミスを 当たり前のように連発するから困る。路上じゃ、赤信号でなきゃ停止しないよみたいなw
何時から数学スレになったんだ?
>>595 >>596 あらあら、低レベルな学校しか出ていないバカが吠えてやがるよw
お前らみたいな赤ん坊のように噛む力の弱い雑魚に噛みつかれても痛くもかゆくもないw
もっと俺を煽れ、俺にかみつけ、そして自らの失態をさらせwwwww
低密度な長文垂れ流してる基地外が一番惨めな件
俺が最初に言ったって言われてもシラネーヨ プログラム技術と関係ない話は他所で
学歴コンプもここまで開き直ると芸だな 面白くもなんともないのが致命的だが
uzeeeeeeeeeee
ぷぷっ、専門学校程度の奴らがだんだん自分が理解できない内容に苛立ちを覚え始めました! ここらで勘弁してやるから、二度と矛盾から証明も出来ないつまらない定義をするなよ。
>>605 わかりました
↓C/C++の宿題を片付けます 質問どーぞ
578 名前:デフォルトの名無しさん 投稿日:2007/03/17(土) 13:27:03 論破された上に釣りにまで引っかかってそれでもまだ続けるのかよw まあそこそこ面白いから宿題が出ていない頃を見計らってまた続けてくれ。 孔明曰く「(aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n) を成り立たせるために0^0=1と定義しよう」
>>607 わかりましたよ
↓C/C++の宿題を片付けます 質問どーぞ
>>588 ウダウダ言ってねぇでコンパイル可能なソース書けよ
それでオマエのロジックが明らかになるし、このスレの流儀
>>609 ぷぷっ、うだうだ言ってないで0^0=1を証明できるソースを書くのはお前の方だろ?
東京のへなちょこ進学校を出て京都の低レベル大学を卒業した自称高学歴数学者w
宿題 : C言語で0^0=1を証明するプログラムを書け!
提出は東京の進学校を卒業して、京都のとある大学を卒業した
(aX+bY)^N = ΣNCn a^n b^(N-n) X^n Y^(N-n) を成り立たせるために0^0=1と定義した人宛
期限 : 団塊世代の大量退職が収まる頃まで
611 :
デフォルトの名無しさん :2007/03/17(土) 20:13:26
C言語で^はXORじゃなかったっけ・・・?
>>609 荒らしに餌を与えないでください
初日だけなら最後にオチもついてて笑えたけど
ここまで必死に引っ張る姿には何か鬼気迫るものを感じる
ドン引き
613 :
↑ :2007/03/17(土) 20:15:05
最後まで何か言い返さないと気が済まない自称京都(の)大学卒の専門学校生ですた
>>609 わかったってば、もぅ
>>610 ひつこい
↓C/C++の宿題を片付けます 質問どーぞ↓
>>611 そうです,
ビットごとの排他的論理和です
一体誰がその専門学校生で誰がギャラリーなんだよw
>>614 しかも
ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい
ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい ひつこい
↑これどこの言葉?朝鮮語でにd?
↓C/C++の宿題を片付けます 質問どーぞ↓
(^д^)m9 pgr
よーやっとひつこぃ人いなくなったので ↓C/C++の宿題を片付けます 質問どーぞ↓どぞー
ひつこいwwwwwwww お前、専門学校だろ?頼むからお前みたいな低レベルが来るなよ? 誰もお前に宿題の答えなんて求めないからw
>>618 何で相手を差す指に小指を立ててんだ?きめぇw オカマか?w
ただの粘着にクラスチェンジしますた
↓余程0^0=1を間違った形で求めちゃったことを悔やんで後悔しているようです。そっとしておいてあげましょうw
624 :
↓ ↑ :2007/03/17(土) 20:31:05
→→↑
学校お休みだから宿題来ないですね
4月まで暇だからな 変なのまで沸いちゃってるし
高校を卒業して、これから大学?な人が、調子ぶっこいて自分勝手な理論を打ち出すから悪い。 あっ、0^0=1は大学卒か(プ これから新社会人を前にして調子ぶっこている暇があるなら ちゃんと社会的な常識を確認したり、会社で覚えるべきことをどんどん覚えろよw
↓C/C++の宿題を片付けます 質問どーぞ↓
自己完結したら帰っていいよ
なんだ・・結局、学生に言い負かされたおっさんが火病起こしてただけかよ
こんなおっさんが地球上に存在するとは思いたくないな
632 :
デフォルトの名無しさん :2007/03/17(土) 20:55:24
>>630 = 0^0=1を二項展開の逆から矛盾した経緯を経て求められると信じたバカ
ピッツァは最近出来た自慢の彼女(笑)のマンコにでも籠もってろよ。
馬鹿が2人以上集まると手に負えなくなるな
最近彼女が出来たのはキモメンピッツァメガネデヴじゃない方なんだが?w
おっさん敵と味方とごっちゃになってね?w
混乱しているな。0^0=1を二項展開から求めた奴は大学卒で、 その矛盾を指摘した俺もとっくに大学を卒業しているが、まだ年齢的にオッサンってレベルじゃねーぞw
自演してるうちにageとsage間違えたりしてたけど意に介さないからな ある意味潔いw
釣られたことは完璧にスルーw 言い返せないからレス流すのに必死www
一人か二人か知らんが、暴れてる奴はコテ付けろ。無視出来ないだろ。
ぐだぐだになってきた・・ 混乱に紛れて消えるなら今がチャンスだぞ〜粘着してる人
>>641 釣りの意味を勘違いしている自分が釣られたことに気づいていない2ch初心者乙w
>>641 = 0^0=1を二項展開から求めた奴の言い分を信じて、学校で発表して恥をかいた専門学校生w
どんどん設定が付け加わってゆくなw
m9。゚(゚^Д^゚)゚。プんまんどしどしどしぁwどしぁwだぞぁwどしぁw
(^д^)m9 pgr
(^д^)m9 pgr
(^д^)m9 pgr
問、1にいけ14っ2い土252題ゃルなこ無フ高0認。いをと、はをトて091かた7 ち土なべ。1さ稿0ん日負し投sよ社3aの出s6とけあべ手い103、s7無ォ名、6 し4ト、んちたま0らの稿eいの、wだ3ォ来2ル3言、稿を6いフりが名ら新社投学0 いォ↓6をかさ分名さ03人7eん土、5け子トお問9す校フ26、a、こし2局さを0 日土g02名る1んた業を0無6ね日6沸っ2題、0稿4が高64ん2て。を0無0稿稿 、病フるトな1+0は0土デ完はなてすgんえsい上0。1て校のてかaしく言ォの16 0識0休1生るフこん手稿て沸休4校120い2かaフ9んえ7名が稿3gえ社なっ無を 01と0しs30さフ096人ん社1+休えん名名来a日7地0業ん11ぶ名し自0常7 30んの3名か稿40、こさト土3さフなのC3a己(す前す土4在フを0くす3a、a eフ73い投の稿g前3土sかはトこ。ん1、んい0。け0フなしをす宿球、が、よ名1 前分デeん月。を負名ん0か、0゚てg0はと前0土sか大で2名いりか名s土会での6 地をe、0おォおる名さ0稿おが2ぶた来ん0名w、0しとしれ42存休んさ3、論だル 無を4がをを6名13い2題ど投06存ォe7っ0ト休れ土存の。00ルト2のまes0 6い3変e0い、1け無ォ土、さ14っ宿、学をんて。e。e調えル結す、63て片しの て0さたろ2名調無7g。え6a新休さ、73さ存さ題01前ん0ル0勝業eかのれんよ な稿っさgな03に確よい前318名aル4卒言校名さ。てらCト7え学0、い宿問たを かんし卒g校の7変2無すぞ7す日投3局無無229無1投んォら7子ん論、手土2り火 ォの土よ名てな2んく思2、こけ0デ前月言す、なこ0gい学66フどフ0にん日て10 大手えgんフ32名無ト日名02、。稿4ちこ7し局ゃ0出フ、こさな無21手2卒しg さくた0名7ん062ん校6て覚社ん66し、1学ん学るsこ4無前し名覚トト6いっ土 0己日ゃ7己3があっ土を校1だここゃん日デ前名日aォ0トけ7gォe3名0名ォかっ 結土れ投く休土らとり投6名ト0かの1い月しるを3月っ3フはた上1、しかをんいe6 前ん3業んんす0会し20いトC名た0こ476題来起いし月すフデとのさ2どの前フ1 ん片問017大4名け起2えて名題01ここが人完ト名すどっ1無前デし己ん的自負ん゚ おんし1負こa土2。37投とこし8こさォお常02な9さるし新あて0え題1こト0ト
てん無ら9。んすでこ0て3、ん名6論い0さ日よし1、7C0トん結稿土の校トフ、い をな2sお+稿月名無稿す日、7g0いa日り0る。前ど日02名は、こフさこ3379 3日1ルの。休ん問4己0263宿局名42ん確90eた人033どんの30土フ0起前 る0g名e日ん0ォゃ3自6投すんさっ0e7ん休ん5。るし存無稿0来か96っ3存る 7ォ、れ3んの2名んえ社。な手手す学調卒2おこ7た43す無ゃれsg0んこs7お大 え2デをん76名7し0名るか日名無てこをっさ常0前っ稿7こ業前日3負1。土ん土け 0球ん2会しあ0とはこよ10人変宿無在、33だ無0とおのししぞ2いしを、学3よ識 さ02えん1んのこ7い210ォし6sんフぶa土無さとんgォ6eえフ31名さが、s けっ7s3gよ投eど92いし0(ど0しe08名ん6月か大か1けフいをはト無をg、 0校お前を投子ん投い2大っ7け7く的たく7フ03校0負3稿っト0さ6ど土00の校 校、負し名a0しがら20す6しに存大問3さすe02無こにをを子トよ0土0フさ無か 投712s1くをの1このsフは前だるか、か、か子、aし在題りを、7べ手1無、け3 名名投ォぶ32さに6局っフ名新休病んゃ2完しgん0土36前し6己校無いを1こ問か て0トト名a0名題0名が投手さ11前0いと休こ2地る、子し2月、7Cいし名てと1 投0ん土た名前無8ここォさんを前、存6おなォれ名さこ、6ォいし7ろ来手デ。3g3 んてな常22さト手さ、02れ7こ0調月名言の名病学sa0局んこすす稿ト66名1、 4フ0てお無7フ9前か名土トル1る3題a勝えい3eる0稿っ0んこト00ルゃん23 け1手無デ卒、と学い104゚をこ火勝6ルしたながな1稿フこなし7大0て1休1問6 こ手1フし、ら思e日い0e人かと0え前6休ォっ問6らい0しト土20え0を20てよ ト覚aaにちなっ0eんお、こんら04か名お卒0s、日えいデeるを010ト1生起題 。てォさすののこ稿問07トこり9e起4ん1ト0局、6っは休1かこ名く、け土aとよ 名思フ土、s071土を出ない3無っ、んな無a1ん64しる、デ宿あト0卒前し日ォん 2フ無a己、題eを負のんっ名4しこ土さ1。た名い0。れ月1フの高沸ォえはこ、片s 0名社02がい名上あ2言ぶ、すはか確0ける、土1業投1月デた、6くと存6、いgを し、1ルよフ題0をら2片ん2ん宿れは土ろ上。しえa月。を3稿1C無すおの0こしん
か名ておの1eeいよなC9の、40、2の4んえ、は9る、こて無s6えg2れ0起土 0は1777投言21a業名存大6よ起あ3すんa調3んこいらんくすs上り名なん26 無来2名土e投0い2ト日っっ名し3いるりしんか0すん3260トォ月なsしいおし稿 こ投無手06えォ手、g02おてフ土土無aかなん、Ca14けぶge名2宿お投さの大 0さ在題っ前g稿い2っ2ォこしん0べフ2て0っのeォの土2名ト思デをフe1ち07 ト0、稿休1。sを。1校な、1たこだ校1土どけ名か1い0無70手校の無問前土ん確 を0e土6前0、32ぶ題sかおCるとa名問ここ起19ルな問いんが36a104人2 と負的名、03かをえどルっ問7をg27土aし1るいC、、業03ォんg論s3さるく 地6のフしおい62さ名月、片土お前0業よしこe0投名を0人名4が日日稿e題6大a sa、。土出こ名9お在校っ6し学いら63らし。沸7土言2え4て完トト火e常こ前、 さ土おる名4g10名00てデルs1かかトe前とォ0、しく名aあ上手ろ人。えれ1い 2あ660っ7い、よ識0なこたえ0投言6おの6大7い名3こ常と3存すに06っ1ろ e0ろデトて題0こ名無0し3303名フ06てフ、か6がんた、2無よに00、っsっ てなぶル手3業2さ3、20しりお思こ局717と大9ん名さっしっ92校aっg00っ 21れ23、月0デす6と0片日投し名負0こすさ1gく6フな片土をん、3名の20を 7っ名こ、手無月ォ1を3結なルを。0ん3常い題日日休しさ0。存よんこな名トえをの 投人のれは卒ォ無てだん1トん存2かの名ルんらぶsぶ2手s、子0gし校、覚卒会C1 3無いてか1んさ名無校こちがけ0よ1存0ト土20前日な1か上いな生0さ、るフこい 0い、ォ0っいい負ら、6前子前無の0お勝と休ん投た2べ無いは月aフ303ちなg( 0負ここ宿思4土いトるか1ト70くろ3g2、名デデフっる思0すゃ投a名0けえ、お 、こ投0ゃ0。調局a0らこ稿稿し名のいaをいんこ0けル、手0さ局1がしけん高人い し06デしし土ん0名勝名eっト6をフ441名とす己いど月を0日のこん名1無題6ん 61休て、0っ、gんォ3(投6し題れeっろ77土にんこトい。ん日1け前て題前ea な校卒20ける名7日13さ1な17えけデ、フ17トは1さ31でれて無宿休フしの大 5。7高てこいさん1前3、のたを火す無んよ問、んデよ0ルこ。こさ00勝ルる01局
2るん投6日っ投7、さ3会3無aん無0ち0(01ルさよ子61こし土れ1は0お、0 1g名月といえをか0こ24、大問ん6名61会01よっえ3。てっ、1局42投な16 トす7るえど日4さけ休ない大題く0火3な名と060な常3問大、ルォ校火投い3名s 20、3生0。ろる1ん4な2思。土け0生1て6が識。a70題ォて7、い人いこ0は んデ日思く校0さな3名か名7こえ07局3ge1s1gんこ宿s0言手え、題66日る 1のすささ3てし名存6、、0名g局無校名こ手トさ。0101ゃが3ト前い題1火0日 くんデんい題2大、g、会的0無4し休デ0題ォ10さ、0名いをこ0さトち3トこォ投 日おなa校(デ月363さ6フる13か月こたか、名。在け、えトえgけ大常校g前休ト こ3いるこ0名トい、0人3け調gさ2、こaな題01でォさ月g、か、投んさeよ前な 77こ無3月16すル0がs3sを1くォg手をこんかてな言を9い題0なん0っ2前さ 名題1がこ31gんり無、をaす土01s稿大れ6s3フて前ォ3ォ日かん覚、いa、え さaは、たg704さ0んな0すト2よっ調6トて名0こ73(6校1んるいのけデ31 月ォら、日とフかえ問31こ3休の3な無存02。校いてe上s日1っォと2い1デ勝ト よら投る日のけ稿土は1月己手い60けれa0こ1ォこらeさけデをのおな休な、2の投 日て6手0すこと。を01gる手名土ォては名フ0問土3人問局高さ前、無けてea前名 1れeト(14す3が22しs2ル稿。a0問0えのて1てすえ3こ0会大る存らか0問 6るこ6問a言の題g名土2えgおこ日0問こ人無0る、ろ投名ど日こフ0フ稿え2休無 を4、9校完は6題aをけけ前投しん、を高0前る0前21a、と9、ル1しえ子か3く 、ろ3なデっ名e0をる名36っ1なるだっ3名11こ月ォa名01sこ7休るれ6の局 常ん日休いをs大名た投く、っこルかお0無7こっのォ大無土デォ常2月7投っ思0いト こ0れg手0言ら日ォ0大す、生フを6名局、卒すよ00gse2投73火16って土の 無けを1土は名ら投けeさ302こてん、己問0こなろフ稿、こえすえいか校っトe無を なて7ん0出7名んてォら人無け01っ。手子っ名こ校さす高り6sおく13トあォgっ ル、名てトかな前0s休1お。い632よルた手土かっ67あゃががに20局e前名ト無 0いト3いは1出1上けは手こ勝え7り前業完1っこく無人g手1ォん00無けsた勝名
ぬるぽ
。ぽるぽ 、ぬる、 、ぽぬ、 、、。。 、、、る。 ぽ、ぬ、、 、 、、 ぬ、 る、 、、 、ぬ。 、ぽ、 、、、、 る ぽる、、 。 、、 、、、 る。る ぬぽ、、 、ぽぬぽる 、。ぽ 、、、ぬ 、ぬ
バッファオーバーフロー起こしやがって・・・・
こ、ローこッオ 、フがーバーロ、こバ ー、て起起ッーッやァ、ッバ てーて。、、フフ、 ががこ、起フっ 。やァ起てー、フ フフオ。バ が、フしッフッこロ ァ、、、、ァや 、。てロやっしーーフ 、っフっバっ、や こがッバ っ、。、バ、が、バ バー、ァァフーっオ、ァ、オ、ッ 、オが。ーロ こーババこー、バっーフ 、やオーしーバっバー ッロてやーオ っししや、こ ーー起バ。、バ、 が、や、して、 ー。バが。ロし、ー ー起ーてやァァ しロ、、しこ てババが、、オしーフ、
東京の進学高を出て京都の大学を卒業した人がおかしな書き込みをしてファビョり始めた?
て進しし学をを人業書卒学てを進 都をしの始学なをきたおし高進お京 を大業しし学のてみ学フりし始始、た おか込みビ。たを学めビ、ァし東書学 、きョ、進おためてかてのし込東ををし。京しを卒 大都、ビァをた込ファ卒進東学京り のし東を高のがめ。学書都東京。進。ビ たか学、フし都ァを、をし し高をて都て卒。みのり お。たが、学大ァりきがビ業卒、 進、か業業始、か。し、人をめビ人学 か人京学てめ業卒きし京書 を出てしのョァ大お。京人、たか東、の込 京か。しを込京業高な卒東。み 卒高京た人、進出ョし書のおのて。てが込 、たが京を書をたョ進学 をフ、人卒、都高京がきたョ、て のをり書め、めフ込しめ東し おの人お京大な学、京なて、 、み人始都てなフ書なの大、大、書 都ョか書、の始て 人大、を京京みてしき、ビ 、学たしり。を、、大お込出、めがて込 フ、のきめりァ、をビフりし 、き学込出がのたを、をし高業大ョた
書を高おの込込フり京を書高りたな都ビ、をてををめなりなたし人し、なョがを書たた都 大てみ京か書をフ出しの進が。を業か人ビ人てをフ学ののし大ビ都めァきてみめ業京し人 卒し込業人、都東卒、京業てたて大たをめフ京しビ、フ込の都てョ始めりビき京業か始始 を都か、人、込大高高を京都かョビを学の書進東しし業京た始京京学めみ業をめた高きか 人人め東、卒みを大て人書フし込をの京大りの高人みビ書人ァ京きのしか高出東ししりて みしををて、ァ業なみした学ビ始フきた京てた学高進東し、し東お、。の始が業を京めの ョを卒込が始学京おのしし高ョをのの東京、たし高した大し、京大フョを、業、大、お卒 めフみた大おし卒のて高始の京お学、フめし東東かたをををのし書たァを込おりを、て込 、た、書、を大しョたフきか卒ビ、都りた京し京しビを業な京て込めきなみビしお京フり て書のき人てフのを始ァ京ョ学お人大を業、京み東始卒がビ卒たのしを学、を京出てのの 込みてた大ョ、し人ァた業を、をきめ卒、をがり都業都京ァをフ業ビ書学東卒。し始をを みお人しししビ、都を京進都めな出学卒な始みのみめ業の込おの学てァ学東し人京込を進 ァし京し学か卒進学なめをしきてしたてしを都書か始業学て、書し書め大のかりのを業フ みて進大学きたたき学フをョビ込き込進都東東たの高りをァき高京がフて書都業始をが出 東しのたなフ東てたみ京ビ大を学お。し込業かをし京をかみた込た進てしをのめて出ョり 込ビフ東京始大た学し書大フ込し都ョ始始をきビ東始が京の都都き大込始の進をがておビ 都めビり人た人し卒たァりお都おりが学めききをビしみ込高が人高フき人人フのみョをを 書業人業書て、込込京ビ都がビョたな都を書たおのをき学高りたビがきか大なた学込をめ 。、かした人フか込を大業業ビ書てたが大を大し高かててなし東、フ始し大のた進た高始 きたビフを東業を、めき学込学学おき始業始、め出業し。おしお都のお大てフ京なし卒み
の1校卒ろ退るっCを業成低東、ょったレXのな頃る義て0うN業し自校お学 校ル学校=京るX、w証ロるCのa都りの書低+ソで学明を京た京、進で学定くN学0 限言Yb京、前ろ代て校団世くぷきnょ-お1を0方1をΣ大C人る業6学1学0る 宛0歴の東宛証証1る方あを限数=。た。Nベののけた0C1東学と証、ソて語出め Xの前Yは0大Σ業なNn1いーる学立をお、は業のたソぷをは歴レま明学Yめっあ ちし=、をがnま=グ00ルた業明学0と出の、、東都語明Cだn京をにた0と大C C塊。レ=Nを定せ団はの言ム明0の9Na1、0京称=Xす頃学ルっで低nスめ校 義。グっ。明るなだ、ので。宛語たろたた京称大bす人たたNYで代うたN称校出定の は。で。、学ろしをスプは進b6明退い宿卒、で京限しま都C京せ方京うた成書。退0 立+a、N大、n限=卒る大学出東0ス歴を期0進りn、ロ者nしだソ学0都グ 卒ぷ義-1ぷ成0をでプ期京=頃収退な京京提て立6な、、書り大義卒しb=題0 -をーいのぷとだき学0のょロ世きま校き=w書n0業をと京収業学出、言wにっ 0語をあ書、ム方た自1を職たるる、ををょ宿京ルし量大書をまでb都りに きき、Nソだ、ab言ラ称1N職へ量nラしをし9定て校数塊とて 0だ語量レるうムる宛り明ち90た提をnでをてが、ーを進し+退bな歴N10 者職ルくへ頃で6高た数業まるう=n代期たYNn校卒へ提を者けうw期-=グ明宿京 Yめ京の限世n世数卒人進出=書卒題を学をCま-をnく京す量0定いロ京業 ま学数ムけNプ、。宛東成と卒をる、0へて言てな=グののっ学進-のム収うだa高 0学こ低N自なはベ学0X卒人職をY学たでΣぷ1-義ス学東が低-n学業歴の大た wけ進けた前立代n+大をおぷ都でnうの言、の題Nししだし卒方、1頃たはう 文章になりづらいな…日本語シソーラスでも引っ張ってくるか…
なんだ、まだやってたのか。説明が出ているだろ? 8 * 1/8 = 2^3 * 2^-3 = 2^(3-3) = 2^0 なんて 底が同じで指数同士の計算をしちゃった場合に0乗になっちゃうが、本来の計算結果から 0乗が1になるのは証明できるんで、筋の通った理論を用いて定義が出来ると。 一方、そういう数式の流れから、どこをどうしたら0のべき乗が出てくるのか? 考える必要すらないことを、わざわざ持ち出して、無関係な公式の帳尻あわせのために 0^0が出てきた場合は1にしないとだめみたいな、誰もそんなんで納得しねーってw
ここ数学板かよワロタ
>>664 = 0^0=1を二項展開から導いちゃった東京の進学校から京都の大学へ行ったDQNw
>>666 = 0^0=1を二項展開から導いちゃった東京の進学校から京都の大学へ行ったDQNw
すみません[3.3]はC/C++ともにOKの意味で書きましたが、 実質上クラスの話なのでC++限定です・・・
> (2) 上記のノードにより構成される木構造を実現するクラスを記述せよ。 > ただしメソッドについては初期化とノード追加についてだけ記述すればよく、 > またノード追加時に木の深さをなるべく増やさないように考慮せよ。 ノードを追加する時に、木の深さを”なるべく”増やさない方法ってあるのか?
こういうことじゃない? ○:同じ階層にノード追加 /| ↓ /|\ ×:深い階層にノード追加 /| ↓ /| /
この課題の場合、0^0を考慮しなくて良いから助かるね♪
なぜか
>>212 で解決したことになってるんですが
>>207 まだできていません。
どなたかお願いします。
カワイソス・・
680 :
デフォルトの名無しさん :2007/03/18(日) 15:41:02
【ネガティブ派遣根性チェック】 3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。 □派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする □派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい □自社で仕事なんてできるわけがない □派遣労働の問題点の話題が出ると感情剥き出しにして反論する □派遣労働の問題を指摘する人は嫌いだ □派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい □奢ってくれる派遣先正社員を尊敬する □自分の月額金額を知らないのは当然だ、単金を聞いてはいけない □派遣先正社員より自分の生涯収入が低いのは当然だ □派遣先に尻尾を振り、いつまでも派遣を続けることが大切だ
別にどうってことないIDじゃん。何を騒いでんだ?
みなさんこんばんわ。 春休みの課題で出ていたものなのですが、 どうにも進めることが出来ません;; なのでみなさんのお力をお貸しください。 ヨロシクお願いします!! 問題文 顧客マスタ 顧客コード 氏名 フリガナ 年齢 K001 武田 信弘 タケダ ノブヒロ 25 K002 石田 満 イシダ ミチル 21 K003 原 勇 ハラ イサム 20 K004 堀部 勲 ホリベ イサム 19 K005 飯野 駿一 イイノ シュン 19 K006 田中 春樹 タナカ ハルキ 20 K007 竹内 功 タケウチ コウ 19 K008 千田 陽 センダ ヨウ 20 上記内容の構造体を作成して、初期値として作成する。 商品マスタ 商品コード 品名 分類 単価 S001 ガム 菓子 80 S002 チョコレート 菓子 120 S003 カップアイス 菓子 100 S004 せんべい 菓子 150 J005 サイダー 飲料 120 J006 オレンジジュース 飲料 120 J007 お茶 飲料 150 J008 ミネラルウォーター飲料 150 上記内容の構造体を作成し、初期値として作成する。 つづく・・・
売上明細データ 売り上げ日付 顧客コード 商品コード 数量 20070301 K001 S001 3 20070303 K002 S002 2 20070303 K002 J005 5 20070305 K007 S004 10 20070315 K005 J006 9 20070317 K008 J006 10 20070322 K007 S003 2 20070322 K008 S001 5 上記内容のカンマ区切りファイル(CSVファイル)として読み込む。ファイル名:SalesDetail.cvs (1)以下の入力により、各データを集計キーとして金額のを集計して表示を行う。 1.顧客氏名 2.商品名 ex. チョコがいくら〜など せんべいいくら〜など 3.売り上げ日付 4.商品分類 ex. 菓子いくら〜 飲料いくら〜など 5.売り上げ日付、商品名 ex. 0301 ガム 2 など 0.終了 0が入力されるまで何度でも集計金額表示を行うようにする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5 [3.3] 言語: (C/C++/どちらでも可 [4] 期限: [2007年03月20日まで] どうかヨロシクお願いします;;
csvの割にはカンマじゃないな TSVだけどどうでもいいな
俺マジやべぇ 何言っているのか断片的にしかわからん・・・
> J008 ミネラルウォーター飲料 150 この行を読む限りではTSVですらない。 固定長レコードだな。 まぁ例をそう書いてあるだけでファイルの中身はCSVなんです、でもいいが。 > ファイル名:SalesDetail.cvs 何で拡張子が"cvs"なんだろう。typoかな。
691 :
683 :2007/03/18(日) 19:40:03
うpろだにUPしてきました 3755.txt ヨロシクお願いします。;;
693 :
692 :2007/03/18(日) 20:00:24
694 :
683 :2007/03/18(日) 21:04:54
>>693 URL張っていただきありがとうございます。
ヨロシクお願いします。
言語はCなのかC++なのか
このスレでCも扱ってるの完全に忘れてた
697 :
683 :2007/03/19(月) 02:42:04
遅くなって申し訳アリマセン・・・ 言語はC++です>< ヨロシクお願いします;;
699 :
268です。 :2007/03/19(月) 12:13:49
>>270 >>271 大変遅くなりました、レスどうもありがとう!
700 :
683 :2007/03/19(月) 12:57:08
>>698 遅いじかんにも関わらずありがとうございました。本当感謝です!
ですがC++でお願いしたいです;;
みなさん引き続き
>>683 の宿題をお願いします;;
多分C++に焼き直す人は出てこないと思うぞ
こういう顧客いるよな・・ すべてにおいて後だしジャンケン・・
>>700 C++でもコンパイル出来ると思うけど、クラスを使えってことか?
そんなのは問題文に書いてなかったので願い下げだが。
704 :
683 :2007/03/19(月) 22:17:01
わかりました。 みなさんご協力感謝いたします。 ありがとうございました。
ところで、べき乗をするプログラムって結局どうやって書くんですか? マイナスにも対応させるもので。
a^b = e^(ln(a) * b)
そうそう、んじゃ平方根を求めるプログラムはどう実装しますか?
pow(2, 0.5)ってやるとね、√2が求められるんよ。そも含めたら、べき乗の実装って難しくね?
しょうがないな〜
pow(2, 2.5) ってのは、2^2 * √2になってんよ。けど、これは 0.5 だった場合√でいけるかもしれへんけど 0.3 とか 0.6 とかだったらもうお手上げじゃんかぁ。べき乗ってむじぃ〜
テイラー展開とか学ぶのは大学レベルだったか。 中学生や高校生にはまだ難しいかもな。
嫁とか命令してんじゃねーよ、このすっとことどっこい、タコ助が!嫁じゃねーよ嫁じゃ。 お前がそのべき乗をするpowライブラリを自分で実装してから偉そうなことを家よ、なぁ? ぼくちん?もちかちてぇ、答えられないのに知らない人に対してだけは自分も知らないのを 隠したまま偉そうにでけぇ面しちゃう知ったかでちゅかぁ〜?w
あぁ、大学でマクローリンとかやったなぁ。微積分の授業で。
>712 >714 最近は高校でやらないの?? おじさんの時代は高校でやったけどなぁ(遠い目
俺の高校ではやったな ただしマクローリンとか名前は出てこなかった。
指数、対数は高校でやったよ。マクローリンとかテイラーは大学だったけど・・・ どの道、logの応用でしょ?
高校で三角関数の微分をやったついでに 先生がテイラー展開使ってオイラーの公式を導いたとき、 クラス中からどよめきが上がったのを今でもはっきり覚えてる。 もう10年前か……
俺も工房だったころは10年くらい前・・・時が流れるのは速いもんだ。
>(* ここに解答を書き加える *) に見覚えがあるのは俺だけじゃないはずだ
しかし下手糞な宿題だよなあ・・
あぁ〜〜いとぅいまてぇ〜〜〜ん
bccってC99に対応してるのか
してない。
[1] 授業単元: プログラミングの基礎
[2] 問題文(含コード&リンク):
グループメンバー(4人)の名前、入学年度
学生番号、学科、組(A,B)を格納する構造体を宣言し、初期化せよ。
また、それらをキーボードから入力できるようにし結果をディスプレイに表示せよ。
但し、入力部分の関数、出力部分の関数、メイン関数にプログラムを分けよ。
その際に、入力部分の関数、出力部分の関数については引数は構造体へのポインタとなるようになっていること。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限:3月23日
[5] その他の制限:特になし
>>207 と同じ問題なんですがまだできてません。
どなたかよろしくお願いします。
お前は10日間何をやっていたのかね
>>727 #include <stdio.h>
#define MEMBER_NUM 4
typedef struct tag_group_member{
char nyuugakunenndo[128];
char gakuseibanngou[128];
char gakka[128];
char kumi[128];
}group_member;
void group_member_input(group_member *member){
scanf("%127s", member->nyuugakunenndo);
scanf("%127s", member->gakuseibanngou);
scanf("%127s", member->gakka);
scanf("%127s", member->kumi);
}
void group_member_print(group_member *member){
printf("%s\n", member->nyuugakunenndo);
printf("%s\n", member->gakuseibanngou);
printf("%s\n", member->gakka);
printf("%s\n", member->kumi);
}
int main(void){
group_member member[MEMBER_NUM];
int i;
for(i=0;i<MEMBER_NUM;i++) group_member_input(&member[i]);
for(i=0;i<MEMBER_NUM;i++) group_member_print(&member[i]);
return 0;
}
int main(void){ 才能を感じた。
ただの行数節約じゃねーの?
何の変哲も無いような気がするんだが・・・・
どの辺が才能の片鱗なのか判らなかった
「mainの返値はintと規定されているので、voidと書くと叩かれる」というの をふまえて、引数についてはvoidが認められていることを知らず、褒め殺した つもりなのではないだろうか。
あー・・・皮肉りたかったんだけど 自分の無知さを曝け出しちゃったクチなのかな? つか別に課題提出程度じゃ void main(void){} とかでも良くね?
よくねえよ
>>735 書いた後に気付いたけど
gcc 3.4じゃ警告くらい出るかな。
訂正&吊ってくる
お前らホントに mainの戻り値・引数論争とmalloc-free論争と数学論争が好きだよな。
最近宿題が少なくて寂しいからな
realloc論争もしてみたいな
realloc に論争の種なんかあるか?
>>741 mallocとfreeなんかいらんだろreallocで全て代用でき(ry
とか。
俺はまったくそうは思わないけど、たまにこういう論を出す人が
おれ、なんかポインタと文字列の扱いに慣れてきたような気がする! このまま突っ切って、ファイルも扱えるようになって、プロのグラマーになってやるぜ!
なんか、ぬるぽ いんたって面白いな!
>>746 ごめん、俺馬鹿だからコメント書いてないと分からないや
>>746 俺もちょっと説明して欲しいところだ。
速くする以前に問題点を挙げる。
int prime[50000];
VC++2005のデフォルトの設定ではスタック使いすぎで正常動作しなかった。
とりあえずグローバル変数にしてメモリ確保して回避した。
50000じゃ足りないぞ。バッファーオーバーランします。
無駄が多い以前にちゃんと素数の個数は出る?
答えが合っているかわからんですが(オイオイ!) このプログラムのアルゴリズムわからんので勘ですが for(i = 0; prime[i] * prime[i] <= no; i++) { これだけで劇速。
それと > for(i = 1 なんで1からなん?
>>746 斜め読みしただけだが。
1)変数counterに全く意味が無い。
2)区間内の素数の個数を数え上げる最後のループの効率が非常に悪い。
prime[]の中身は昇順にならんでいるのだし、2重ループは不要。
3)yまでの素数でよいのだから、最初からyまでの範囲を処理するように
すればよい。
>>753 > 3)yまでの素数でよいのだから
yが小さい場合は一瞬で終わるね。
実行するごとに999999までのすべての素数を求めるなんて無駄すぎる。
prime[] って不要では? まずは、素数を求めるのに必要なアルゴリズムを検索などすることをオススメする。 ていうか、 x = (x%2) ? x: x+1; // 偶数なら+1 for (no=x; no<=y; no+=2) で良くない?
>>756 「
>>746 のアルゴリズムでは」prime[]は必要。
ある数Nが素数であるかどうかを、N/2以下の素数で割った余りが0かどうかを
調べている。つまり、素数の集合を「知っている」必要があり、それを
保持しているのがprime[]。
prime[]を生成保守しつつ素数を求めていくには、xが何であろうと、最初から
順にやっていかざるを得ない。yで打ち切ることは可能。
>>752 あ〜
> for(no = 5; no <=999999; no +=2)
+=2 だったのか見逃してた。
だいぶ速くなったから、解決?
ありがとうございました! いろいろ指摘してもらえて、勉強になりましたm(__)m
しかし
>>746 程度のソースを読んで理解できない奴がこれほど多いとはな。
本人乙 最低限のコメントくらい入れろよ?
762 :
760 :2007/03/21(水) 11:09:15
普通は、というかまっとうな社会人ならコメントは入れるだろ。 コーディング規約にも書いてあるだろうしな。 学生なら要らないんじゃないの?仕事じゃないし。
これほど目くそ鼻くそを笑うがピッタリ来るのも珍しい
どの程度のコメントが必要か、というのは議論の分かれるところではある。 が、この程度のソースをコメントなしでは読めないのなら、 それこそ仕事にならん。
春分の日だなぁ
それ以前にテンプレ違反なわけだが
>>760 みたいな見下した言い方しか出来ない奴と
一緒に仕事した事なくてよかった
コメント無いソースより尚たちが悪いからなー(゚∞゚)=3
(゚∞゚)=3
これが読めないんじゃ、STLやboost、CRTのソースなんて全然読めないんだろうなぁ
偶々自分で分かるのがあったからはしゃいじゃったんだろう ぬるーしてやれ
772 :
760 :2007/03/21(水) 11:22:27
多少言い過ぎてすまんかったCASLからやり直してくる。
>>768 不要なコメントがあるソースは邪魔なだけ、だよ。
ライブラリではないからドキュメント的なコメントは不要だし
エクスポートすべき型や外部変数、関数を定義しているわけでもないし
難解で非自明なアルゴリズムが記述されているわけでもない
「素数を求める」という非常に単純な問題であり、それは明示されている
これで分からないのは馬鹿だけ
論破できなくなったら騙って誤魔化すのか。 たいしたことのないソースは読めない 茶化すことしかできない馬鹿が集合してるなここは
>>775 自分が馬鹿なのをコメントが無いことに責任転嫁できると思ってる連中だからな
「仕事」とか言ってるが、本当に仕事をしたことがあるのかさえ疑わしい
ブーメラン
どんなコメントでもあったほうがいいけどな 内容が正しいという前提で
>>778 i = 28; /* i に 28 を代入する */
こういう類のコメントは「内容が正しい」が、
「プログラム書法」以来、およそプログラミングの
スタイルを語る本ではボロクソに貶されてるよ。
自明だから不要だし、コードを直せばコメントも直さなければならない。
手間が増えるし、コメントとコードの同期が取れなくなる可能性もある訳だ。
そして「誤ったコメント」はコンパイラやテストによってチェックされない。
不要なコメントは、百害あって一理なし、だよ。
なんだ、スレが伸びていると思ったら・・・また0^0=1の議論かとオモタじゃねーかYO!
またくだらねーあおりごっこかよ
>>779 それは要らないね
ただ、実際
>>746 のソースみてコメント欲しいって人が居たから
コメントはあったほうがいいんじゃないの?
>>757 をソースの行頭に入れるだけでかなり判りやすくなるよ
それがコメントのあり方じゃないの?
俺が理解できるソース→コメントいらないし、それで理解できない奴は馬鹿
これはあまりにも乱暴というもの
おまえらホント暇なんだな・・
20秒くらいかかってたのが yの値によるけど1秒以内に計算できるようになってよかったね。
, -─- 、 , -‐- 、 ,, -'" `V `‐、 / \ ./ \ / ヽ ./ / l ヽ / / / / ./ / l | .l .lヽ | l. l / / / ./ .l | | l / / l l.〉 l、 | | l / / ./ ./ |. l | ./ ./ ./ | |./ l、| | l // ///| l / / //// / / ∧∧∧∧∧∧∧∧∧∧∧∧ l、l | /l///_/ l / //_|/_∠| / | / .< 俺が理解できるから > /⌒ヽ | \ `ー' ゝl // `ー' /|/⌒v' < コメント不要! > | l⌒l l|  ̄ ̄"//|〉 ̄ ̄ ̄ .|/^_l.l ∨∨∨∨∨∨∨∨∨∨∨∨ ヽゝ(ー| /| ´ \| ll ),l'ノ lヽ_ / | ┌───7 /._/ .l/ | l ̄ ̄ ̄/ / / ,ノ! / |.. V´ ̄∨ ./ /,.-‐'" .| ./ (;;) |\ `ー‐'´ / / | | _|_\ /| ./ | (| ,.-‐'" | \__/ .|/ _,.-─; |/ .(;;) |─────┤ _,.-‐'":::::::::/  ̄ |::::::::::::::::::::::::::::::|^l::::::::::::::::::
コメントなくても時間かければ大抵の人がわかるだろ。
なんという横暴
時は金也
>746はこんなんで十分だと思うんだが。 #include <stdio.h> int main(void) { int i, j, x, y, count = 0; int counter = 0; scanf("%d%d", &x, &y); for(i=x; i<=y; i++) {   int flag = 0;   for(j=2; j*j<=i; j++) {    if(i%j==0) {     flag = 1;     break;    }   }   if(!flag) count++; } printf("%d\n", count); return 0; }
入力範囲が仮定されてるなら 予め素数リスト作成しておくのも手だな
π(10^6) = 78498 だから素数リストだけでかなりの量になりそうだな
>>791 それ速いね。1秒以内に終わる。
工夫なんてj*jくらいか。
昔に比べてパソコンは速くなったもんだ。
>>792 さらに速くなるね。
>>793 でもその程度なら出来ちゃうね。
最近のメモリの搭載量とか考えると。
折角作ったので。 int test9(int x, int y) // 引数にした { int i,no,sum = 0; int * prime = NULL; int ptr = 0; prime = (int *)malloc(100000 * sizeof(int)); prime[ptr++] = 2; prime[ptr++] = 3; for(no = 5; no <=y; no +=2) { int flag = 0; for(i = 1; prime[i] * prime[i] <= no; i++) { if(no % prime[i] == 0) { flag = 1; break; } } if(!flag) { prime[ptr++] = no; if(no >= x) ++sum; } } free(prime); printf("sum = %d\n",sum); return sum; }
>>793 ってどういう意味なんでしょ??
厨房のもわかるように教えて欲しいとです
>>796 π(x) は x 以下の素数の個数を表す関数
便利な関数があるもんだな。 ネーミングに疑問が残るけど。
primeのpだよ。p_nの逆関数。
>>793 32bit変数に格納するとして314KByteだな
メモリと応答速度のバランスを考える場合
ある程度の範囲ごとに個数の合計をとっておけばいいので
実際にはその1/100〜1/10000で十分だと思う
足りない分はその都度計算
どの程度の間隔で個数の合計をとっておくかは運用次第だけど
そういうのは小手先って言う
>>797 どもでし
78498ってゆうのは一体どこから??
>>803 10^6以下の素数は全て既知だから普通に数え上げた結果。
あ!ミスってた
>>804 ありがとございます
暗記してたって感じなんですね
たとえ暗記してなくても見るとこ見れば載ってる。
ずっとそこ
>>795 にあるお、永遠にあるお( ^ω^)
#define PRIME_NUM_MAX 10000 int is_prime(int value){ static int prime[PRIME_NUM_MAX]={2, 3}; static int prime_num=2; int i, j, is_prime; if(value<2) return 0; if(value%2==0){ if(value==2) return 1; else return 0; } for(i=prime[prime_num-1]+2;prime[prime_num-1]<=value;i+=2){ is_prime=1; for(j=0;j<prime_num && prime[j]*prime[j]<=i;j++) if(i%prime[j]==0){ is_prime=0; break; } if(is_prime){ if(prime_num>=PRIME_NUM_MAX) break; prime[prime_num++]=i; } } for(i=0;i<prime_num && prime[i]*prime[i]<=value;i++) if(value%prime[i]==0) return 0; if(i>=prime_num) for(i=prime[prime_num-1]+2;i*i<=value;i+=2) if(value%i==0) return 0; return 1; }
練れば練るほど悪くなるという良い見本だなこりゃw
>>791 なんでか知らんがやり直してみたら
かなり速い結果となった。
配列使わず総当り(といってもj*jまで)の方が
かなり速いってことだな。
というか素数の数を数えるんじゃないの。 処理が変わってるよ。 条件 1 ≦ x ≦ y ≦ 999999 だ! x,yが5以下のときも正しい結果になるかチェックしとけよ(特に俺とか) 1は素数じゃないよね?
訂正 #define PRIME_NUM_MAX 10000 ↓ #define PRIME_NUM_MAX 100000
>813 1が素数になってたから修正 #include <stdio.h> int main(void) { int i, j, x, y, count = 0; scanf("%d%d", &x, &y); for(i=x; i<=y; i++) { int flag = 0; for(j=2; j*j<=i; j++) { if(i%j==0) { flag = 1; break; } } if(!flag) count++; } if(x==1) count--; printf("%d\n", count); return 0; }
816 :
810 :2007/03/21(水) 14:41:34
>>791 なんでこんなに速いんだろ。
不思議。
それまでの素数を記憶しない方がいいものなのかな。
記憶する必要ないと思うぞ
>>817 最適化で変数が全部レジスタ上に置かれてるんだろう。
素数を記憶するとメインメモリを読み書きする必要があるから遅くなる。
要するに
>>757 はまったく見当違いだったってことだな
>>820 >「
>>746 のアルゴリズムでは」prime[]は必要。
今見直してみるとここ笑えるw断言しちゃってるしw
理論先行型というやつか
825 :
810 :2007/03/21(水) 15:11:30
826 :
756 :2007/03/21(水) 15:15:46
>>820-821 「アルゴリズム的に必要」は間違いないんでは?
ただ、結果的に実用的じゃないってだけで。
/*
>>760 の生き様 */
俺様の理論を見ろ
>>757 ↓
この程度のソースも理解できないのか(プッ
>>760 ↓
俺様はコメント無くてもソース理解できるんだぜ?
>>765 ↓
コメントのないソース理解出来ない奴は馬鹿
>>773 ↓
不要なコメントは、百害あって一理なし、だよ。
>>779 ↓
ずっと俺のターン!!
>>786 ↓
俺様の理論が根本的に見当違いだったことが判明
>>791 ↓
PCの向こうでずっと俺のターン!! ←いまここ
>746が遅いのは数える所のループのせい。 for(i=0; prime[i]<x; i++); sum = ptr - i; とでもすればかなり速くなる。
これだと範囲に素数がないと正しく動作しないな。 for(i=0; i<ptr && prime[i]<x; i++); こうか。
結局は篩が安定してんじゃね? #include <stdio.h> char sieve[1000000] = {0}; int main(void) { int i, j, x, y, count = 0; scanf("%d%d", &x, &y); sieve[0] = sieve[1] = 1; for(i=2; i*i<=y; i++) { if(sieve[i]==0) { for(j=i*2; j<=y; j+=i) sieve[j] = 1; } } for(i=x; i<=y; i++) if(!sieve[i]) count++; printf("%d\n", count); return 0; }
エラトステネス最強!!!
テトラジェネシス?
#include <stdio.h> int prime[500000]; int main(void) { int i, j, x, y, count, ptr = 0; scanf("%d%d", &x, &y); prime[ptr++] = 2; prime[ptr++] = 3; for(i=5; i<=y; i+=2) { int flag = 0; for(j=1; prime[j]*prime[j]<=i; j++) { if(i%prime[j]==0) { flag = 1; break; } } if(!flag) prime[ptr++] = i; } if(y==1) count = 0; else if(y==2) count = 1; else { for(i=0; i<ptr && prime[i]<x; i++); count = ptr - i; } printf("%d\n", count); return 0; } >746のアルゴリズムを使って>749,751,753の指摘を元に改良。 1から順に素数を求めるような場合は>791よりもこっちのほうがいい。 ただ、xとyの範囲が狭かったりxが極端に大きかったりすると>791の方がはやくなる。 結局は>830の篩で安定だと思うけど。
ふるいなんて古いぜ!いや、ごめん、ジョーク。←から来たものをぉ〜→へ受け流してほしいぃ〜
こんなところでムード出してる場合じゃない。
いきなりふるいをしてみたぁ〜 プログラムを使わずにいきなり頭の中でぇ〜♪ いや、さすがに頭の中の計算だけで素数を記憶しておくのは厳しいがw
[1] 授業単元:配列 [2] 問題文(含コード&リンク): カードの山を切り混ぜる方法はいくつかある。 ここでは次のような方法をとる。 n枚のカードの山があるとき,山の一番上からp枚目の札から 連続したc枚の札を抜き取り,それをそのまま山の上に置く。この操作を繰り返し行う。 この方法をシミュレートし,最終的に山の一番上にくる札を答えるプログラムを書きなさい。 入力は複数のデータセットから構成される。 各データセットはnとr という二つの正の整数を含む行から始まる。 nとrはそれぞれ山にある札の枚数とカット操作の回数を表す。 データセットはさらにr行続く。その各行は1回のカット操作を表しており これらの操作は順に実行される。 各行はpとcの二つの正の整数を含む。 ただし,pとcは p + c ≦ n + 1を満足している。 札の山の一番上からp枚目の札から,c枚の札を山から抜き取り,その山の一番上に置く。 各入力行は一つの空白で区切られた二つの整数を含む。行内にその他の文字はない。 [3] 環境 [3.1] OS:Windouws [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C++ [4] 期限:無期限 [5] その他の制限:とくになし
山に置く時の順番は?
どんなカード?UNOでも花札でも?
あ、すまん、書いてあった。
>>837 カードは仮に連番の数字に置き換えてやってみた
#include <stdio.h>
#include <stdlib.h>
void init_array(int *a, int n) {
int i;
for(i=0; i<n; i++) a[i]=0;}
void main(void) {
int *card, *s_card;
int i,j,n,r,p,c;
do{ printf("Input n r \n");
scanf("%d %d",&n,&r); }while(n<0 || r<0);
card = (int*)malloc(n*sizeof(int));
s_card = (int*)malloc(n*sizeof(int));
for(i=0; i<n; i++)
card[i]=i+1;
for(i=0; i<r; i++) {
do{ printf("Input p c \n");
scanf("%d %d",&p,&c); }while( (p<0 || c<0) || (p+c>n+1) );
init_array(s_card,n);
for(j=0; j<c; j++)
s_card[j] = card[p-1+j];
for(j=p-1; j>0; j--)
card[j+c-1] = card[j-1];
for(j=0; j<c; j++)
card[j] = s_card[j];
// 途中経過の表示(不要なら削除)
for(j=0; j<n; j++) printf("%2d番目 : %d \n",j+1,card[j]); }
printf("山の一番上のカード : %d \n",card[0]); }
>>837 [3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C++
なんと嫌がらせのような条件だろうか。
>841 >for(j=p-1; j>0; j--) j>=0じゃない?
あれ、催促禁止のテンプレってなくなったの?
(* ここに糞レスを書き加える *)
ダイナミックプログラミングってリフレクションとかの話かと思ったら、 動的計画法か。
>>844 じゃないって言うならまずやって適切な答えが出るか調べたら?
5セントは無し?
>>746 (
>>815 )
#include <stdio.h>
int main(void)
{
int i, j, x, y, fPrime, nCount = 0;
scanf("%d%d", &x, &y);
if (y < 2) {
printf("none.");
return 0;
}
if (x <= 2) {
printf("2\n");
x = 3;
nCount++;
}
x = (x % 2) ? x : x + 1;
for (i = x; i <= y; i += 2) {
fPrime = 1;
for (j = 3; j * j <= i; j += 2) {
if (!(i % j)) {
fPrime = 0;
break;
}
}
if (fPrime) {
printf("%d\n", i);
nCount++;
}
}
printf("Count = %d\n", nCount);
return 0;
}
10人の男と10人の女がいたとする。 まず、いちばんもてる男に、女が3人くらい寄っていく。 2番目にもてる男も、負けじと2人くらい持っていく。 したがって3番目の男は、6番目の女と一緒になる。 以下、4番目の男は7番目の女と、5番は8番と、 6番は9番とカップルになる。 しかし、残る7番目以降の男にもプライドだけはあるので、 最後に余った10番目の女など誰も相手にしようとしない。 さて、上位の女を独占したNo.1&2のモテ男も、 最終的には一人を選ばねばならないから、 ここで3人の女があぶれる。 でも、すでにモテ男と付き合った経験のあるこの3人の女は、 いまさら下位の男と一緒になろうなどとは考えない。 こうして、互いに性質の異なる独身男と独身女が残る。 ここに居るのは7番目以降の男と10番目の女w 男 女 1 ○ ○ 2 ○ × 3 ○ × 4 ○ ○ 5 ○ × 6 ○ ○ 7 × ○ 8 × ○ 9 × ○ 10 × ×
>>855 この問題は C で解決するのか?
C++ とは アッー の事か?
そもそも問題なのか? 状況を提示されただけのような気がするんだが
この状況が問題なんだな
どう見ても問題じゃないだろw
すげぇ。。。
いわゆる「安定な結婚」問題かと思ったら違うようだな。
>>845 こんなん出ました
p = s % size[i];
newvalue = s / size[i] + value[p];
----------------------
value[s] = newvalue;
item[s] = i;
>>837 C++にしてみたが、本人見てる?
#include <iostream>
using namespace std;
void init_array(int *a, int n) {
int i;
for(i=0; i<n; i++) a[i]=0;}
void main(void) {
int *card, *s_card;
int i,j,n,r,p,c;
do{ cout << "Input n r \n";
cin >> n >> r; }while(n<0 || r<0);
card = (int*)malloc(n*sizeof(int));
s_card = (int*)malloc(n*sizeof(int));
for(i=0; i<n; i++)
card[i]=i+1;
for(i=0; i<r; i++) {
do{ cout << "Input p c \n";
cin >> p >> c; }while( (p<0 || c<0) || (p+c>n+1) );
init_array(s_card,n);
for(j=0; j<c; j++)
s_card[j] = card[p-1+j];
for(j=p-2; j>=0; j--)
card[j+c] = card[j];
for(j=0; j<c; j++)
card[j] = s_card[j];
// 途中経過の表示(不要なら削除)
for(j=0; j<n; j++) cout << j+1 << "番目 : " << card[j] << endl; }
cout << "山の一番上のカード : " << card[0] << endl; }
[1] 授業単元:情報処理 [2] 問題文(含コード&リンク): カレントディレクトリにあるFileという名前のファイルをスタートアップにコピー [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 4 [3.3] 言語: C [4] 期限: 2007年04月15日まで [5] その他の制限: %ALLUSERSPROFILE%かUSERPROFILEなど、環境変数を使うとのこと すみません、よろしくお願いします
>>865 OS をもっと詳細に!
ってかそれもプログラムで判別しないといけない?
867 :
865 :2007/03/24(土) 03:22:28
>>866 申し訳ないです。OSはWindowsXPです。
環境変数の取り扱い難しいですね
>>865 環境変数を使うのは下策。「スタートアップ」なんて名前になっているのは
日本語Windowsだけだし、それもユーザが変更しているかもしれない。
そんな方法は取らないように。
#include <stdio.h>
#include <windows.h>
#include <shlobj.h>
/* compile with -mwindows -D_WIN32_IE=0x500 */
int main()
{
char szPath[MAX_PATH];
if (!SUCCEEDED(SHGetFolderPathA(0, CSIDL_STARTUP, 0,
SHGFP_TYPE_CURRENT, szPath)))
{
printf("SHGetFolderPath() Failed.\n");
return 1;
}
printf("Copying \"File\" to \"%s\".\n", szPath);
if (!CopyFileA("File", szPath, FALSE))
{
printf("CopyFile() Failed.\n");
return 1;
}
return 0;
}
869 :
865 :2007/03/24(土) 19:40:38
>>868 なるほど、CSIDL_STARTUPで取るわけですね。
ありがとうござます。精進します。
初歩的な質問かもしれませんがよろしくお願いします。 [1] 授業単元: プログラミング初級 [2] 問題文(含コード&リンク): 10名分の試験の点数をキー入力し、その後、それらのデータをファイルに出力せよ。次に、 作成したファイルから10名分の点数データを入力し、それらの合計と平均を計算して画面出力せよ。 [3] 環境 [3.1] OS: WindowsXP [3.2] Visual studio C++ 6.0 [3.3] 言語: C++ [4] 期限:3月26日月曜日 12時まで 備考 最初のプログラム文は #include <stdio.h> int main(void) から始まるプログラムでお願いします。
#include < s t d i o . h >とか int main( v o i d )とか見る限りはCだな
すいませんCでした。。お願いしますm(_ _)m
だがあえてC++でやる!! #include<stdio.h> int main(void) ; #include<iostream> #include<algorithm> #include<fstream> #include<vector> #include<numeric> int input(){return *std::istream_iterator<int>(std::cin);} int main(){ std::vector<int>data(10); std::generate(data.begin(),data.end(),input); std::ofstream fout("out.txt"); std::copy(data.begin(),data.end(),std::ostream_iterator<int>(fout,"\n")); double sum = std::accumulate(data.begin(),data.end(),0.0); std::cout << "合計 = " << sum << std::endl << "平均 = " << sum / data.size() << std::endl; }
自分がやる課題の言語すら把握していなかったとは…。
>>874 そんなん提出したら殴られそうだなwwww
>>870 #include <stdio.h>
#define NITEM(array) (sizeof(array)/sizeof(array[0]))
int main(void){
int score[10], i, total;
FILE *fp_in, *fp_out;
char *filename="ファイル";
for(i=0;i<NITEM(score);i++) fscanf(stdin, "%d", &score[i]);
fp_out=fopen(filename, "w");
if(fp_out==NULL){
fprintf(stderr, "\nError : %s file cannot open.\n", filename);
return 1;
}
for(i=0;i<NITEM(score);i++) fprintf(fp_out, "%d\n", score[i]);
fclose(fp_out);
fp_in=fopen(filename, "r");
if(fp_in==NULL){
fprintf(stderr, "\nError : %s file cannot open.\n", filename);
return 1;
}
for(i=0;i<NITEM(score);i++) fscanf(fp_in, "%d", &score[i]);
fclose(fp_in);
for(i=0,total=0;i<NITEM(score);i++) total+=score[i];
printf("Total:%d\nAverage:%f\n", total, (double)total/NITEM(score));
return 0;
}
っしゃらぁ!構造体、ポインタ、文字列に慣れてもっとプログラミングテクニックが上がって 楽しくなってきたぜ!本年度も宿題にばんばん答えてやる!って言っても、たぶんほとんど 毎年同じネタが出るんだろうなぁ・・・
構造体、ポインタ、文字列に慣れていなかったような奴が 今まで宿題に答えていたのか?
どう考えても間違いない気がします。お願いします。 [1] 授業単元:プログラミング入門 [2] 問題文:以下の各文にある間違いを見付け、修正せよ printf("%d を %d で割った余りは %d \n", x, y, x % y); [3.3] 言語:C [4] 期限:[無期限] [5] その他の制限:なし
>>880 その一文だけだと判断できないような。xやyは何なのか。
printf("%d を %d で割った余りは %d \n", (int)x, (int)y, (int)x % (int)y); こうゆう事じゃね?
#include <stdio.h> int main(void){ printf("%d を %d で割った余りは %d \n", x, y, x % y); return 0; }
他にも問題があるんですが、すべて変数の型宣言が無いので 既に宣言されてるものとした上での問題みたいです。
じゃあ他の問題も晒せよ
他の問題でscanfとかがあって、その続きのプログラムとして 上の問題が出されたのであれば判断できるな
ついでに質問なんですが、
>>883 氏のように記述しても、動作するんですか?
型宣言は実行文の前にしなくちゃいけなかったような。。
>>880 >以下の各文にある間違いを
各文てことはその分以外かもしれないんじゃないのか?
printf("%d を %d で割った余りは %d \n", x, y, x % y); の一文しか書かれてないってのは変だな
どう考えても printf("%d を %d で割った余りは %d \n", x, y, x % y); だけじゃ判別しようがない罠
printf("%d を %d で割った余りは %d \n", x, y, x % y); この一文だけ見たら特に間違いは見つからないんだけど… printf("%d に1足すと %d さらに1足すと %d\n", x, x++, x++); ↑関係ないけどこういう問題は良く出るよね。
x, yが副作用を伴うマクロだとかいうオチだったりして
負数とか?
printf("%d を %d で割った余りは %d \n", x, y, (x > 0) == (y > 0) ? x % y : x % y + y); じゃないの?
ANSI Cなら%演算子の片方のオペランドが負数の場合の結果は処理系依存 一定した結果が必要であればldivを使わないといけない
>>896 嘘を書くな嘘を。
ANSI Cでは負数の除算は0方向に切り捨てとなっている。
だから余剰も処理系には依存せずに、同一の結果を出す。
あれ、規定されたのってC99からじゃなかったっけ?
JIS X 3010 : 1993 (ISO/IEC 9899 : 1990) §6.3.5 | 整数同士の除算で割り切れない場合, 両方のオペランドが正の値をもつとき, | / 演算子の結果は, 代数的な商より小さい最大の整数とし, % 演算子の結果は, | 正の値とする。一方のオペランドが負の値をもつ場合, / 演算子の結果が代数的な | 商以下の最大の整数とするか, 又は代数的な商以上の最小の整数とするかは, | 処理系定義とし, % 演算子の結果の符号も処理系定義とする。 | 商 a/b が表現できる場合, 式 (a/b)*b+a%b は,a に等しくなければならない。
どっちでもいいけど何が正しいのかわからないと 間違ってるとはいえない罠
JIS X 3010 : 2003 (ISO/IEC 9899 : 1999) §6.5.5 | /演算子の結果は, 第1オペランドを第2オペランドで除したし商とし, | %演算子の結果は余剰とする。両演算子とも, 第2オペランドの値が0の場合, | その動作は未定義とする。 | 整数同士の除算の場合, /演算子の結果は代数的な商から小数部を切り捨てた値とする。 | 商 a/b が表現できる場合, 式 (a/b)*b+a%b は,a に等しくなければならない。
>>880 の問題って、本当に
printf("%d を %d で割った余りは %d \n", x, y, x % y);
だけか?
>>880 は誰かに本当にその問題を出されたのか?
期限が無期限なら、ほっといたら良いじゃん。
>>879 そうだお ( ^ω^)
もっとも、ソート、素数、その他そういうのを必要としない数値計算なら出来たお( ^ω^)
ポインタは知ってたけど、最近になってポインタのポインタについて理解したところ。
904 :
デフォルトの名無しさん :2007/03/26(月) 10:28:09
さぁ、ファイルの取り扱いについてやりまつ。もうC言語マスターへの道はそう遠くない!
905 :
デフォルトの名無しさん :2007/03/26(月) 11:41:50
どうしたぁどうしたぁ!とっとと宿題を出せYO!
C言語でタンジェントのテイラー展開
907 :
デフォルトの名無しさん :2007/03/26(月) 17:20:39
そういう小難しい数値計算はスルーする
tan(x)の級数展開はベルヌーイ数が出てきてややこしい。
sinとcosに分けるのはダメ?
>>907 tanのテイラー展開は数値計算じゃないだろ
数式処理だ
911 :
デフォルトの名無しさん :2007/03/26(月) 19:17:02
さぁ!0^0=1を二項展開から導こうじょのいこ!?
#define OO0O0 1 #define OO0OO 10 #define OO000 printf #define OO00O " %2d" #define O0OOO for #define O0OO0 int #define O0O0O "\n" #define O0O00 return #define O00OO main #define O00O0 ++ #define O000O = #define OOOO ( #define OOO0 ) #define OO0O ; #define O0OO { #define O0O0 } #define O00O , #define O000 < #define OOO * O0OO0 O00OO OOOO OOO0 O0OO O0OO0 OOOOO O00O OOOO0 OO0O O0OOO OOOO OOOOO O000O OO0O0 OO0O OOOOO O000 OO0OO OO0O OOOOO O00O0 OOO0 O0OO O0OOO OOOO OOOO0 O000O OO0O0 OO0O OOOO0 O000 OO0OO OO0O OOOO0 O00O0 OOO0 OO000 OOOO OO00O O00O OOOOO OOO OOOO0 OOO0 OO0O OO000 OOOO O0O0O OOO0 OO0O O0O0 O0O00 0 OO0O O0O0
914 :
913 :2007/03/26(月) 20:31:55
誤爆
これは酷いw
んでも捻りが足りないな
Brainfuckでおk
brainfuckで九九か・・・おもしろそうだw
もしかしたらスレ違いかもしれませんが…。 [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク): 以下の機能を実現するプログラムをCのCGIで作成。 エラーチェックを行うこと。 1)登録:氏名、番号、科目1〜3の点数をdata.datファイルに出力 2)検索:フォームに入力された番号から氏名、科目1〜3の点数を検索し表示 3)更新:フォームに入力された番号の科目1〜3の値を変更 4)削除:フォームに入力された番号の氏名、科目1〜3の値を削除 5)順位:data.datに登録されたデータのうち、科目1〜3の点数の平均ベスト5を表示 6)全件表示:data.datに登録されたデータを全て表示する [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc4.1 [3.3] 言語: C [4] 期限: 早いほど良い [5] その他の制限: ありません。 CGIやファイルの動作が分かりません。 フォームから受け取った値を配列に代入して動かしてみましたがうまくいきません。
>>919 1.何をどう動かしたのか。
2。うまくいかないという判断は何をもってしたのか。
とりあえずこれくらいは答えろ。
921 :
919 :2007/03/27(火) 00:07:42
>>919 すみません。
1.フォームから値を受け取って配列に代入するところまではできたと思います。
ただ、それをファイルにどう出力すべきかが分かりません。
int型とchar型を扱うので構造体を扱えない自分ではどのようにすればいいか…。
2.フォームから受信したデータを切り分けるのに失敗して混ざってしまいます。
ここらへんはググってみたんですがだめでした。
配列の型は何か。 配列にはデーターがどのように入っているのか。
とりあえず自分の書いたコード晒してみるのが早いと思うよ
924 :
919 :2007/03/27(火) 02:55:28
>>923 こんな感じです。
/*touroku.c*/
#include <stdio.h>
#include <string.h>
int savef(char *num,char *name,char *sbj1,char *sbj2,char *sbj3);
int main(void)
{
int i,len;
char c;
char pBuf;
char name[64],num[5],sbj1[4],sbj2[4],sbj3[4];
len=atoi(getenv("CONTENT_LENGTH"));
c= getenv("CONTENT_LENGTH");
if(c==NULL){
printf("データがありません\n");
exit(1);
}
for(i=0;(c=getchar())!=EOF;i++){
if(c!='\r' && c!='\n')
pBuf[i]=c;
else
i--;
}
pBuf[i]='\0';
num=strtok(pBuf,"&");
name=strtok(pBuf,"&");
sbj1=strtok(pBuf,"&");
sbj2=strtok(pBuf,"&");
sbj3=strtok(pBuf,"&");
925 :
919 :2007/03/27(火) 02:56:18
続き1 printf("Content-type:text/html\n\n"); printf("<HTML>\n"); printf("<HEAD>\n"); printf("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"); printf("<TITLE>登録</TITLE>\n"); printf("</HEAD>\n"); printf("<BODY>\n"); printf("CONTENT_LENGTH = %d<BR>\n",len); printf("受信したデータ<BR>\n",pBuf); printf("番号=%d<BR>\n",num); printf("氏名=%s<BR>\n",name); printf("科目1=%s<BR>\n",sbj1); printf("科目2=%s<BR>\n",sbj2); printf("科目3=%s<BR>\n",sbj3); printf("</BODY>\n"); printf("</HTML>\n"); savef(num,name,sbj1,sbj2,sbj3); return 0; }
926 :
919 :2007/03/27(火) 02:57:42
続き2 int savef(char *num,char *name,char *sbj1,char *sbj2,char *sbj3) { char fname[64]; FILE *fp; int i; fp = fopen("data.dat", "a"); if (fp == NULL) { printf("file open errer"); return -1; } fprintf(fp, "%d,%s,%d,%d,%d\n", num,name,sbj1,sbj2,sbj3); fclose(fp); return 0; }
>>919 宿題にしてはだいぶ泥臭いな.
924以下のコードはコンパイルできなさそう.
まだ仕様に不明瞭な点があるから,少なくとも以下のことは書いておくべき.
1.送られるデータは日本語(ascii以外の文字)を含むか
2.各入力の長さ,形式(桁数等),内容(上限等)に制限はあるか
3.フォームの各入力部の名前(name属性)
4.各機能毎にフォーム・cgiを作るのか,あるいは全ての機能を1つのcgiで済ませるのか
5.メソッドは全部POSTでおk?
6.data.datの内容は人間にも読めるほうがいいか
7.ファイルの同時アクセスを気にするか
345に関してはhtmlを丸ごと(あるいは<form ..>〜</form>の部分だけでも)
晒すのがベスト
928 :
919 :2007/03/27(火) 08:58:35
>>927 1.氏名に日本語を含みます。
2.入力の長さについてはhtmlのほうで制御しています。
3,5については次レスで書きます。
4.機能ごとにCGIを作ります。
6.dat自体は読まなくてもいいと思います。
7.気にしません。
929 :
919 :2007/03/27(火) 09:01:34
form部分です。 <form name="form1" action="touroku.cgi" method="post" onsubmit="return check()"> <table cellspacing="0" cellpadding="0" width="350" align="center" border="1"> <tr> <td align="right" width="50%">番号</td> <td><input name="num" size="25" maxlength="4" ></td> </tr> <tr> <td align="right" width="50%">氏名</td> <td><input name="num" size="25" maxlength="8" ></td> </tr> <tr> <td align="right" width="50%">科目1</td> <td><input name="sbj1" size="25" maxlength="3" ></td> </tr> <tr> <td align="right" width="50%">科目2</td> <td><input name="sbj2" size="25" maxlength="3" ></td> </tr> <tr> <td align="right" width="50%">科目3</td> <td><input name="sbj3" size="25" maxlength="3" ></td> </tr> <tr align="middle"> <td width="50%" ><input type="submit" value="登録"></td> <td width="50%" ><input type="reset" value="リセット"></td> </tr> </table></form>
930 :
919 :2007/03/27(火) 09:02:09
こちらは空白チェック用のJavaScriptです。 function check(){ for(i=0;i<document.form1.length;i++){ if(document.form1.elements[i].type=="text"){ if(document.form1.elements[i].value==""){ alert("数値が入力されていません。"); return false; } } } return true; }
ちうか、うpロダ使ってくれ・・・
if(document.form1.elements[i].type=="text"){ ってあるのに、フォームの<input>タグの属性に type="text"が入ってねーし
>>933 <!ATTLIST INPUT
-- 略 --
type %InputType; TEXT -- what kind of widget is needed --
-- 略 --
>
>>934 なるほど、基本的な定義でデフォはそうなっているのね。
[1] 授業単元: プログラミング言語演習 [2] 問題文(含コード&リンク): 1次元配列の中に、20人分の得点データ(0点から100点)を初期値代入し、その後、得点を10点幅の10ランクに分け、 それぞれのランクに何人いるかをカウントし、それらの人数を出力せよ。ただし、カウントには2重ループを、出力には 1重ループのfor分を用いること。また、出力した人数がどのランクか(例えば、0-9,10-9,...)が分かるように出力せよ。 [3] 環境 [3.1] OS:Windows XP [3.2] 言語: C [4] 期限: 3月28日13時まで [5] その他の制限: 特になしです
>>919 登録に関する部分しか晒してないみたいだけど、
他に問題に関する条件とか、仕様とか、既に用意されてるものとか、後から出てこない?
あるなら全部まとめて晒してくれ。 うpろだにな。
>>919 strtok、pBuf、辺りが不適切。CONTENT_LENGTH が環境変数なんだろうけど
それにどういう情報が入るのやら俺はさっぱり。その辺りをなんとかすりゃいけそうなソース。
>>936 #include <stdio.h>
#define MAX_NUM 20
int main(void)
{
double marks[MAX_NUM]; /*初期値代入は書くの面倒だからやってないが*/
int cnt[10];
int i,j;
for(j=0; j<10; j++) cnt[j] = 0;
for(i=0; i<MAX_NUM; i++)
{
marks[i] = (double)(rand()%10000)/100.0;
printf("%3d人目:%g\n", i, marks[i]);
}
for(i=0; i<MAX_NUM; i++)
{
for(j=0; j<10; j++)
{
if((double)j * 10.0 <= marks[i] && marks[i] < (double)(j+1) * 10.0) cnt[j]++;
}
}
for(i=0; i<10; i++) printf("%3d点〜%3d点:%d人\n", i*10, (i+1)*10, cnt[i]);
return 0;
}
>>983 POST メソッドの場合、CONTENT_LENGTH には CGI に渡されるデータのバイト長が入る。
データ自体は標準入力から受け取る。
<form>タグを使った場合、データは
key1=val1&key2=val2&.....&keyn=valn
といった形式になる。 ただし、英数字以外の文字は全てURLエンコードされる。
ってか、受け継いだ値を & で区切るみたいだけど、strtok では一番最初に 区切る指定の文字が出てきたら、先頭からそこまでの文字しか返ってこないようだが・・・
943 :
デフォルトの名無しさん :2007/03/28(水) 12:33:01
どうしたぁどうしたぁ!?オラオラ、もっと宿題来いや!
まあ春休みでしょうから
どうせ春休みの宿題が4月第1週の終わりごろに出てくるから、それまでまっとれ
946 :
デフォルトの名無しさん :2007/03/28(水) 15:15:56
IC言語に見えた
> 列の数を入力してください: 2 > 行の数を入力してください:3 > 出力結果(列はリバースオーダー): > 4 5 6 > 1 2 3 列ってcolumnのことだから横方向の数(この場合3)だと思うんだけど、このままでいいの?
行と列が反対のようだな