C/C++の宿題片付けま ..
75:デフォルトの名無しさん
09/03/06 05:46:10
>>23
>>25
>>27
>>33
>>34
>>42
>>46
>>48
>>54
>>57
>>58
>>60
>>63
>>65
>>67
>>70
>>73
>>74
76: ◆.l3Q3ORut2
09/03/06 10:15:01
>>52
余計でしたか・・・いやぁいつも周りに言われるんで
どうやらこれは僕の悪い癖みたいですね(^^;
getch()を使うのですかなるほど・・・
もう少しヒントみたいなの貰えませんか?
若しくは簡単でいいので、コード書いていただいて
それを参考に応用してみたいです
名人、よろです
77:デフォルトの名無しさん
09/03/06 10:34:57
お断りします
お断りします
お断りします
ハ,,ハ ハ,,ハ ハ,,ハ ハ,,ハ
( ゚ω゚ )゚ω゚ )゚ω゚ )゚ω゚ ) お断りします
/ \ \ \ \ お断りします
((⊂ ) ノ\つノ\つノ\つノ\つ)) お断りします
(_⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ お断りします
ヽ ヘ } ヘ } ヘ } ヘ }
ε≡Ξ ノノ `Jノ `J ノ `J ノ `J
78:デフォルトの名無しさん
09/03/06 13:40:45
MSC 5.1ってどんなコンパイラですかね
smallモデルとかlargeモデルとかあるやつ?
79:デフォルトの名無しさん
09/03/06 15:02:47
>>78
おそらくそのはず。
Wikipediaでは、MS Cの最後のバージョンでC++コンパイラとMFC 1.0がついて、
その次からVisual C++という名称になったということになっている。
そして、VC++は1.5までが16ビット版だった。
80:デフォルトの名無しさん
09/03/06 15:11:04
>>68 は、まだ根に持っているんだなw あの程度のことで、麻呂の態度が気に食わなかったのか
未だに必死に、麻呂がいるもんだとトラウマになっているようだが、それとは無関係に
麻呂以外の第三者を、無闇に煽っていることに気づかない、見えない敵と戦う戦士になったようだw
ちなみに、汎用性については、麻呂の方が明らかに軍配が上がった。所詮、お前は
固有のパターンにしか対応できない、融通の利かないヘボプログラマー。環境が変わると、
一からコードを書き直す、無駄が多いタイプ。そういうの、この世界では生き残れないよ。
そう、先行きを考えた前置きが出来ないから。
81:デフォルトの名無しさん
09/03/06 15:14:11
64 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 22:30:57
高校数学レベルの知識が必要な問題になると逃げ出すアホが言っても説得力がないw
↑やたらと自分基準で、勘違いをして「アホ」とか罵詈雑言を平気で使う、
知能レベルの低い基地外。このスレが、生き甲斐、自分の縄張りだと思っているらしい。
66 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 23:19:37
とりあえず、コテハンを付けてもかまってもらえるぐらい大物にならないとな
↑必死に煽るくせに、自分がコテハンを名乗らない小心者。こいつの発言は、いつも無責任。
恐らく無職のニートで、社会に適合しないタイプ。
68 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 23:39:29
>剰余の問題で先を越されて
明らかに麻呂の方が後だったけどw
↑こいつは、我先にとコードの出来よりも、雑でも早く出すことが目的らしい。
恐らく、学生時代には、他人より先に答えることに集中してしまい、
間違っていても自分の答えは正しいと言い張って、周りから干されたタイプ。
82:デフォルトの名無しさん
09/03/06 15:15:58
いったい何が起きてんだ?
剰余の件とか。
詳しく説明よろ
83:デフォルトの名無しさん
09/03/06 15:17:44
まぁ、ここで陰湿な罵倒をしている、麻呂以外の人にも当り散らしている
精神障害の基地外は、恐らく本当の引きこもりなんでしょう。
まともなプログラマーが、いつまでもこんな場所にいるわけがない。
というか、日頃は商売のためのソフトウェアを開発しているしな。
暇な時は、油を売っていないで、自ら学習するし。無能な職員は
遊んでいて、他人任せで生きるんだろうけど、そういう役立たずは
すぐに首切りにされるからねw
84:デフォルトの名無しさん
09/03/06 15:20:06
っつか、もう答えが分かりきっている、高校生だろうが大学レベルだろうが
その問題を解いたくらいで、得意気になっているこの必死なアンチ麻呂は誰?
第三者から見ても、必死すぎてキモイ。
85: ◆.l3Q3ORut2
09/03/06 15:53:55
>>78
昔のNEC製PC9800シリーズに標準で付属してるコンパイラみたいです。
古すぎてこれぐらいしかわからなかったけど、後は>>79の通りなんじゃないかな
というか皆さん>>76を華麗にスルーなさってます・・・
どうかスルーしないでやってくださいお願いします
86:デフォルトの名無しさん
09/03/06 15:57:15
>>85
getch( )ですべてだ
#include <conio.h>
がMSC 5.1で使えるかは知らないが
87:デフォルトの名無しさん
09/03/06 16:14:48
>>84
丁度、春休みに入ったやつじゃね?
88:デフォルトの名無しさん
09/03/06 16:25:17
剰余の問題なんて、中学校レベルだろ、ぎゃはははははwwwww
あの程度で、麻呂ごときに勝ったつもりか?w
89: ◆.l3Q3ORut2
09/03/06 17:05:19
>>86
んーそうですか・・・自分が使ってる麻奈ちゃんの「やさしいC」って参考書には
getchar()しか載ってないようでして
しかも詳しく詳細が載ってるという訳でもなく、調べようにも今手元には参考書が
これぐらいしかなくお手上げ状態です(><
なもんで、申し訳ないんですけど簡単なコードでいいのでお手本書いて貰えませんか?
お願いします
>>87
はい、そうです
さっきからぐぐって調べてみてるんですけど、何分情報量が半端じゃなく
ありすぎるので、目的のサイトが中々見つからないんです
調べ方に問題があるような気もしてきてるのですが、どうしたらいいかも
具体的に思いつかなくて困りました
お助け下さい名人
90:デフォルトの名無しさん
09/03/06 17:37:57
>>89
#include<stdio.h>
#include<conio.h>
int main(void)
{
int i;
char c[16];
for (i = 0; i < 4; i++)
{
c[i] = getch();
putch('*');
}
c[i] = 0;
printf("\nPASS=%s\n", c);
return 0;
}
91:デフォルトの名無しさん
09/03/06 18:48:30
なんで別人のふりしてんの?
92:デフォルトの名無しさん
09/03/06 20:17:12
>>89
参考書とか要らないから
googleにgetchと入力してボタンクリックするだけ
93:デフォルトの名無しさん
09/03/07 02:59:15
あなたたちが課題をやってくれなかったせいで留年しました。
本当にありがとうございました。
94:デフォルトの名無しさん
09/03/07 03:01:16
>>93
来年も留年させてあげます。
おたのしみに。
95:デフォルトの名無しさん
09/03/07 03:11:32
麻呂トラウマで必死な引きこもりが痛すぎw
96:デフォルトの名無しさん
09/03/07 05:30:35
>>93
言う事が朝鮮人みたいだな
自分のせいなのに人のせいにしやがって
97:デフォルトの名無しさん
09/03/07 06:08:43
トラウ麻呂w
98:デフォルトの名無しさん
09/03/07 13:22:37
[1]C言語基礎
[2]麻呂と罵倒屋さんとの剰余うんぬんの経緯をも一度
詳しく教えてくれませんか?
[3] 日本語
[4]本日中
99:デフォルトの名無しさん
09/03/07 22:57:14
[1] 授業単元:勝手にやってます
[2] 問題文(含コード&リンク):ばば抜きシミュレーターを作る
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: XP Pro SP3
[3.2] コンパイラ名とバージョン: Cygwin Gcc
[3.3] 言語:C
[4] 期限: 無期限 ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
以前配列をむちゃくちゃなことやってここでお世話になりました。
一応プレイをさせれるようなところまで言ったのかなと思ったら、スタックオーバーフローを起こすようになってしまったようです。
これを回避する方法を教えてください。
あいかわらずひどいと思いますが、よろしくお願いします。
100:デフォルトの名無しさん
09/03/07 23:09:45
よく見てないし、関係ないけど、関数呼ぶたびにsrand()するな。
101:デフォルトの名無しさん
09/03/07 23:10:31
スタックオーバーフロー?
0で割ってるだけじゃねーの
102:デフォルトの名無しさん
09/03/07 23:12:08
>>99
本当にスタックオーバフロー?
VC++9.0で確認したら、関数choise()の中の
i = rand()%remain[N_plyer];
で、remain[N_plyer]の値が0になっている。
103:デフォルトの名無しさん
09/03/07 23:12:11
>>99
大域でオブジェクトを宣言するな。
特にカウンタ。局所にしろ。
そんなことしてるから問題の絞込みができないんだ。
関数を分ける意味が薄れるだろうが。
104:デフォルトの名無しさん
09/03/07 23:14:00
もう少し基本的なこと理解してから長いコード書いてくれ
105:デフォルトの名無しさん
09/03/07 23:26:42
209 [main] baba 3536 _cygtls::handle_exceptions: Error while dumping state (
probably corrupted stack)
Segmentation fault (core dumped)
209や3536とかの値は毎回変わるみたいです。
Error while dumpingってのをググったらスタックオーバーフローだっていわれたのでそうだと思ったのですが、違うんですかね?
>101
減らしてみます。
>102
そこのあたり確認してみます。
>103
一回ずつよく使うのをローカルで宣言するの面倒だからと思ったんですが、やっぱり関数ごとに宣言したほうがいいですか?
>104
この前も同じようなこと言われました。
簡単な短いのは習ったんですが、こういう長いのを書くのは初めてな上に勘とgoogle先生に聞きながらやってるのでいろいろひどいと思います。
106:デフォルトの名無しさん
09/03/07 23:29:33
>>99
main以外の関数はプロトタイプ宣言を書いて
そこに説明を書いた方が読みやすいソースになる
107:デフォルトの名無しさん
09/03/07 23:31:13
この前あがってたシャッフルとか、理解するつもり全くないだろw
108:デフォルトの名無しさん
09/03/07 23:40:25
ひどいのわかってて開き直るってw
109:デフォルトの名無しさん
09/03/07 23:48:15
カードがなくなった人が出ると、その人から札を引こうとして0で割ってる。
カードがなくなった人は飛ばす処理が必要。
110:デフォルトの名無しさん
09/03/08 00:08:18
>>105
ループの先で関数呼び出して、そこでも同じループカウンタを使うとあっという間にバグの出来上がり。
独りよがりで誰にもみせねぇってソースなら後でお前が困るだけだからどうでもよし。
111:デフォルトの名無しさん
09/03/08 00:17:04
糞コードの添削するくらいなら1から書いたほうがよっぽど楽。
112:デフォルトの名無しさん
09/03/08 00:23:50
見てたら頭が痛くなってきた・・・
113:モデム接続
09/03/08 00:32:46
>>99
/*int*/void choice() の先頭で、リターンするといい事有るかも。
{
//int i, j, k;
if(remain[N_plyer] == 0) return; // 上がっているので、1回パス
// srand(time(NULL));
114:デフォルトの名無しさん
09/03/08 06:08:26
>>98って難しい?
115:デフォルトの名無しさん
09/03/08 06:19:54
1^1 + 2^2 + 3^3 + ・・・ n^n を3で割った余りを求める、ような問題だったと思う。
nを指定して、それに応じて。また、発展で 1^1 - 2^2 + 3^3 - 4^4 ・・・ と
+と-が交互になった場合とか。結局、コードの中の定義を変えることで
nや3で割る部分を適当に変更できる使用にした麻呂に軍配が上がったわけだがw
116:デフォルトの名無しさん
09/03/08 06:21:27
それで、後だししただの、麻呂のクソースも見てくれだのと言ったことに
腹を立てたこのスレの常駐引きこもり基地外がファビョって、麻呂は特定可能だからって
麻呂に当り散らしていたw 精神レベルが低いんだろうね、中学校レベルの数学なのに
麻呂では解けないとか、勝手なことを言い出したが、自分がその程度の問題を解いたくらいで
得意気になっているだけという、第三者から見たら滑稽な姿だと気づかないのが痛すぎるwww
117:デフォルトの名無しさん
09/03/08 06:25:00
さらに、麻呂はクソースと題して、単方向、双方向リスト、それに
ファイルを用いる機能を追加、並び替えも独自のコードで実装したわけだが
これまた、後から後から訂正して、何がなんだかw
あの手の問題は、既に定石、ありきたりの手法があるわけだが
丸写しを他人の質問で出しても、答えが側の実力とは言えないしな。
そんなこんなで、ここを自分の縄張りだと思っている、社会では
まともに稼いでいないヘボプログラマーが、初心者が知識が乏しいことを良いことに
好き勝手なことを言っているわけだ。だから、こんなクソスレに成り下がっているわけで、
年々、大学や専門学校の先輩から後輩へ、このスレの存在が伝えられているのか
最近では過去に似た問題、あるいはまったく同じ問題と、同じ学校で同じ授業を受けている
生徒が鉢合わせになることもw
118:デフォルトの名無しさん
09/03/08 08:13:32
このキチガイ長文連投の言うこと信じる奴なんていんのかよw
119:デフォルトの名無しさん
09/03/08 09:05:42
信じる信じない以前に見る気しない。
120:デフォルトの名無しさん
09/03/08 09:13:29
↓おまいは、ある整数を1で割った余りを求めるプログラムでも作ってろ、な?
121:デフォルトの名無しさん
09/03/08 09:47:39
さすがにループ変数を自信満々でdoubleにして元のプログラムを間違ってると言ったアホ
は言うことが違うw
122:デフォルトの名無しさん
09/03/08 17:33:07
コマンドラインからいくつかの文字列を入力し、
文字列を逆さに出力するプログラムを作成。
ただし、入力する文字列の長さや個数に制限をつけないために、
以下のような仕様とする。
文字列毎にその都度メモリを動的に確保する
一度確保したメモリは次の文字列を処理する前に解放する。
malloc とか使うんですかね?
[動作例]
% ./a.out abcde fghijklmn opqr
edcba
nmlkjihgf
rqpo
123:デフォルトの名無しさん
09/03/08 17:47:17
>>122テンプレ
124:デフォルトの名無しさん
09/03/08 19:16:11
>>122
こんなんでどうでしょう?
URLリンク(kansai2channeler.hp.infoseek.co.jp)
125:デフォルトの名無しさん
09/03/08 19:33:33
よく見るとメモリを確保する必要性がないな
126:デフォルトの名無しさん
09/03/08 19:41:38
#include <stdio.h>
char *reverse(char *cs) {
char tmp, *p, *q;
if (!cs) return 0;
for (p = cs, q = p + strlen(p) - 1; p < q; p++, q--) {
tmp = *p;
*p = *q;
*q = tmp;
}
return cs;
}
int main(int argc, char *argv[]) {
int i;
char *p;
for (i = 0; i < argc; i++) {
if (i == 0) continue;
p = reverse(strdup(argv[i]));
printf("%s\n", p);
free(p);
}
}
127:デフォルトの名無しさん
09/03/08 20:09:23
麻呂のクソースに期待
128:デフォルトの名無しさん
09/03/08 20:25:05
最近は<string.h>をincludeしないのでstrlen()を使うのがが流行り?
129:デフォルトの名無しさん
09/03/08 20:45:38
>>127
いない奴に期待してどうすんだ?w
130:デフォルトの名無しさん
09/03/08 20:48:37
#include <stdio.h>
void print_reverse(char * s)
{
char * p = s;
while(*p != 0) p++;
for(; p != s; putchar(*p)) p--;
putchar('\n');
}
int main(int argc, char ** argv)
{
int i;
for(i = 1; i < argc; i++) print_reverse(argv[i]);
return 0;
}
131:130
09/03/08 20:51:48
ごめん問題文読んでなかった。メモリ確保がいるの。
でも別にこれで長さにも個数にも制限なくないですか
132:デフォルトの名無しさん
09/03/08 20:57:13
mallocと麻ー呂っくを掛けたのか?w
133:デフォルトの名無しさん
09/03/08 20:58:33
無意味な仕様であることは確かだな。
134:デフォルトの名無しさん
09/03/08 21:13:41
>for(; p != s; putchar(*p)) p--;
なんでわざわざこんな記法をw
135:デフォルトの名無しさん
09/03/08 21:16:16
p=sのときも表示させるための工夫なんだろ
while(p!=s) putchar(*--p)
でいい気もするが。
136:122
09/03/08 21:30:26
>123-135
いろいろありがとうございました。
次回あれば、テンプレ忘れないよう気をつけます。
137:モデム接続
09/03/09 01:07:40
> 最近は<string.h>をincludeしないのでstrlen()を使うのがが流行り?
実行ファイルが a.out だから、コンパイラは gcc ではないだろうか。
138:デフォルトの名無しさん
09/03/09 03:45:30
Cygwinとかならgccでもa.exeじゃね?
139:デフォルトの名無しさん
09/03/09 07:01:44
>>138
数学で逆は真ならずってならわなかったか
逆、裏、対偶ってあって真なのは対偶
140:デフォルトの名無しさん
09/03/09 08:24:46
いや、それ、命題としてもどうかと。数学とかって話じゃないだろ。
実際に分かりきっている事実なんだから、調べれば良いだけ。
141: ◆v/LK4luEPU
09/03/09 09:43:46
>>90
遅くなりました、ありがとうございます。
おかげさまで望みのコード勉強が出来ました。
参考書みてるだけじゃ、このレベルのコードも書けないという
勉強にもなり、いい経験になりました。
>>92
なるほど、参考になります。
それと、先日の土日を利用して、図書館へ行きCの参考書を2点程借りてきて
みたのですが、どうやらその参考書にも「getch()」の記述が載ってないんですよね。
「getchar()」の方は載っているのですが、この二つは何か違いがあるのでしょうか?
スレ違いでしたらすみません。
142:デフォルトの名無しさん
09/03/09 10:40:23
getchar と getch は挙動が全く違うし、getch は環境依存だから。
Windows の場合は getch でいいんだが、UNIX系OSの場合は termios (あるいは curses の getch) を使うことになる。
143:デフォルトの名無しさん
09/03/09 12:57:23
>>142
win2kを使っててgetch()に酷い目にあわされたw
144:デフォルトの名無しさん
09/03/09 21:57:36
[1] 授業単元:授業とは関係なし
[2] 問題文(含コード&リンク):
世界のナベアツのネタ「3の倍数と3が付く数字だけアホになり、5の倍数だけ犬っぽくなる」プログラムを作りたいと思っています。
出力は
1 2 ア3 4 犬5 ア6 のようにアホになるときは数字の前に「ア」、犬の時は数字の前に「犬」を付ける形で出力したいです。
1〜10000程度の範囲でお願いします
春休みに入り、プログラミングの授業の復習のつもりでやってみようと思ったのですが、
思っていたよりも難しくて挫折しました。
[3] 環境
[3.1] OS:Windows VISTA
[3.2] コンパイラ名とバージョン:BCC Borland C++ 5.5.1
[3.3] 言語: C
[4] 期限: 早いとうれしいですが、課題ではなく提出期限が無いのでいつでも
[5] その他の制限: あまり深くは習っていません。あまり難しいと困ります。
145:デフォルトの名無しさん
09/03/09 22:17:18
>>144
#include<stdio.h>
int main(void){
int i;
for(i=1;i<=10000;i++) printf("%s%s%d ", (i%3)?"":"ア", (i%5)?"":"犬", i);
return 0;
}
146:デフォルトの名無しさん
09/03/09 22:19:30
>>144
URLリンク(www.aoky.net)
147:デフォルトの名無しさん
09/03/09 22:22:58
FizzBuzzと言う名前、忘れてた
これができないというのは正直信じられん
148:デフォルトの名無しさん
09/03/09 22:29:29
>>147
もう久しく紙に書く習慣がなくなってしまったので、cでも急に紙に書けといわれるとどうかな。
149:144
09/03/09 22:47:04
FizzBuzzは書けました。ですが、3が付く数字がどう判定して良いかわかりません。
150:145
09/03/09 22:52:10
>>144
3がつく数字忘れてた
#include<stdio.h>
int chk3(int num){
if(num%3==0) return 1;
for(;num>0;num/=10) if(num%10==3) return 1;
return 0;
}
int main(void){
int i;
for(i=1;i<=100;i++) printf("%s%s%d ", !chk3(i)?"":"ア", (i%5)?"":"犬", i);
return 0;
}
151:デフォルトの名無しさん
09/03/09 22:56:17
>>145
俺はお前のような漢になりたい
152:規制解除したようす
09/03/09 23:56:00
#include <stdio.h>
int main(void)
{
int i;
for(i=1;i<=10000;i++){
printf("%s%s%d ", (i%3==0 || (i/10)-(i/100)*10==3
|| (i/100)-(i/1000)*10==3
|| (i/1000)-(i/10000)*10==3 )?"ア":"", (i%5==0)?"犬":"", i);
if(i%10==9) puts("");
}
return 0;
}
153:デフォルトの名無しさん
09/03/10 02:52:49
>>99
俺にはこれが限界だ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
154:デフォルトの名無しさん
09/03/10 02:54:49
>num = rand() % 53;
こう書くと偏るからダメだって言う奴がでるからダメ。
155:デフォルトの名無しさん
09/03/10 02:59:31
>>154
randの偏りをなくすのは諦めたw
あと、カードを取ってあがった場合の処理もw
156:デフォルトの名無しさん
09/03/10 03:07:41
num = rand() % (i + 1) もしくは num = i + rand() % (53 - i) にする。
または、
for(i=53; i>1; ) {
num = rand() % i--;
temp = allcard[i];
allcard[i] = allcard[num];
allcard[num] = temp;
}
にする。
157:デフォルトの名無しさん
09/03/10 03:42:25
>>153見ずに>>154見て、下位ビットは云々という話かとおもた
158:152
09/03/10 10:24:48
>>152 の6〜8行目。間違っていました。
訂正後:printf("%s%s%d ", (i%3==0 || i%10==3 || (i/10)%10==3 || (i/100)%10==3 || (i/1000)%10==3)
159:デフォルトの名無しさん
09/03/10 11:34:33
>>144
嫌がらせのように見にくいコード
#include <stdio.h>
#include <string.h>
int main()
{
char buf[256];
int i;
for(i = 1; 1; i++, sprintf(buf, "%d", i))
printf("%s%s%d ", ((i % 3 == 0 || strchr(buf, '3') != NULL) ? "ア" : ""), ((i % 5 == 0) ? "犬" : ""), i);
return 0;
}
160:デフォルトの名無しさん
09/03/10 11:58:21
別にこれでええやん
#include "stdafx.h"
#include <iostream>
#include "windows.h"
using namespace std;
int main(void){
int i;
for(i=1;i<=10000;i++){
if(i%3==0 && i%5!=0){
cout << "ア";
}else if(i%5==0 && i%3!=0){
cout << "犬";
}else if(i%3==0 && i%5==0){
cout << "ア犬";
}
cout << i << endl;
Sleep(500);
}
return 0;
}
161:デフォルトの名無しさん
09/03/10 12:11:27
>3が付く数字
162:デフォルトの名無しさん
09/03/10 12:12:41
>>160
*30から*39も全部アホにならないといけないそうだ
300から399も
163:デフォルトの名無しさん
09/03/10 12:15:49
1からnまでの間に3の倍数と3のつく数字がいくつあるか求める関数
int nabeatu(int n)
を作れ
というのを以前見たような気がする
164:デフォルトの名無しさん
09/03/10 13:32:53
>>150に勝てる気がしなくてやめた
165:デフォルトの名無しさん
09/03/10 13:50:54
倍数を求めるのは難しくないが、3の付く数字は
一度文字列に置き換えて、3が含まれるかチェキするとか。
166:デフォルトの名無しさん
09/03/10 13:51:44
って、文字列に置き換える必要はなかったか。10で割った余りが3かどうかで
順に10で割っていけば良いか、すまそ。
167:99
09/03/10 16:11:22
>>153
ありがとうございます。
今夜にでもゆっくりソースを読ませてもらいます。
今後の書き方の参考にもさせてもらいます。
168:デフォルトの名無しさん
09/03/10 18:33:38
>>161-162
あぁ読み間違えてた
俺もプログラミング習いたてだけど
一応できたわ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
つうか、>>150みたいな短い書き方あるんだな
俺もそういう書き方してえわ
169:デフォルトの名無しさん
09/03/10 22:12:07
生年月日を2000/01/01もしくは2000/1/1の形式で入力し、
誕生日から現在まで何日経過したか、現在の年齢の2項目を表示するプログラムをお願いします。
170:デフォルトの名無しさん
09/03/11 01:35:21
>>169 かなり制約つき
URLリンク(kansai2channeler.hp.infoseek.co.jp)
コンパイラ:VC++ 2005
日数;満日数
年齢:数え年齢(めんどうなので。満年齢は勝手にどうぞ)
誕生日:1970年以降
現在日付:2038年迄
171:デフォルトの名無しさん
09/03/11 01:52:00
>>169
URLリンク(kansai2channeler.hp.infoseek.co.jp)
投稿してみよう…
172:デフォルトの名無しさん
09/03/11 01:54:59
おまえら優しいな…
173:デフォルトの名無しさん
09/03/11 09:04:04
>>169
2行目が曖昧かな?誕生日からというのは、前の誕生日からなのか、
生まれたその日からのどちらか?
174:デフォルトの名無しさん
09/03/11 09:25:19
>>173
お誕生日会と誕生日の違いだな。
175:デフォルトの名無しさん
09/03/11 09:29:37
>>174
お誕生日”会” ???
176:170
09/03/11 09:50:29
そもそも、生まれた当日は0日目なのか、1日目なのか。
それの方が悩んだ。
177:デフォルトの名無しさん
09/03/11 10:01:16
年齢計算に関する法律について調べるべし。
178:170
09/03/11 10:26:20
オッケー、日本語で。0日目で正しいようだ。
「年齢計算に関する法律」で検索した。
179:デフォルトの名無しさん
09/03/11 17:28:08
法律を知らないとプログラムって書けないんだね><
180:デフォルトの名無しさん
09/03/11 17:44:12
>>179
法律を知らないと書けないと言うか
作ろうとしてるプログラムの内容を知ってないと
作れない
181:99
09/03/11 19:19:39
要求定義ってやつじゃないか?
182:デフォルトの名無しさん
09/03/11 19:34:42
>>178
年齢ハ出生ノ日ヨリ之ヲ起算ス
初日不算入の例外が年齢だよ
出生日が1日目
183:デフォルトの名無しさん
09/03/11 20:19:05
指定した年に、13日の金曜日があるか調べ、あるならそれが何月か表示せよ
184:デフォルトの名無しさん
09/03/11 20:54:30
指定した年に、13日の金曜日があるか調べ、あるならその日を災いにせよ
>>182 例外に含まれるのを見落としてました。
なるほどしかし、法律的には4月1日に生まれた子女は翌年の3月31日
午後12時に1歳に成るとなっている。4月1日午前0時でなく。
満年齢はそれでいいとして、課題は"経過した"日数も…(2項目)だから生まれた日の
翌日が第1日目でいいじゃないかと思う。生まれた当日は何かとバタバタしてるし。
正確に言えば翌日も出生時刻までが0日目で、第2日目てことは無いと思う。
185:デフォルトの名無しさん
09/03/11 21:06:52
>>183
URLリンク(kansai2channeler.hp.infoseek.co.jp)
186:185
09/03/11 21:12:19
間違えてた
URLリンク(kansai2channeler.hp.infoseek.co.jp)
187:デフォルトの名無しさん
09/03/11 22:39:41
>>186
今年って3回もあるんだ
ジェイソンも大変だなw
188:デフォルトの名無しさん
09/03/12 02:21:34
URLリンク(kansai2channeler.hp.infoseek.co.jp)
言語・コンパイラ:C・VC++ 2005
日数;満日数
年齢:数え年齢(めんどうなので。満年齢は勝手にどうぞ)
誕生日:1901年以降 <--- new
現在日付:2038年迄 <--- なんとか?
189:デフォルトの名無しさん
09/03/12 02:46:53
>>188
struct tmからtime_tをつくるmk_time()つー関数がなんか便利だたよ
190:デフォルトの名無しさん
09/03/12 02:59:04
× mk_time
○ mktime
tm構造体つくる→年月日時分秒メンバを書き換える→mktime()
→localtime_s()でstruct tmに変換
→曜日・日数が自動補完されてうまー
191:デフォルトの名無しさん
09/03/12 11:27:49
皆C言語で書いてるってことなのか?
よくわからないんだけどCとC++が微妙に構文違うのはなぜなの?
192:デフォルトの名無しさん
09/03/12 11:44:11
>>191
struct tm 変数名; // C structが必要
tm 変数名; // C++ structをつけなくていい
C++は、変数の宣言が処理の途中で出来る。等々
193:デフォルトの名無しさん
09/03/12 15:13:21
URLリンク(www3.uploader.jp)
[1] 授業単元: エムピーアイ
[2] 問題文(含コード&リンク):ガウス消去法を並列化せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2009/03/13中
[5] その他の制限:
エムピーアイの問題ですが、後退代入以外完成してます。上三角型の行列を作るところまでは
出来たのであとは単純に答えを計算するだけなのですが、アルゴリズムがわかりません。
なので115行目の”後退代入”のところを埋めて下さいまし。
エムピーアイというか単にC言語のループの書き方のレベルなのでエムピーアイを知らなくても
アルゴリズムがわかれば書けると思います。なおプロセス数はmpirun -np 4 ./a.out
で実行して下さい(添付のインプットファイルが4行4列なので)
194:デフォルトの名無しさん
09/03/12 19:50:50
プログラム教えてください
配列の中の数値をランダムに入れ替えたいんです
たとえば
int A[]={ 1,2,3,4,5,6,7,8,9,10}
↓ランダム
4,9,5,1,8,6,2,10,3,7
教えてください
195:デフォルトの名無しさん
09/03/12 20:08:15
>>194
for ( i = 0; i < 100; i++)
{
乱数で0-9の数字を2個( p , q )作成
tmp = A[ p ];
A[ p ] = A[ q ];
A[ q ] = tmp;
}
196:デフォルトの名無しさん
09/03/12 20:34:59
#include <stdio.h>
#include <time.h>
int main(void)
{
int ar[]={11,12,13,14,15,16,17,18,19,20};
int size=sizeof(ar)/sizeof(ar[0]);
int i, num, temp;
srand( (unsigned)time( NULL ) );
for(i=size-1; i>=0; i--){
num = rand() % (i + 1);
temp = ar[i];
ar[i] = ar[num];
ar[num] = temp;
printf("%d ", ar[i]);
}
return 0;
}
197:デフォルトの名無しさん
09/03/12 21:00:29
>>196
偏りそうにも見えるが、上手くいくのかな?
誰か優しく証明して。
198:デフォルトの名無しさん
09/03/12 21:15:23
なんでこう、乱数絡みの問題が定期的に湧くんだw
199:デフォルトの名無しさん
09/03/12 21:21:01
偏りっていうのはrandをつかうからってことなの?
どれぐらい偏るもんなの?
200:デフォルトの名無しさん
09/03/12 21:24:01
いやいや、randのせいじゃなく、
単純に処理としての話。
for(i=0; i < size; i++)だと分かるんだけど、
逆でも良いのかなってこと。
201:デフォルトの名無しさん
09/03/12 21:50:49
>>200
> for(i=0; i < size; i++)だと分かるんだけど、
> 逆でも良いのかなってこと。
逆のほうが簡潔に書けるって話だな
デバッガで追っかけるとわかる
for(i=0; i < size; i++)で書いてみ
最終的に行き着くのが196になる
202:デフォルトの名無しさん
09/03/12 21:59:46
なんで196に行くのかが全然わからないや。
203:デフォルトの名無しさん
09/03/12 22:32:48
>>196
出来ました!
ありがとうございます
すごいですね
でも、randを使っているから同じ数字が入りそうなんですけど
なんで同じ数字が入らないんだろう?
204:デフォルトの名無しさん
09/03/12 22:38:04
ああ、iだからrand減って行くんですね
分かりました
i=size-1と(i + 1)がまだ分かりませんが
なんとか分かるように頑張ります
ありがとうございます
205:デフォルトの名無しさん
09/03/12 22:40:21
私の知能じゃ10年かかっても思いつきませんでした
ありがとうございますm(_;)m
206:デフォルトの名無しさん
09/03/12 23:35:10
まず、全体の中から1個選んで一番後ろに入れる。
次に、残ったものから1個選んで後ろから二番目に入れる。
これを残り0個になるまで繰り返す。
簡単だろ?
207:デフォルトの名無しさん
09/03/13 00:30:49
規則性はあるけど、乱数発生器をiで割っているのがいいよね
208:デフォルトの名無しさん
09/03/13 00:31:24
要するに松田優作ってことだ
209:デフォルトの名無しさん
09/03/13 01:06:18
>>201
>>156
210:デフォルトの名無しさん
09/03/13 07:17:51
>>206
なるほど
211:デフォルトの名無しさん
09/03/14 17:04:38
学校の課題を手伝ってください。
[1] 授業単元: データ構造アルゴリズム
[2] 問題文(含コード&リンク):
キューを利用して、プリンタのプリントキューを再現したプログラム(以下に要点を記載)を作成しなさい。
"1”を入力するとキューにデータが追加され"2"を入力するとキューからデータが取り出される
キューが満杯になったり、空になったりした際はその旨をメッセージで表示する。
また、以下の関数を作成し、使用しなさい。
vaio enqueue(int val)キューにデータを追加する
vaio dequeue() キューからデータを取り出す
vaio queue_print()キュー全内容を表示する
以上ですお願いします。
[3] 環境
[3.1] OS: Linux ソラリス
[3.2] コンパイラ名とバージョン: 不明
[3.3] 言語: C
[4] 期限: ([2009年3月15日])
[5] その他の制限: なし
212:デフォルトの名無しさん
09/03/14 17:10:44
プリントキューの仕様が不明だな。
213:デフォルトの名無しさん
09/03/14 17:12:10
vaioも不明
214:デフォルトの名無しさん
09/03/14 17:17:14
頭が弱いと生きるの大変そうだね
215:デフォルトの名無しさん
09/03/14 17:17:56
ちょww vaio?wwww
216:デフォルトの名無しさん
09/03/14 17:19:25
失礼しましたvaioじゃなくvoidでした。
キューを利用して、プリンタのプリントキューを再現したプログラム(以下に要点を記載)を作成しなさい。
"1”を入力するとキューにデータが追加され"2"を入力するとキューからデータが取り出される
キューが満杯になったり、空になったりした際はその旨をメッセージで表示する。
また、以下の関数を作成し、使用しなさい。
void enqueue(int val)キューにデータを追加する
void dequeue() キューからデータを取り出す
void queue_print()キュー全内容を表示する
217:デフォルトの名無しさん
09/03/14 17:41:08
学校の課題でどうしてもできないC言語があるのですかどなたか手伝ってください。
スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
お願いします。
218:デフォルトの名無しさん
09/03/14 17:42:22
>>217
>>1
219:デフォルトの名無しさん
09/03/14 18:05:23
[1] 授業単元: データ構造アルゴリズム
[2] 問題文(含コード&リンク):要素数10個の整数配列を用意します。要素を入力し、クイックソートを用いて昇順にソートするプログラムを作成しなさい。
[3] 環境
[3.1] OS: (Linux/)
[3.2] コンパイラ名とバージョン: (わかりません)
[3.3] 言語: (C)
[4] 期限: [無期限]
[5] その他の制限: なし
220:デフォルトの名無しさん
09/03/14 18:56:32
[1] 授業単元: データ構造アルゴリズム
[2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
[3] 環境
[3.1] OS: (Linux)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C)
[4] 期限: [3/16]
[5] その他の制限: なし
221:デフォルトの名無しさん
09/03/14 19:03:19
>>211
勝手に色々想像した。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
222:デフォルトの名無しさん
09/03/14 19:08:53
>>220 osはunixでした。
223:デフォルトの名無しさん
09/03/14 19:11:10
>>219 私もosはunixでした。
224:デフォルトの名無しさん
09/03/14 20:01:14
>>221
dequeue()の戻り値もvaioだぞw
225:デフォルトの名無しさん
09/03/14 20:14:08
>>219
#include<stdio.h>
#include<stdlib.h>
#define N 10
int f(const void*a,const void*b){
 return *(const int*)a-*(const int*)b;
}
int main(){
 int a[N],i;
 for(i=0;i<N;++i)scanf("%d",a+i);
 qsort(a,N,sizeof(int),f);
 for(i=0;i<N;++i)printf("%d ",a[i]);
}
226:デフォルトの名無しさん
09/03/14 20:19:18
>>225ありがとうございます。
227:デフォルトの名無しさん
09/03/14 20:28:39
osによってプログラムの違いってあるんですか?
228:デフォルトの名無しさん
09/03/14 20:56:28
for(i=0;i<N;++i)scanf("%d",a+i);
for(i=0;i<N;++i)printf("%d ",a[i]);
なんか気持ち悪いな
229:デフォルトの名無しさん
09/03/14 20:57:42
>>228
意図が読めないなんてピュアな方ですねw
230:デフォルトの名無しさん
09/03/14 21:09:19
>>220 終了はCtrl+Z
#include<stdio.h>
#include<stdlib.h>
int s[99],p;
void push(int n){s[p++]=n;}
int pop(void){return s[--p];}
int main(){
 char b[99];
 for(;scanf("%98s",b)==1;){
  switch(*b){
   case'+':push(pop()+pop());break;
   case'-':push(pop()-pop());break;
   case'*':push(pop()*pop());break;
   case'/':{int t=pop();push(pop()/t);}break;
   default:push(atoi(b));
  }
  printf("%d\n",s[p-1]);
 }
}
231:デフォルトの名無しさん
09/03/14 21:12:19
>>230dクス
232:230
09/03/14 21:13:38
やべバグあるわ。今直す
233:デフォルトの名無しさん
09/03/14 21:17:42
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
データを表示する場合に,データの昇順と降順の両方向での表示が選択で
きるように,このプログラムに変更してください
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限: 2009/03/16
[5] その他の制限: ありません
よろしくお願いします
234:230
09/03/14 21:18:22
>>220 少し短くなったかな
#include<stdio.h>
#include<stdlib.h>
int s[99],p;
void push(int n){s[p++]=n;}
int pop(void){return s[--p];}
int main(){
 char b[99];
 for(;scanf("%98s",b)==1;printf("%d\n",s[p-1]))
  switch(*b){
   int t;
   case'+':t=pop();push(pop()+t);break;
   case'-':t=pop();push(pop()-t);break;
   case'*':t=pop();push(pop()*t);break;
   case'/':t=pop();push(pop()/t);break;
   default:push(atoi(b));
  }
}
235:デフォルトの名無しさん
09/03/14 21:24:11
>>234さんたびたびdクスです。
236:デフォルトの名無しさん
09/03/14 21:27:49
>>233
void PrintTreeRev(BinNode *p){
if (p != NULL) {
PrintTree(p->right);
PrintData(p->data);
PrintTree(p->left);
}
}
を追加してメニューから呼ぶようにしろ
237:236
09/03/14 21:28:40
おーう、中のPrintTreeもPrintTreeRevだ
逝ってくる
238:デフォルトの名無しさん
09/03/14 21:33:53
>>227
微妙に質問が質問として成立してないんじゃね?
OS自体がプログラムだから、プログラムとして違いがあるし、
OSの機能を使うプログラムの場合も、OSが違うからプログラムとして違いがある。
>>234
いい感じ
でも、"%98s"じゃなく、"%98[^\n]"じゃないとダメぽ
239:234
09/03/14 21:44:06
>>238
すまん。なぜダメなのか教えてくれないか。
何が入力されたときにまずい?
240:デフォルトの名無しさん
09/03/14 21:48:53
>>239
すんません。
勘違いしてました。
scanf一回で、式を全部持ってくるのかと思ってました。。。
241:234
09/03/14 21:51:32
>>240おk。
242:デフォルトの名無しさん
09/03/14 22:12:01
>>237
出来ました!ありがとうございます!
243:デフォルトの名無しさん
09/03/14 22:54:57
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:ウィンドウズvista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: [2009年3月15日]
[5] その他の制限:なし
お願いします
244:デフォルトの名無しさん
09/03/15 00:23:05
>>243
URLリンク(kansai2channeler.hp.infoseek.co.jp)
245:デフォルトの名無しさん
09/03/15 00:37:13
あるある
246:デフォルトの名無しさん
09/03/15 01:19:15
osの違いでC言語に違いが出てくることってあるんですか?
247:デフォルトの名無しさん
09/03/15 01:19:53
>>244
ありがとうございます
248:デフォルトの名無しさん
09/03/15 01:49:26
[1] 授業単元: データ構造アルゴリズム
[2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
逆ポーランド電卓
逆ポーランド記法の数式を入力してリターンキーを押すと答えを表示してくれるもの。スタックを使用して以下のように計算する。
1.数値なら、そのままスタックにつむ
2.演算子なら、2つの数をスタックからおろして演算を行い、その結果を再びスタックにつむ。
※逆ポーランド記法とは演算子を後ろに置く記法。例えば1+2は12+に、(1+2)*3は12+3*になる。逆ポーランド記法は後置法ともよばれる。
[3] 環境
[3.1] OS: (unix)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C)
[4] 期限: [3/16]
[5] その他の制限: なし
よろしくお願いします。
249:デフォルトの名無しさん
09/03/15 02:08:17
>>248
>>220と>>234を見ろ。
なんというか、まあ、お前らのところ本当にどうしようもないのしかいないんだな
250:デフォルトの名無しさん
09/03/15 02:18:35
>>249 問題が同じでも細かいところが違うんですよ。
251:デフォルトの名無しさん
09/03/15 02:24:17
確かにOSが違うな
252:249
09/03/15 02:51:34
>>250
すまん、その細かいところってどこだ?
>>251
>>222見る限りOSも同じだが。
253:デフォルトの名無しさん
09/03/15 03:22:19
すみません、C初心者で、今課題をやってるのですが、入門書見ながらでもさっぱりです。
よろしくおねがいします。。
↓↓↓↓↓
以下のプログラムは、入力された10個の数値を引き算し、その結果を表示するプログラムです。
9〜11行目を別の関数(関数名はFuncDev)とし、修正しなさい。ただし、グローバル変数は使わないこと。
またFuncDev内のローカル変数名は任意とします
FuncDev関数は以下の定義とします
int FuncDec(void);
FuncDev関数の戻り値は、画面入力されたint型データとします。
1:#include<stdio.h>
2:void main(void);
3:void main(void)
4:{
5: int n1 n2;
6; int nt;
7: nt=0;
8: for(n1=0;n1<10;n1++){
9: printf("0-9の数値を入力:");
10: scanf(" %d",&n2);
11: nt-=n2;
12: }
13: printf("結果は%dです",nt);
14:}
254:>>253
09/03/15 03:34:52
#include <stdio.h>
int FuncDev(void);
int main(void)
{
int nt, n1;
nt = 10000;
for(n1 = 0; n1<10; n1++){
nt -= FuncDev();
}
printf("結果は%dです", nt);
}
int FuncDev(void)
{
int n2;
scanf(" %d", &n2);
return n2;
}
255:デフォルトの名無しさん
09/03/15 03:41:45
>>254
すばやいご回答ありがとうございました。
私は問題の意味を勘違いしていたみたいでした。
自分一人だったら白紙で出すところでした。
本当にありがとうございました
256:デフォルトの名無しさん
09/03/15 03:52:02
OSがunixって幅が広すぎるよな。
257:デフォルトの名無しさん
09/03/15 04:01:21
[1] 授業単元: データ構造アルゴリズム
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン: BCC Borland C++ 5.5.1
[3.3] 言語: C
[4] 期限: ([2009年3月15日])
[5] その他の制限:なし
258:>>253
09/03/15 04:18:12
>>254さま
すみません、
今読んでいて疑問に思ったのですが、
6行目の
nt=10000;
とはどういう意味なのでしょう?
簡単に解説をしてくださると助かります
259:デフォルトの名無しさん
09/03/15 04:50:50
>>252 問題はいっしょだが条件が追加されてる。
260:デフォルトの名無しさん
09/03/15 05:09:36
>>259
どんな条件?
逆ポーランド電卓の説明が追加されているだけにしか見えんが?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5290日前に更新/131 KB
担当:undef