- 1 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 01:08:18 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題片付けます 130代目 pc12.2ch.net/test/read.cgi/tech/1250204272/
- 210 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:13:56 ]
- [1] 授業単元:プログラミング演習
[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でごり押しくらいしか思いつかないです…
- 211 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:20:49 ]
- >>210
カードシャッフルのアルゴリズムと同じ
- 212 名前:デフォルトの名無しさん [2009/10/23(金) 00:23:11 ]
- >>211
論より証拠。口先よりソースコード。
- 213 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:46:22 ]
- >>210
#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; }
- 214 名前:デフォルトの名無しさん [2009/10/23(金) 00:46:40 ]
- >>209
207なですがどこで右クリックすればいいのか 教えてもらえないでしょうか。
- 215 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:51:33 ]
- >>214
.pif ファイル。 つーか、単に main の最後に getchar() か何か付け足して、 エンターで終了ってことにしとけば良いんじゃね?
- 216 名前:213 mailto:sage [2009/10/23(金) 00:54:49 ]
- これで出来てる?
携帯だから自分で確認できないんだが。
- 217 名前:デフォルトの名無しさん [2009/10/23(金) 00:55:53 ]
- >>215さんありがとうございました
今日から勉強始めて まったく分からない状況だったので助かりました
- 218 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 01:54:50 ]
- int main(int c, char **v) (笑)
srand(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); (失笑)
- 219 名前:デフォルトの名無しさん mailto:sage [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; }
- 220 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 02:29:22 ]
- 問題よくみたら0からだった。
修正しといてくれ。
- 221 名前:デフォルトの名無しさん mailto:sage [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; }
- 222 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 04:31:04 ]
- 前から抜くより、後ろからの方が足し引きすくないよ。
for(i=n; i; ) { k = rand() % i--;
- 223 名前:デフォルトの名無しさん mailto:sage [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; }
- 224 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 05:03:45 ]
- 個人的には
for (i = 0; i < n; i++){ k = rand() % (n-i); a[k] = a[n-i]; } とするのが好きだな。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 05:07:10 ]
- a[k] = a[n-i-1]じゃね?
- 226 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 05:17:47 ]
- おぉーーっと、ここでうpロダ君のロングパス!
- 227 名前:C初心者 [2009/10/23(金) 06:26:19 ]
- >129, 135, 136さん
御礼が遅くなりました。 ありがとうございました。
- 228 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 06:48:23 ]
- >>223
ループの中で場合わけするなら、]もつけちゃえばいいのに。
- 229 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 08:10:48 ]
- >>210
#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; }
- 230 名前:デフォルトの名無しさん [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] その他の制限: よろしくお願いします
- 231 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 11:49:39 ]
- >>230
#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; }
- 232 名前:デフォルトの名無しさん [2009/10/23(金) 11:54:19 ]
- >>230
#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; }
- 233 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:36:50 ]
- int main() (笑)
- 234 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:41:02 ]
- >>230
#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; }
- 235 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:56:45 ]
- >>230
#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; }
- 236 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 13:05:54 ]
- つまんね
- 237 名前:デフォルトの名無しさん mailto:sage [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; }
- 238 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 13:37:15 ]
- #include <stdlib.h>
#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; }
- 239 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 13:43:12 ]
- __declspec(dllimport) extern int printf(const char *s, ...);
__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; }
- 240 名前:210 mailto:sage [2009/10/23(金) 13:47:52 ]
- >>211
ありがとうございます。 検索ワードが思い浮かばず困っていた面もありました。 時間はあるのでじっくりググって煮詰めようと思います。 >>213=>>219=>>221=>>223 >>229 ありがとうございます。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10000.txt 自分でも布団の中で考えn個の中から1つを選ぶ、n-1個の(ryみたいな感じでやってみましたが比べると無駄が多い… 参考に改善しようと思います。
- 241 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 13:52:09 ]
- knuthやfisher-yatesでググると参考になる。
- 242 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:05:23 ]
- putchar(8) って何? バグ?
- 243 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:11:29 ]
- asciiコードぐらい自分で調べろよw
- 244 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:23:37 ]
- さぁとっととリストの課題こいや〜!麻呂のミートクソースをお見舞いしてやんよでおじゃる?
カレンダー出力も来るでおじゃる!
- 245 名前:デフォルトの名無しさん [2009/10/23(金) 16:45:24 ]
- いやっほー!
- 246 名前:麻呂専用 mailto:sage [2009/10/23(金) 16:55:35 ]
- [1] C言語中級
[2] 8X8のオセロの全局面をリスト構造で列挙しそれを適当なファイルに保存するプログラム 次の問いの答えも添付すること (1)先手必勝、後手必勝かの決定 (2)平行初期値と通常初期値(回転対称、鏡映は同一視)それぞれの 場合において到達可能な葉は全部の場合の何パーセント程度であるか? [3] Windows 2000/Visual-C++ 6.0/C言語(厳守) ★置く場所が無い場合に限りパスが認められる。 ★FileMappingやVirualAllocateのWindowsの機能を利用し、 メモリがパンクしないように留意すること。メモリの搭載は128M程度 を仮定する。 [4]来週月曜日迄(厳守)
- 247 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:21:25 ]
- 全文を書くと大変なことになるのと(300行以上)、
どこから、どこまでを引っこ抜いてきて書けばいいかが分からないので、とりあえず下記を抜粋しました。 この部分で文法的に間違ってる文章はありますでしょうか? 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]++; }
- 248 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:28:02 ]
- >>1
>【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
- 249 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 19:09:34 ]
- 【質問テンプレ】
[1] 授業単元: 情報演習 [2] 問題文(含コード&リンク): 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]); } } が手間取っている部分です。どうしてもうまく動作しません。 よろしくお願いします
- 250 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 19:42:46 ]
- >>249
何がどうなって欲しいの?
- 251 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 20:10:44 ]
- プログラム全体でやっていることは、
隣接行列を作る。 強連結か判定。 ページランクの測定。 です。 >>249では有向グラフで出発点をランダムにとり、 そこからランダムウォークをして、何回か移動したとき、各点にどれだけ移動したかを測定しようとしています。
- 252 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 20:25:40 ]
- ランダムウォークじゃなくて全部歩くべきなんじゃないの?
- 253 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 22:28:46 ]
- >249
値を返していない関数がある 245行目で初期化されていない変数を使っている
- 254 名前:デフォルトの名無しさん [2009/10/24(土) 00:55:05 ]
- [1] 授業単元:プログラミングV
[2] 問題文(含コード&リンク):外部ファイルより整数を読み込み、棒グラフを描くプログラムを 作る。外部ファイルはコンストラクタで配列に読み込め。使う関数はヘッダーファイルに publickに定義する。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual Studio 2005 [3.3] 言語:C++ [4] 期限:2009年10月29日10時 [5] その他の制限:特にないです。
- 255 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 03:12:57 ]
- 問題文って本当にそれだけ?
- 256 名前:デフォルトの名無しさん [2009/10/24(土) 09:13:10 ]
- mathematicaなんですが、関数を作れとのことなので
ここに投稿させてもらいます。 暇がある方お願いします。 2変量のデータ {{x1, y1}, {x2, y2}, ... , {xn, yn}} を引数として,散布図と相関係数を出力する関数を作成せよ.
- 257 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 09:49:53 ]
- お断りします
- 258 名前:デフォルトの名無しさん [2009/10/24(土) 14:40:31 ]
- テストの平均点を出して小数第2位を四捨五入したいんだけどどうすればいいの?
平均点は出てます。
- 259 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 14:46:52 ]
- %とfの間に「.1」だっけ?
- 260 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 15:12:39 ]
- >>258
main(){ float a = 1.56; int b; b = a*10+0.5; a = b/10.0; printf("%f",a); return 0; }
- 261 名前:デフォルトの名無しさん [2009/10/24(土) 15:15:44 ]
- #include <math.h>
float round(float val, int decimal) { val += pow(5.0, -(decimal+1)); long tmp = val * pow(10.0, decimal); return tmp/pow(10.0, decimal); }
- 262 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 16:58:52 ]
- テキストから"n 100"みたいな文字列を読み込んで、プログラム内でnに100を代入するにはどうすればいいでしょうか?
- 263 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 17:14:17 ]
- それがコンパイラだよ。
- 264 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 17:17:56 ]
- >>262
プログラム書くか、>>1を読めばいい。
- 265 名前:デフォルトの名無しさん mailto:age [2009/10/24(土) 19:07:42 ]
- [1] 授業単元:変数の基礎
[2] 問題文(含コード&リンク):このプログラムのどこかに変数における間違いがあります。 その間違いを探しなさい。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10002.txt [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: visual studio2008 [3.3] 言語: C/C++/どちらでも可 [4] 期限: 明後日まで [5] その他の制限: 特になし
- 266 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:27:11 ]
- >265
使われていない変数がある 値を返していない関数がある
- 267 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:41:18 ]
- >265
outputが開放されていない 引数が使われていない 未定義動作の式が存在する
- 268 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:45:31 ]
- 意図のわからない名前をつけちゃだめ
- 269 名前:265 mailto:age [2009/10/24(土) 20:22:15 ]
- >>266>>267
ありがとうございます。 もし良ければ何行目あたりかを教えてください。(スルーでも大丈夫です)
- 270 名前:デフォルトの名無しさん [2009/10/24(土) 21:24:20 ]
- >>265
これすごいなw 実装したやつ天才すぎるw つか宿題じゃねーだろこれ?
- 271 名前:デフォルトの名無しさん [2009/10/24(土) 21:25:44 ]
- こういうスレにいると
問題と回答の両方があるから 勉強になるよね☆
- 272 名前:265 mailto:age [2009/10/24(土) 21:28:20 ]
- 専門学校の宿題です
長いプログラムですが間違えてる所は最初〜真ん中らへんにあるって言ってました 関数や引数のことがよく分かっていないんで詳しく説明できる人がいればお願いいたします
- 273 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:32:43 ]
- >>265
このコード自体くそ はじめから書き直せ 素人丸だし
- 274 名前:デフォルトの名無しさん [2009/10/24(土) 21:37:18 ]
- >>272
宿題なのかこれ・・・ これ先生が書いたの? 突っ込みどころ満載なんだがwww
- 275 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:43:59 ]
- >>265
プログラムを見た瞬間目が回った これだけやる気をなくすプログラムも珍しいな
- 276 名前:デフォルトの名無しさん [2009/10/24(土) 21:46:35 ]
- うちの学校の講師はプログラミングテストで合格しないとなれないみたいだから
>>265みたいなひどいコードはないな
- 277 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:46:57 ]
- とりあえず何をしたいプログラムか分らないと途中経過を追うのが怠すぎる…
- 278 名前:265 mailto:age [2009/10/24(土) 21:47:08 ]
- >>274
先生が書きました とりあえず自力でがんばってみます。 一応明後日までみなさんの詳しい答え待ってます。おやすみなさい
- 279 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:13:01 ]
- >265
>266, 267 とりあえず、機械的に解析してもらった結果から出したんだけど kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10003.txt
- 280 名前:デフォルトの名無しさん [2009/10/24(土) 22:30:47 ]
- >>279
ってか機械的に解析ってどうやんの?プログラマーの俺に教えてちょww
- 281 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:36:15 ]
- lintと違うん?
- 282 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:36:15 ]
- >>280
ツール使うだけ lint とか
- 283 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:36:27 ]
- >>265
こんなん教えてる専門学校は今すぐ辞めるべき
- 284 名前:デフォルトの名無しさん [2009/10/24(土) 22:37:48 ]
- lintかー あざーす
- 285 名前:デフォルトの名無しさん mailto:age [2009/10/24(土) 22:43:15 ]
- lintってフリーソフトなん?
- 286 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:48:36 ]
- >>285
ググれよw
- 287 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:00:02 ]
- ググって見たけど最近のコンパイラなら必要なさそうだな
- 288 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:09:13 ]
- >265
まぁみんなつっこんでるので繰り返しになるが、 問題文自体が間違ってないか。 「このプログラムのどこかに変数における間違いがあります。」 いや、変数の問題じゃ無いんだが、、、。 こんなコードをデバッグさせようとすること自体が間違いでしょ。 専門学校の宿題か。 その講師の言うことは宛にならないと思う。
- 289 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:20:24 ]
- lintとかを使えるようにしようっていう意図なんじゃないかと深読み
- 290 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:22:06 ]
- >>265
これはひどい。 うちの会社なら、これ書いた奴の上司が社長室に呼びつけられるなw
- 291 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:24:59 ]
- >>265
こんなコードを人に見せるなんて恥ずかしくて切腹ものですね。 先生、あさってには死んでるかもしれないんじゃないですか。
- 292 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:29:09 ]
- プログラマが書いたコードじゃなくて数学屋が書いたコードだろ
やつらこんなの書くぞ
- 293 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:31:58 ]
- 講師が学生のバイトで、そいつが研究課題でプログラム組んだけどミスがある。
でも自分ではわからないから、バイト先の連中にやらせちゃえ って感じな気がする。
- 294 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:36:18 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10004.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明後日
- 295 名前:デフォルトの名無しさん [2009/10/25(日) 00:08:00 ]
- >>293
確かにw そんな感じするw
- 296 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:19:37 ]
- >>294
#include <stdio.h> void rotate(int *p, int size) { int i, temp; for(i=0,size--; i<size; i++, size--) { temp = p[i]; p[i] = p[size]; p[size] = temp; } } int main(void) { int a[10], i, length, n; printf("整数列をローテーションします.\n整数列の長さを入力してください:"); scanf("%d", &length); if(length <= 0 || 11 <= length) return printf("error"); printf("整数列を入力してください(スペース区切り):"); for(i=0; i<length; i++) scanf("%d", a + i); printf("ローテーション数を入力してください:"); scanf("%d", &n); while(n >= length) n -= length; rotate(a, length - n); rotate(a + length - n, n); rotate(a, length); printf("結果 [ "); for(i=0; i<length; i++) printf("%d ", a[i]); printf("]\n"); return 0; }
- 297 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:20:00 ]
- >>294
もっと単純に書いちゃだめなのこれ? for (i = 0; i < len; ++i) { arr1[ (i + n) % len ] = arr0[ i ]; } とかさ。
- 298 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:40:55 ]
- >>296
関数の名前はrotateじゃなくてreverseのほうが正しくね?
- 299 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:21:30 ]
- >294
どこかで見たことあるアルゴリズムだと思ったら、「珠玉のプログラミング」にあった奴だ。 問題の仕様には完全に合わせていないけど、 肝心の部分は、reverseを使ってこんな感じ。 void rightRotation(int *pInt, size_t size, size_t shift) { while (shift > size) { /* シフトがサイズを超えたら、さらに一周させる */ shift -= size; } if (shift == size) { /* シフトとサイズが同じなら変化無し */ return; } /* 先頭からsize - shiftサイズ分を逆順にする */ reverse(pInt, size - shift); /* 残り部分を逆順にする */ reverse(&pInt[size - shift], shift); /* 全体を逆順にする */ reverse(pInt, size); }
- 300 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:28:40 ]
- >>294
codepad.org/WglVP0uB scanf()追放信者が書くとこうなってしまいました。
- 301 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:33:22 ]
- せめて関数のエラー回避をw
- 302 名前:300 mailto:sage [2009/10/25(日) 01:38:45 ]
- >>301
うーん、malloc()のエラー回避はしていますが、やっぱり足りないですか?
- 303 名前:294 mailto:sage [2009/10/25(日) 01:40:49 ]
- 実は関数を習ってないので、その部分は回答を参考に書き替えたら
正しい結果になりました。回答ありがとうございました
- 304 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:24:18 ]
- これ作ったら神。
PS postscriptのテキスト抽出するやつ。日本語対応版。 フリーでは、誰も開発してないので、検索エンジンのフィルターの需要あってアクセス増えるよ。
- 305 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:29:01 ]
- 乞食は死ね
- 306 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 04:10:02 ]
- >>304
PDFからテキスト抽出とかどっかで見たことあるからpostscriptからも普通にありそうなもんだけど
- 307 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:37:59 ]
- [1] 授業単元:独学
[2] 問題文(含コード&リンク):www.ioi-jp.org/joi/2006/2007-yo-prob_and_sol/2007-yo-problems/2007-yo-t3/2007-yo-t3.html [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン:Visual Basic [3.3] 言語: C [4] 期限: 無期限
- 308 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:39:20 ]
- >>307
ぁ、Windowsです お願いします!
- 309 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:43:57 ]
- VBて。
しかも独学て。 独りで学んでないじゃん。
- 310 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:47:06 ]
- VBじゃ駄目ですか?
独学以外に何と書けば良いかわからなかったので・・・。
|

|