C/C++の宿題片付けます 131代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/10/17(土) 01:08:18【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/
0153デフォルトの名無しさん
2009/10/20(火) 22:58:010154デフォルトの名無しさん
2009/10/20(火) 23:03:19英語が苦手で警告文を解読するのも一苦労です・・・
>>153
ぶはw
これは恥ずかしいです・・・
0155デフォルトの名無しさん
2009/10/20(火) 23:48:47#include <stdio.h>
int main()
{
return 0;
}
できますた!C++コンパイラでコンパイルして下さい!(キリッ)
0156デフォルトの名無しさん
2009/10/20(火) 23:53:45問題なくコンパイルできますね。(g++, bcc32)
0157デフォルトの名無しさん
2009/10/20(火) 23:54:450158デフォルトの名無しさん
2009/10/21(水) 00:08:410159デフォルトの名無しさん
2009/10/21(水) 00:10:190160デフォルトの名無しさん
2009/10/21(水) 00:26:52[2] 問題文(含コード&リンク):
問1、符号無し整数xを右にnビット回転した値を返す関数
unsigned right(unsigned x,int n)
{
}
を作成せよ
[3] 環境
[3.1] mac
[3.2] gcc?(よくわかりません)
[3.3] C言語
[4] 期限: 2009年10月22日(木)
よろしくお願いします。
0161デフォルトの名無しさん
2009/10/21(水) 00:30:490162デフォルトの名無しさん
2009/10/21(水) 00:43:35指向性を考える必要があるため割と難しい問題だと感じます。
0163デフォルトの名無しさん
2009/10/21(水) 00:46:34質問スレでどうぞ
(ヒント:極座標[0,2π]x[0,π])
0164デフォルトの名無しさん
2009/10/21(水) 00:48:33極座標使ったら簡単じゃねーの?
0165デフォルトの名無しさん
2009/10/21(水) 00:51:53unsigned right(unsigned x, int n)
{
reutrn x >> n | x << (sizeof(unsigned) * 8 - n);
}
0166デフォルトの名無しさん
2009/10/21(水) 01:26:010167デフォルトの名無しさん
2009/10/21(水) 07:30:33多分 [0, 4πr^2) の一様乱数を座標に変換するのがいいとは思うんだけど難しいね
0168デフォルトの名無しさん
2009/10/21(水) 18:24:38main() のプロトタイプをわざわざかくのであれば、それは
int main(void);
のでしょうが、普通はプロトタイプなぞかかずに
int main()
{
return 0;
}
と main() を定義しますよね。main() の定義であれば int main() と買いて、規格に沿っていない記法とはならないわけです。
0169デフォルトの名無しさん
2009/10/21(水) 19:00:39C++ならそうだね
0170デフォルトの名無しさん
2009/10/21(水) 19:14:41#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double uniformed_rand(void)
{
return (double)rand()/(RAND_MAX+1);
}
int main(void)
{
double theta, phi;
double r=5.0, x, y, z;
int i;
for(i=0;i<100;i++)
{
phi=asin(uniformed_rand()*2-1);
theta=uniformed_rand()*2*M_PI;
x=r*cos(theta)*cos(phi);
y=r*sin(theta)*cos(phi);
z=r*sin(phi);
printf("x=%f y=%f z=%f\n", x, y, z);
}
return 0;
}
0171デフォルトの名無しさん
2009/10/21(水) 19:17:35んだから、プロトタイプが書かれていない場合はint main()をプロトタイプだと見なすんじゃないのって話
で、そうなればvoidの省略は許されないよね。
どこかで
int main(void);
という宣言がされていれば、定義時はint main()で問題ないよね。
その上で、int main()の定義がANSI-Cにおいて完全合法であるからには、どこかで宣言されているか、
またはmainが特殊であるかのいずれかだと思うんだ。
0173デフォルトの名無しさん
2009/10/21(水) 19:43:42プロトタイプ宣言は「実体と伴わない関数の宣言」だろ
int main()って書かれてその後に実体がそのまま書かれてるなら「実体を伴う関数の宣言」なのだからプロトタイプじゃないだろ。
0174デフォルトの名無しさん
2009/10/21(水) 19:48:50そっか。プロトタイプじゃないか。
プロトタイプ宣言はされてるのかなぁ
0175デフォルトの名無しさん
2009/10/21(水) 19:51:27つまるところint main()は完全合法ってことになるのね
0176デフォルトの名無しさん
2009/10/21(水) 19:57:02いっぱいついてどうしようかと思った。
0177デフォルトの名無しさん
2009/10/21(水) 20:50:11いや、べつに main() のプロトタイプを書いてもいいんですよ。無意味ですが。
0178デフォルトの名無しさん
2009/10/21(水) 20:52:44え?
どう書くの
0180デフォルトの名無しさん
2009/10/21(水) 21:43:26「プロトタイプ」の意味、理解してる?
0181デフォルトの名無しさん
2009/10/21(水) 22:30:10[2] 問題文:
キーボードから自然数を入力し1から入力した数までの自然数の中から、
3の倍数と3のつく数字をすべて出力するプログラムを作成しなさい。ただし、
3の倍数と3のつく数字を入力したときに真(非0)、それ以外の場合は偽(0)を返す関数
(関数名は任意)を作成し、それをmain関数内から呼び出して使用すること
{実行例}
自然数を入力して下さい.
100
1から100までで3の倍数と3のつく数字は以下の通りです.
3 6 9 12 13
15 18 21 23 24
27 30 31 32 33
34 35 36 37 38
39 42 43 45 48
51 53 54 57 60
63 66 69 72 73
75 78 81 83 84
87 90 93 96 99
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:明日まで
0182デフォルトの名無しさん
2009/10/21(水) 22:55:13int f(int n)
{
if(n % 3 == 0) return 1;
while(n) {
if(n % 10 == 3) return 1;
n /= 10;
}
return 0;
}
int main(void)
{
int i, n, cnt;
printf("自然数を入力して下さい.");
scanf("%d", &n);
printf("1から%dまでで3の倍数と3のつく数字は以下の通りです. \n", n);
for(i=1,cnt=0; i<=n; i++) if(f(i)) printf("%d%c", i, ++cnt % 5 ? ' ' : '\n');
return 0;
}
0183162
2009/10/21(水) 23:08:13考えて頂いてありがとうございます。
結局点が選ばれる確率を1/4πとして,極座標表示での微小領域に点が入る確率の積分が1になることを利用し,
微小領域の確率を変形して無理やり乱数を使える形にしました。省略しすぎた説明ですいません。
結局 ( theta, phi ) = ( arccos(r1), 2*pi*r2 ) という式を導きました。
但し,r1:[-1, 1],r2:[0, 1]で,theta:[0, pi],phi:[0, 2*pi]で考えています。
0184デフォルトの名無しさん
2009/10/21(水) 23:51:24難しく考えすぎ。
#include <iostream>
int main( );
int main( )
{
std::cout << "Hello World" << std::endl;
return 0;
}
0185デフォルトの名無しさん
2009/10/22(木) 00:07:52プロトタイプ宣言がどうとか、独自の環境なら話は別。
もう少し言葉の意味を理解する頭を持ってくれよ。
ANSI、ISO準拠では条件もしっかり明記されている。
main関数を プログラムの開始 とする。
自分でソースの中から開始の関数を指定できるなら
もはやISO、ANSI準拠にあらず、ご自由にどうぞ。
で、ANSI、ISO準拠の 標準スタイル ではC言語は引数がないなら
int main(void)としている。従うか従わないから各個人の任意にお任せ。
int main()でも良いじゃないか?どうぞどうぞ。別にそれが
間違っているなんて誰も言ってませんよ?
0186デフォルトの名無しさん
2009/10/22(木) 00:09:21世界のアツナベキターーーーー!
0187デフォルトの名無しさん
2009/10/22(木) 00:41:34[2] 問題文(含コード&リンク):
問1
行列のかけ算を使って幅20、高さ140の長方形の横に3.3倍、縦に0.4倍の拡大率で表示をするプログラムを作成せよ。
問2
サンプルプログラムを参考にして、画面の中心に幅80、高さ50の長方形を原点を中心にπ/8だけ回転させた長方形を描くプログラムを作成せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9995.txt
問3
画面上に描かれた長方形がキー入力によって原点を中心に回転するアニメーションを実現するプログラムを作成せよ。キーの「1」と「3」で回転角度が増減するようにせよ。
[3.1] WindowsXP
[3.2] Turbo c++ 4.0
[3.3] C++
[4] 今週の金曜日まで
お願いいたします。
0188デフォルトの名無しさん
2009/10/22(木) 00:45:45int main() { return 0; } は完全に ANSI 準拠ですけれども、何がおっしゃりたいのでしょうか?
>>184
int main(void);
int main() { return 0; }
ではなかろうかと。プロトタイプには void が必要となるのが ANSI 準拠です。
0190デフォルトの名無しさん
2009/10/22(木) 02:11:06ああ、そういうこと?
K&Rなんかは、合法だが標準じゃないスタイルで記述された、それだけの話か。
標準じゃないからといってint main()がひたすらに叩かれる理由がよく分からんけど、とりあえず理解した。
0191デフォルトの名無しさん
2009/10/22(木) 02:25:220192デフォルトの名無しさん
2009/10/22(木) 02:57:430193デフォルトの名無しさん
2009/10/22(木) 12:56:02お前に触れない方が良いことは分った。理解力のない池沼めw
0194デフォルトの名無しさん
2009/10/22(木) 12:58:51> 何がおっしゃりたいのでしょうか?
分らないならレスするなよ、バカw
準拠ですけれども?意味不明。前提条件もあってのことだが???
だから敢えて細かく説明されてんじゃん。いい加減、この手の話は
過去ログで決着がついているから、後は自分で調べろ。
> int main() { return 0; }
激しく意味不明な指摘w
0195デフォルトの名無しさん
2009/10/22(木) 13:05:54ANSI、ISO準拠のmain関数の記述の「標準スタイル」についてだぞ?
mainに関係なくプロトタイプ宣言にvoidが必要だのって、そういう話じゃない。
int main(void)かint main()か?だから上の方でC言語 int main() (笑)とか
言われてたんだろ。
後で必死に反発したつもりなのか、C++が読めない「文盲」なんて
人を見下す差別用語を平気で使うならず者が出てくるし。
C++なんて突っ込むから #include <stdio.h> についてさらに突っ込まれてやんの。
もう支離滅裂。話の主題、論点が分らないならレスしないで構わんよ。
自分が無知だとばれますよ?
0196デフォルトの名無しさん
2009/10/22(木) 13:17:12そりゃそこだけ抜けば意味不明な指摘になる
プロトタイプのとこだとおもうよ
ANSI-Cにおけるint main(){return 0;}は合法であるという旨のレスをいくつかしたんだけど
>>176の通り、C++なら大丈夫だよ!というのが混ざってくるから話がこじれたんじゃないか?
C++は関係ない、で捨てようにも、「C++なら」ってことはCではダメだという風に取れちゃうし。
0197デフォルトの名無しさん
2009/10/22(木) 13:26:15それをプロトタイプ宣言とか言い出したら意味不明だわw
いい加減、プロトタイプ宣言から離れろ
0198デフォルトの名無しさん
2009/10/22(木) 13:37:530199デフォルトの名無しさん
2009/10/22(木) 15:59:01…ハンドル取得…
HDC b = (HDC)a;
これってダメなんだっけ?w
0200デフォルトの名無しさん
2009/10/22(木) 16:06:52aは何のハンドルですか?
0201デフォルトの名無しさん
2009/10/22(木) 16:07:360202デフォルトの名無しさん
2009/10/22(木) 16:53:18フォントのハンドルをHDCにキャストするのは、ダメです。
使い方が間違っています。
0203デフォルトの名無しさん
2009/10/22(木) 16:55:38typedef struct hcd {
foo_t foo;
} *HDC;
typedef struct handle {
struct hcd hdc;
bar_t bar;
} *HANDLE;
typedef struct font {
struct handle handle;
baz_t baz;
} *FONT;
とかなっているんだったら、いいでそ
もしかしてHDCって、Windowsのあれかな。
typedef void *HANDLE;
typedef struct hdc {
foo_t foo;
} *HDC;
typedef struct font {
struct hdc hdc;
bar_t bar;
} *FONT;
こんなのでもいいわ。
もう、typedef void *HANDLE, *HDC, *FONT;でもいいわ。
どういう風に宣言なり定義なりされているのかわからないと何とも言えない。
0204デフォルトの名無しさん
2009/10/22(木) 17:30:19Windowsのスレへどうぞ
void*をむやみにキャストしてもだめということだろうが
0205デフォルトの名無しさん
2009/10/22(木) 21:57:18[2]以下のプログラムの図形を画面の中心に平行移動をしてから表示するように改造せよ。
結果として画面の中央(320, 240)を中心とした回転移動の角度をキー入力によって増減するようにせよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9998.txt
[3.1]WindowsXP
[3.2] turbo c++ 4.0
[3.3] c++
[4] 明日中
よろしくおねがいします。
0206デフォルトの名無しさん
2009/10/22(木) 22:11:56大体の流れとして。
HDC hdc;
PAINTSTRUCT ps;
hFont = CreateFont(…);
hdc = BeginPaint(hWnd, &ps);
SelectObject(hdc, hFont);
じゃないの。それぞれ宣言場所違うけどね。
デバイスコンテキストハンドル2つ生成してSelectObjectすればそれっぽいんじゃないか?。
0207デフォルトの名無しさん
2009/10/22(木) 23:55:47実行してもすぐに
コマンドプロンプトが閉じてしまって結果が見れません
対処法を教えてください。
0208デフォルトの名無しさん
2009/10/23(金) 00:01:210209デフォルトの名無しさん
2009/10/23(金) 00:01:29「終了後に自動的に閉じる」のチェックを外す。
0210デフォルトの名無しさん
2009/10/23(金) 00:13:56[2] 問題文(含コード&リンク):
[1 2 0] [3 2 0 1] [3 4 0 2 1]みたいな同じ数字を使わない任意の長さでランダムな数列の作成するプログラム。
[3] 環境
[3.1] OS: vista
[3.2] コンパイラ名とバージョン: gcc ?
[3.3] 言語: C
[4] 期限: 来週の木曜日
rand()、switchでごり押しくらいしか思いつかないです…
0211デフォルトの名無しさん
2009/10/23(金) 00:20:49カードシャッフルのアルゴリズムと同じ
0212デフォルトの名無しさん
2009/10/23(金) 00:23:11論より証拠。口先よりソースコード。
0213デフォルトの名無しさん
2009/10/23(金) 00:46:22#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int c, char **v)
{
int n,*a,i;
if (c<2)return 0;
a=malloc((n=atoi(v[1]))*sizeof(int));
if (a==NULL)return 1;
srand(time(NULL));
for (int i = 0; i < n; ++i) a[i] = i;
putchar('[');
for (int i = 0; i < n; ++i) {
int k = i + rand() % (n - i); printf("%d ", 1 + a[k]);
a[k] = a[i];
}
putchar(8);
putchar(']');
return 0;
}
0214デフォルトの名無しさん
2009/10/23(金) 00:46:40207なですがどこで右クリックすればいいのか
教えてもらえないでしょうか。
0215デフォルトの名無しさん
2009/10/23(金) 00:51:33.pif ファイル。
つーか、単に main の最後に getchar() か何か付け足して、
エンターで終了ってことにしとけば良いんじゃね?
0216213
2009/10/23(金) 00:54:49携帯だから自分で確認できないんだが。
0217デフォルトの名無しさん
2009/10/23(金) 00:55:53今日から勉強始めて
まったく分からない状況だったので助かりました
0218デフォルトの名無しさん
2009/10/23(金) 01:54:50srand(time(NULL)); (苦笑)
for (int i = 0; i < n; ++i) a[i] = i; (爆笑)
int k = i + rand() % (n - i); printf("%d ", 1 + a[k]); (大爆笑)
putchar(8); (失笑)
0219デフォルトの名無しさん
2009/10/23(金) 02:18:55#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int c, char **v){
int n,*a,i,k;
if (c<2)return 0;
a=malloc((n=atoi(v[1])) * sizeof (int));
if (a==NULL)return 1;
srand(time(NULL));
for (i = 0; i < n; ++i) a[i] = i+1;
putchar('[');
for (i = 0; i < n; ++i){
k = i + rand() % (n - i);
printf("%d ", a[k]);
a[k] = a[i];
}
putchar(8);
putchar(']');
return 0;
}
0220デフォルトの名無しさん
2009/10/23(金) 02:29:22修正しといてくれ。
0221デフォルトの名無しさん
2009/10/23(金) 02:32:41#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int c, char **v){
int n,*a,i,k;
if (c<2)return 0;
a=malloc((n=atoi(v[1])) * sizeof (int));
if (a==NULL)return 1;
srand(time(NULL));
for (i = 0; i < n; ++i) a[i] = i;
putchar('[');
for (i = 0; i < n; ++i){
k = i + rand() % (n - i);
printf("%d ", a[k]);
a[k] = a[i];
}
putchar(8);
putchar(']');
return 0;
}
0222デフォルトの名無しさん
2009/10/23(金) 04:31:04for(i=n; i; ) {
k = rand() % i--;
0223デフォルトの名無しさん
2009/10/23(金) 04:55:38#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int c, char **v){
int n,*a,i,k;
if (c<2)return 0;
a=malloc((n=atoi(v[1])) * sizeof (int));
if (a==NULL)return 1;
srand(time(NULL));
for (i = 0; i < n; ++i) a[i] = i;
putchar('[');
for (i=n; i;){
k = rand() % i--;
printf(i?"%d ":"%d", a[k]);
a[k] = a[i];
}
putchar(']');
return 0;
}
0224デフォルトの名無しさん
2009/10/23(金) 05:03:45for (i = 0; i < n; i++){
k = rand() % (n-i);
a[k] = a[n-i];
}
とするのが好きだな。
0225デフォルトの名無しさん
2009/10/23(金) 05:07:100226デフォルトの名無しさん
2009/10/23(金) 05:17:470227C初心者
2009/10/23(金) 06:26:19御礼が遅くなりました。
ありがとうございました。
0228デフォルトの名無しさん
2009/10/23(金) 06:48:23ループの中で場合わけするなら、]もつけちゃえばいいのに。
0229デフォルトの名無しさん
2009/10/23(金) 08:10:48#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, j, n, *p;
srand(time(NULL));
scanf("%d", &n);
p = malloc(n * sizeof(int));
for(i=0; i<n; i++) {
j = rand() / (RAND_MAX + 1.0) * (i + 1);
p[i] = p[j];
p[j] = i;
}
printf("[%d", p[0]);
for(i=1; i<n; i++) printf(" %d", p[i]);
printf("]\n");
free(p);
return 0;
}
0230デフォルトの名無しさん
2009/10/23(金) 11:44:38[1] 授業単元:プログラミング言語C
[2] 問題文:
以下のプログラムの『考える』ところを直し、キーボードから1を入力したらRed2ならGreen、3ならBlueの文字列が画面表示されるようにせよ。またそれ以外の数字が入力されたら『終了します』と画面表示されプログラムが終了するようにせよ
#include<stdio.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
scanf("%d",&input);
if(考える) {
printf("%s\n", colors[考える]);
};
return 0;
}
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン:VC ++
[3.3] 言語: C
[4] 期限:早く出せば点数が上がるので出来るだけ早くお願いします
[5] その他の制限:
よろしくお願いします
0231デフォルトの名無しさん
2009/10/23(金) 11:49:39#include<stdio.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
scanf("%d",&input);
if(1 <= n && n <= 3) {
printf("%s\n", colors[n - 1]);
}else {
printf("終了します\n");
}
return 0;
}
0232デフォルトの名無しさん
2009/10/23(金) 11:54:19#include<stdio.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
while(1){
scanf("%d",&input);
if(input>0&&input<4){
printf("%s\n", colors[input-1]);
}else{
printf("終了します\n")
break;
}
}
return 0;
}
0233デフォルトの名無しさん
2009/10/23(金) 12:36:500234デフォルトの名無しさん
2009/10/23(金) 12:41:02#include<stdio.h>
#include<string.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
char *nums[]={"1", "2", "3"};
char b[80];
gets(b);
for(input=0;input<4;input++)if(!strcmp(b,nums[input]))break;
if(input<4){
printf("%s\n", colors[input]);
}else{
printf("終了します\n");
}
return 0;
}
0235デフォルトの名無しさん
2009/10/23(金) 12:56:45#include<stdio.h>
#include<string.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
char *nums[]={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
char b[80];
gets(b);
for(input=0;input<11;input++)if(!strchr(b,"0123456789"[input]))printf("終了します\n"),return 0;
for(input=0;input<11;input++)if(!strcmp(b,nums[input]))break;
if(input<4){
printf("%s\n", colors[input]);
}else if(input<10){
printf("終了します\n");
}
return 0;
}
0236デフォルトの名無しさん
2009/10/23(金) 13:05:540237デフォルトの名無しさん
2009/10/23(金) 13:08:44#include<stdio.h>
#include<string.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
char *nums[]={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
char b[80];
gets(b);
for(input=0;input<11;input++)if(!strchr(b,"0123456789"[input]))printf("終了します\n"),return 0;
for(input=3;input<11;input++)if(strstr(b,nums[input]))printf("終了します\n"),return 0;
for(input=0;input<4;input++)if(!strcmp(b,nums[input]))break;
if(input<4){
printf("%s\n", colors[input]);
}
return 0;
}
0238デフォルトの名無しさん
2009/10/23(金) 13:37:15#include <stdio.h>
#include <string.h>
int main(void) {
char *colors[] = {"Red", "Green", "Blue"};
int input, i;
char buf[1024];
char *num[] = {"0","1","2","3","4","5","6","7","8","9"};
char *num2[] = {"零","一","二","三","四","五","六","七","八","九"};
fgets(buf, 1024, stdin);
input = atoi(buf);
for(i = 0; i < 10; i++) if (strncmp(buf, num[i]) == 0) input = i;
for(i = 0; i < 10; i++) if (strncmp(buf, num2[i]) == 0) input = i;
if (input <= 0 || input >= 4) printf("終了します\n");
printf("%s\n", colors[input]);
return 0;
}
0239デフォルトの名無しさん
2009/10/23(金) 13:43:12__declspec(dllimport) extern int scanf(const char *s, ...);
int main(void) {
char *colors[] = {"Red", "Green", "Blue"};
int input;
char b[80];
gets(b);
input = atoi(b);
if (input <= 0 || input >= 4) printf("終了します\n");
else printf("%s", colors[input - 1]);
return 0;
}
0240210
2009/10/23(金) 13:47:52ありがとうございます。
検索ワードが思い浮かばず困っていた面もありました。
時間はあるのでじっくりググって煮詰めようと思います。
>>213=>>219=>>221=>>223
>>229
ありがとうございます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10000.txt
自分でも布団の中で考えn個の中から1つを選ぶ、n-1個の(ryみたいな感じでやってみましたが比べると無駄が多い…
参考に改善しようと思います。
0241デフォルトの名無しさん
2009/10/23(金) 13:52:090242デフォルトの名無しさん
2009/10/23(金) 14:05:230243デフォルトの名無しさん
2009/10/23(金) 14:11:290244デフォルトの名無しさん
2009/10/23(金) 14:23:37カレンダー出力も来るでおじゃる!
0245デフォルトの名無しさん
2009/10/23(金) 16:45:240246麻呂専用
2009/10/23(金) 16:55:35[2] 8X8のオセロの全局面をリスト構造で列挙しそれを適当なファイルに保存するプログラム
次の問いの答えも添付すること
(1)先手必勝、後手必勝かの決定
(2)平行初期値と通常初期値(回転対称、鏡映は同一視)それぞれの
場合において到達可能な葉は全部の場合の何パーセント程度であるか?
[3] Windows 2000/Visual-C++ 6.0/C言語(厳守)
★置く場所が無い場合に限りパスが認められる。
★FileMappingやVirualAllocateのWindowsの機能を利用し、
メモリがパンクしないように留意すること。メモリの搭載は128M程度
を仮定する。
[4]来週月曜日迄(厳守)
0247デフォルトの名無しさん
2009/10/23(金) 18:21:25どこから、どこまでを引っこ抜いてきて書けばいいかが分からないので、とりあえず下記を抜粋しました。
この部分で文法的に間違ってる文章はありますでしょうか?
nはdefine済みです。よろしくお願いします。
int i, l, s, c, k, d[n];
srand(10);
for(k=0; k<n; k++){
d[k] = 0;
}
i = floor(rand() * n);
c = i;
for(l=0; l<10; l++){
s = floor(rand() * rowvec[c].num );
c = rowvec[c].kazu[s];
d[c]++;
}
0248デフォルトの名無しさん
2009/10/23(金) 18:28:02>【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
0249デフォルトの名無しさん
2009/10/23(金) 19:09:34[1] 授業単元: 情報演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10001.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
うpろだお借りしました。
10001.txtの中の
int i, l, s, c, d[n];
init_genrand(10);
for(k=0; k<n; k++){
d[k] = 0;
}
i = floor(genrand_real2() * n);
c = i;
for(l=0; l<10; l++){
s = floor(genrand_real2() * rowvec[c].num );
c = rowvec[c].kazu[s];
d[c]++;
}
for(c=0; c<n; c++){
printf(" %d\n", d[c]);
}
}
が手間取っている部分です。どうしてもうまく動作しません。
よろしくお願いします
0250デフォルトの名無しさん
2009/10/23(金) 19:42:46何がどうなって欲しいの?
0251デフォルトの名無しさん
2009/10/23(金) 20:10:44隣接行列を作る。
強連結か判定。
ページランクの測定。
です。
>>249では有向グラフで出発点をランダムにとり、
そこからランダムウォークをして、何回か移動したとき、各点にどれだけ移動したかを測定しようとしています。
0252デフォルトの名無しさん
2009/10/23(金) 20:25:40■ このスレッドは過去ログ倉庫に格納されています