1 名前:デフォルトの名無しさん [2011/11/04(金) 09:08:00.06 ] あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 >>2 以降にあります。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
2 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 09:08:32.11 ] 【質問テンプレ】 [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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi codepad.org/ ←遅い時間は重い事があります ideone.com/ pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題片付けます 152代目 hibari.2ch.net/test/read.cgi/tech/1312201995/
3 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 13:39:54.52 ] >>999 前スレのレスがあまりにウンコなのでどうしようか悩んだけど、書くわ。 名前空間って知ってるか?
4 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 13:55:39.54 ] ひとまず「C++ std」とかでググればよかろうに そうすればつまらない質問してウンコとか言われないでいられたものを
5 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 13:59:15.40 ] 前スレ >>994 ベタな方法で。 ideone.com/75gvT
6 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 14:49:40.13 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク):文字列st が回文(前から読んでも後ろから読んでも 同じ)であれば1 を,そうでなければ0 を返す関数 int isPalindrome(const char st[]) を作成せよ.以下の実行例のように,関数の動作を確認 例.文字列を入力してください:AKASAKA その文字列は回文です。 できるmain 関数も作成する. 例 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:不明 [3.3] 言語:C [4] 期限:11/6 [5] その他の制限:
7 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 14:54:30.56 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク):文字列st が回文(前から読んでも後ろから読んでも 同じ)であれば1 を,そうでなければ0 を返す関数 int isPalindrome(const char st[]) を作成せよ.以下の実行例のように,関数の動作を確認 できるmain 関数も作成せよ. 例.文字列を入力してください:AKASAKA その文字列は回文です. [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:不明 [3.3] 言語:C [4] 期限:11/6 [5] その他の制限:
8 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 15:13:10.58 ] >>7 int isPalindrome(const char st[]) { char* f; char* b; f = b = st; while( *b ) b++; b--; while( b > f ) { if( *f != *b ) return 0; f++; b--; } return 1; }
9 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 18:00:02.02 ] おや、>>6 と>>7 は一緒だったのか 気付かず作っちゃったのでやり方少し違うしせっかくなのでうp codepad.org/6UL5hxyw
10 名前:デフォルトの名無しさん [2011/11/05(土) 01:33:40.13 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):例に示すように、二つの整数値を読み込んで、 小さい方の数以上で大きいほうの数以下の整数 を全て加えた値を表示するプログラムを作成せよ。 (例) 二つの整数を入力してください。 整数1: 37 整数2: 28 28以上37以下の全整数の和は325です。 [3] 環境 [3.1] OS:windows7 [3.2] コンパイラ名とバージョン:Visual C++ 2010 Express [3.3] 言語:どちらでも可 [4] 期限:11月9日 [5] その他の制限:if文とdo文を必ず使うこと。 4月から授業ではじめたばかりですので、複雑な文は分かりません。 よろしくお願いします。
11 名前:デフォルトの名無しさん [2011/11/05(土) 01:34:35.55 ] 連投ごめんなさい 例がずれました
12 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 01:54:00.69 ] >>10 #include<iostream> using namespace std; int main(void) { int a,b; cout << "二つの整数を入力してください。" << endl; cout << "整数1:"; cin >> a; cout << "整数2:"; cin >> b; int sum=0; for (int i=min(a,b) ; i<=max(a,b) ; i++) sum += i; cout << min(a,b) << "以上" << max(a,b) << "以下の全整数の和は" << sum << "です。" << endl; return 0; }
13 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 02:00:27.20 ] >>10 if と do だったな。忘れてたわ。 #include<iostream> using namespace std; int main(void) { int a,b; cout << "二つの整数を入力してください。" << endl; cout << "整数1:"; cin >> a; cout << "整数2:"; cin >> b; int max,min; if (a<b) { min = a; max = b; } else { min = b; max = a; } int sum=0; int i=min; do { sum += i; i++; } while (i<=max); cout << min << "以上" << max << "以下の全整数の和は" << sum << "です。" << endl; return 0; }
14 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 04:35:44.32 ] >>5 プログラムへのツッコミじゃないけど40はfortyな。 あとハイフンを使ったりとか...
15 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 08:01:30.87 ] >forty 知らなかった こんなところで英語の無駄知識が増えるとは
16 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 08:07:26.53 ] 3項演算子で割り算連続とか、なんの冗談なんだろうw
17 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 08:57:25.99 ] >>15 「無駄」って、日本語でいったら漢数字の表記を間違えているようなもんだぞw
18 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 09:17:13.69 ] >>17 何で英語はfourtyとしなかったんだ?というボヤキでしょ。
19 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 12:01:32.49 ] >>18 え?
20 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 12:11:17.56 ] 外国人が多少日本語を間違えていても 意味を取り違えない程度なら正直どっちでもいい 日本人が多少英語を間違えていても(以下同
21 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 12:12:39.24 ] お、おう
22 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 12:15:34.87 ] 実際英語圏にいくと人種が混じってるので、間違えたら可哀想な目で見られるだけ。
23 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 20:53:42.06 ] "forty"の5文字はアルファベット順になっている とかが英語の無駄知識だろう
24 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 22:19:17.11 ] >>18 そんなとこでぼやくんなら、 何で50はfivetyじゃなくてfiftyなんだ、とかもぼやいてるのか? 「いやいや14がfourteenだし4の部分は発音が同じだし」、とかいうなら 英語は綴りと発音が対応してない単語が山ほどあるがその度にぼやいているのか? こんなもん自然言語の歴史的な経緯なんだからどうしようもないんだよ。 ちなみに昔はfourとfortyのforは発音が違ったらしいぞ。 あと言語のForth、あれはFourthとするつもりが文字数の都合でForthになった、 これぐらいが無駄知識w
25 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 22:41:52.51 ] フォースを信じるのじゃ
26 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 00:04:03.33 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):3つのデータを管理するプログラム PDFにした問題を貼っておきます www.07ch.net/up2/src/lena6268.zip [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:特に指定はなかったです [3.3] 言語:C言語 [4] 期限: 11/8 [5] その他の制限: 特に無いです よろしくお願いします
27 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 07:23:07.35 ] >>26 #include <string.h> #include <stdlib.h> typedef struct AAA { char usr_name[32]; char password[32]; int age }AAA; char* strlcpy( char* pDestination, const char* pSource, size_t Size ) { char* pStart = pDestination; while( --Size && ( *pDestination++ = *pSource++ ) ); *pDestination = '\0'; return pStart; } AAA usr; /*グローバル変数*/ void init(){ /*作成*/ memset(&usr,0,sizeof(AAA)); } int add_user(char *usr_name,char *password,int age){ /*作成*/ strlcpy(usr.usr_name,usr_name,32); strlcpy(usr.password,password,32); usr.age = age; }
28 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 07:46:54.20 ] >>27 add_user()は 成功:0 エラー:-1 を返すんですけど・・・
29 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 18:17:42.87 ] [1] 授業単元:プログラミング入門 [2] 問題文:0以上20以下の整数を入力として受け付けて, その数から20までの整数を順に出力せよ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ありません [5] その他の制限: ありません うまくカウントできなくて困っています 宜しければお願いします
30 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 18:50:28.03 ] /*>>29 */ #include <stdio.h> int main(void) { int n, i; printf("整数(0-20): "); scanf("%d", &n); if (n < 0 || n > 20) { fprintf(stderr, "範囲外です"); return 0; } for (i = n; i <= 20; i++) printf("%d ", i); printf("\n"); return 0; }
31 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 18:52:23.92 ] void main(){ int in; scanf("%d",&in); for(;in<=20;in++)printf("%d\n",in); }
32 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 19:32:22.25 ] >>31 横やりだけど、負数をはじかないと
33 名前:デフォルトの名無しさん [2011/11/06(日) 22:55:45.94 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク):mのn乗 を一の位まで正確に計算するプログラムを書け。ただし、mは2以上10000未満の整数、nは0以上10000未満の整数とする。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: わかりません [3.3] 言語: C [4] 期限: 2011年11月7日12時 [5] その他の制限: ありません よろしくおねがいします
34 名前:デフォルトの名無しさん [2011/11/06(日) 23:04:55.18 ] >>33 に追加条件です。 多倍長整数を使ってください。
35 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:18:07.59 ] >>30-31 ありがとうございました 助かりました
36 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:20:21.13 ] [1] 授業単元:C言語 [2] 問題文:整数型の要素を最大20個格納できる配列を宣言し,先頭から10個分には2を, 後半の10個分には3を格納せよ。正しく格納されたことを出力する必要があるが, 出力する際には2を10個分空白区切りで出力し,改行した後に3を10個分空白区切りで出力すること。 [3] 環境 [3.1] OS: Win [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限: 11月7日 よろしくお願いします
37 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:56:59.99 ] >>36 #include <stdio.h> int main() { int a[20]; int i; for (i = 0; i < 10; i++) { a[i] = 2; } for (; i < 20; i++) { a[i] = 3; } for (i = 0; i < 20; i++) { printf("%d%c", a[i], ((i % 10) == 9)? '\n': ' '); } return 0; }
38 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:59:08.37 ] >>33 大してテストしてないので、十分検証してから提出してくださいな ideone.com/VjhNB
39 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:03:17.05 ] /*>>36 */ #include <stdio.h> int main(void) { int a[20]; int i; for (i = 0; i < 20; i++) a[i] = i / 10 + 2; for (i = 0; i < 20; i++) printf("%d%c", a[i], ((i + 1) % 10) ? ' ' : '\n'); return 0; }
40 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:06:25.03 ] >>36 #include <stdio.h> void disp(int *a,int l) { while(l--) printf("%d ",*a++); printf("\n"); } int main(void) { int array[20]={2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3}; disp(array ,10); disp(array+10,10); return(1); }
41 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:14:19.39 ] /*>>36 */ #include <stdio.h> main(i){int a[20];for(--i;i<20;a[i]=i/10+2,printf("%d%c",a[i],((i+1)%10)?' ':'\n'),i++);}
42 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:23:22.99 ] ちょっと縮んだ /*>>36 */ #include <stdio.h> main(i){int a[20];for(i=0;i<20;a[i]=i/10+2,printf("%d%c",a[i],' '-(i==9)*22),i++);}
43 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:28:04.80 ] >>40 ちょw 絶対先生に合格もらえないだろwww
44 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:33:44.22 ] さらに縮んだ 100byte切れない /*>>36 */ #include <stdio.h> main(i){int a[20];for(i=0;i<20;a[i]=i/10+2,printf("%d \0%d\n"+(i++==9)*4,a[i]));}
45 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:37:32.98 ] と思ったら切れた /*>>36 */ #include <stdio.h> main(i){int a[20];for(i=0;i<20;printf("%d \0%d\n"+(i++==9)*4,a[i]=i/10+2));}
46 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:38:19.55 ] >>33 #include <stdio.h> int main(void) { int i, j, m, n, d, c, a[10000] = {1}; scanf("%d", &m); scanf("%d", &n); for(i = d = 0; i < n; i++) { for(j = c = 0; j <= d; j++) { a[j] = a[j] * m + c; if(a[j] >= 10000) { c = a[j] / 10000; a[j] %= 10000; } else c = 0; } if(c) a[++d] = c; } printf("%d", a[d]); while(--d >= 0) printf("%04d", a[d]); return 0; }
47 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:46:54.54 ] >>36 #include<stdio.h> int main(void) { int a[20]; int i; for(i = 0; i < 20; i++) { if(i<10) { a[i] = 2; printf("%d ",a[i]); if(i == 9) { printf("\n"); } } else { a[i] = 3; printf("%d ",a[i]); }//3を出力した後に改行しろとは書いてないと言い訳してみる } return 0; }
48 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 00:49:04.53 ] >>44 i,a[20];main(){for(;i<20;i++)printf(i==9?"%d\n":"%d ",a[i]=i/10+2);}
49 名前: ◆QZaw55cn4c mailto:sage [2011/11/07(月) 00:51:17.27 ] >>33 hibari.2ch.net/test/read.cgi/tech/1313183984/22 さすがに、10万ビットにもなると遅くて遅くて‥‥‥。 乗算ルーチンにて、乗数を上位ビットから調べているのですが、これを下位ビットから調べるようにすれば小さい数字の場合はかなりましになるかもしれません。
50 名前:44 mailto:sage [2011/11/07(月) 01:09:25.87 ] >>48 素晴らしい
51 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 01:15:25.79 ] >>48 for文の中に入れたら少し縮んだ、連騰ゴメン、これで最後です #include <stdio.h> i,a[20];main(){for(;i<20;printf(i++==9?"%d\n":"%d ",a[i]=i/10+2));}
52 名前:26 mailto:sage [2011/11/07(月) 01:34:53.61 ] >>27 作成ありがとうございます 非常に助かります 宜しければもう1点お付き合いください >>29 で指摘して頂いている点なのです 今出ている処理で0を返せばいいのは分かるのですが エラー時に-1を返す時にはどのようになるのでしょうか お願いします
53 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 02:08:39.97 ] >>49 こんなのろいコードを提出したらさすがに怒られるだろ。 Nの値に応じてどれだけの値を計算できるか、どのぐらいの計算量が発生するか 考えた方がいい。
54 名前: ◆QZaw55cn4c mailto:sage [2011/11/07(月) 02:33:54.72 ] >>53 確かに >>49 は失敗作。 題意を満たすためには、15万ビット×32ビット:Ο(N)の演算でよかったところを、あらかじめ作成していた 15万 x 15万ビット:Ο(N^2) の演算器をひっつけただけの構造ですから‥‥‥。
55 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 03:19:13.43 ] >>54 なるほど、素晴らしいですね。今後もそちらのスレだけで頑張ってください。こちらには来ないでください。迷惑です。
56 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 03:31:21.55 ] >43の言ってる事が判らん 誰か解説よろ
57 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 03:40:28.06 ] >>56 > 先頭から10個分には2を, > 後半の10個分には3を格納せよ。正しく格納されたことを出力する必要が
58 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 07:00:47.55 ] >>56 20個の配列を宣言してから値を入れないとダメだと思うんだが・・・ 宣言と同時に初期化してたら、先生から一本取ることは出来るかもだが、まず怒られる罠w まあ、問題文も悪いんだが
59 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 15:05:22.39 ] [1] 授業単元:計算機アルゴリズムT [2] 問題文(含コード&リンク): 設問1-1 プログラム例7.3.1をswitch文を使わずにif文、else if文を使うプログラムに変更しなさい。 変数xの値をキーボードから入力するように機能変更しなさい。 プログラム例7.3.1 ttp://www.dotup.org/uploda/www.dotup.org2233167.txt.html [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン:visual studio 2008 [3.3] 言語:C [4] 期限:[2011年11月11日8:00まで] [5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文 繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数 条件分岐if文、要素番号idx使用の書換、データの入れ替え 条件分岐・論理演算子を用いたif文の条件、if文、else if文 switch文は習いました。 宜しくお願いします。
60 名前:デフォルトの名無しさん [2011/11/07(月) 16:21:50.02 ] [1] 以下の2*2行列x, yの積 x*yを計算し、その結果を表示するプログラムを作成せよ。 x= ( 1 2 ) 4 5 y= ( 1 5 ) 5 3 [2] 2つの3成分ベクトル a=(3.0, 2.0, 1.0) , b=(-2.0, 1.0, 1.0)を double型配列に格納し、aとbの内積を計算するプログラムを作成せよ。 すみませんが、わからなかったのでお願いします。
61 名前:60 [2011/11/07(月) 16:28:25.00 ] すみません。 >>60 の[1]ですが、2行2列の行列でx11=1, x12=2, x21=4, x22=5で、 y11=1, y12=5, y21=5, y22=3です。 ややこしくなってしまいすみません。よろしくお願いします。
62 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 16:42:37.24 ] >>60 >>1
63 名前:デフォルトの名無しさん [2011/11/07(月) 16:51:41.30 ] >>61 すみません。不注意でした。
64 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 17:32:34.19 ] >>60 ,61 [1] ideone.com/52RZc [2] ideone.com/voYBg
65 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 17:58:48.63 ] >>59 #include <stdio.h> int main(void) { int x, z; scanf("%d",&x); z= x % 2; if(z == 0) printf("x= %d は偶数です.\n",x); else if(z == 1) printf("x= %dは奇数です.\n",x); else printf("xは負の数である可能性があります.\n"); return 0; }
66 名前:デフォルトの名無しさん [2011/11/07(月) 18:25:59.24 ] >>64 ありがとうございました。
67 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 18:49:56.20 ] >>33 10000^10000 一秒以内ででるのがでけた codepad.org/kWVLtEjL
68 名前:デフォルトの名無しさん [2011/11/07(月) 19:12:47.49 ] [1] 授業単元:プログラミング入門 [2] 問題文:整数型の要素を最大10個格納できる配列を宣言する。 添え字が偶数の要素として2、添え字が奇数の要素として3を格納し、 2 3 2 3 2 3 2 3 2 3の形式で出力せよ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 11月8日 添え字の判定がよくわかりません。 どなたかよろしくお願いします。
69 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:27:06.60 ] >>68 #include <stdio.h> int main() { int ary[10]={0}; int i,temp=0; for(i = 0; i<(sizeof(ary)/sizeof(int));i++){ temp = i%2; if(temp == 0) ary[i] = 2; else if(temp == 1) ary[i] = 3; } for(i = 0; i<(sizeof(ary)/sizeof(int));i++){ printf("%d ",ary[i]); } putchar('\n'); return 0; }
70 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:30:49.53 ] >>68 #include <stdio.h> int main(void) { int i, j, a[10]; for(i = 0, j = 2; i < 10; i++, j ^= 1) a[i] = j; for(i = 0; i < 10; i++) printf("%d ", a[i]); return 0; }
71 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:36:41.07 ] >>67 >>46 の方が速くないか?
72 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:51:44.14 ] >>71 確かに >>46 の方が早い
73 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 20:20:09.42 ] >>57-58 初期化したらあかんのかw まあ…ありがとう。
74 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 20:32:58.24 ] >>73 問題文をよく読めばわかるが、この問題で生徒に学ばせたいことは、ループによる配列の初期化と配列の内容を表示する際、簡単な制御をさせるのが目的。 問題文の要素数が少なすぎるんだよ。 せめて100個とかにすればループで初期化せざるを得ないのに、中途半端な数だから。
75 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 20:55:38.59 ] >>71 実測してみた 出力先をすべてファイルに変更しループの回数は void sub1() { mpz_t a; mpz_init_set_ui(a, 10000); mpz_pow_ui(a, a, 10000); mpz_out_str(fp1, 10, a); } が100ms前後になるぐらいの回数に調整 gmp : 103 ms >>64 : 5856 ms >>67 : 19211 ms
76 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 20:57:13.03 ] × >>64 : 5856 ms ○ >>46 : 5856 ms
77 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 21:09:40.53 ] >>75 コンパイラとコンパイルオプションはどんなん?
78 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 21:13:53.41 ] >>77 -O2付け忘れてた cygwin gcc-4.5.3 gcc -O2 main.c -lgmp -lwinmm gmp 101 ms >>46 1976 ms >>67 7105 ms vc9 オプションはデフォ mpir 189 ms >>46 1978 ms >>67 7432 ms
79 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 21:19:23.78 ] >>78 乙 gmp はえー
80 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 21:42:51.08 ] >>69-70 作成ありがとうございました 助かりました
81 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 22:57:00.18 ] >>68 i,a[10];main(){for(;i<10;printf("%d ",a[i++]=2|1&i));}
82 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 23:02:02.44 ] >>79 そりゃー10000乗を素直に10000回のかけ算でやるコードとでは差はでかいかと。 とりあえずバイナリー法というやつを使えばいいんじゃないでしょうか。
83 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 23:18:06.06 ] 10000=(((((((((((2*2)*2+1)*2+1)*2+1)*2)*2)*2)*2+1)*2)*2)*2)*2 だね
84 名前:デフォルトの名無しさん [2011/11/07(月) 23:30:14.75 ] [1] 授業単元:C言語 [2] 問題文:10個の要素が格納できる配列を2つ宣言し、それぞれ任意の整数で初期化せよ。 その後、この2つの配列の中身を入れ替えよ。 [3] 環境 [3.1] OS: Win [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限: 11月8日12時 代入、参照、if(else)、for、配列は習いました。 x[10] = {1, 2, (ry};で初期化した後どうやって入れ替えたらいいか分かりません。 よろしくお願いします。
85 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 23:37:06.05 ] >>84 ttp://ideone.com/QUVfg
86 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 23:41:50.83 ] >>84 #include <string.h> void SwapAry10(int *Sorc1,int *Sorc2) { int temp[10]={0}; memcpy(&temp,Sorc1,sizeof(int)*10); memcpy(Sorc1,Sorc2,sizeof(int)*10); memcpy(Sorc2,&temp,sizeof(int)*10); }
87 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 23:56:00.76 ] >>81 iの初期化忘れとる。
88 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 00:21:01.16 ] >>87 iはグローバル変数だから0で初期化されてる
89 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 02:42:42.31 ] >88 そりゃコンパイラ依存だな
90 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 02:44:51.27 ] >>89 いつの時代の人間だよw
91 名前: ◆QZaw55cn4c mailto:sage [2011/11/08(火) 02:49:40.18 ] >>89 K&R1の昔からstatic/extern な変数は 0 で初期化と決まっています。
92 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 05:04:44.32 ] [1] 授業単元:C言語 [2] 問題文:ttp://www1.axfc.net/uploader/Sc/so/290413 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2011年11月08日18:00まで [5] その他の制限:あまり高度な記述をしないでいただけると有難いです その他の制限は問題文中にあるものだけです よろしくお願いします
93 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 07:45:55.98 ] >>92 ideone.com/UbwDh
94 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 08:36:55.80 ] >>93 ありがとうございます、助かりました
95 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 11:50:56.32 ] [1] 授業単元:C言語 [2] 問題文:入力した文字列aから交互に一文字ずつ抜き出し、二つの文字列b,cとして出力するプログラムを書け 例 文字列a:あいうえおかきくけこ 文字列b:あうおきけ 文字列c:いえかくこ [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2011年11月9日9:00まで [5] その他の制限:特になし
96 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 12:04:49.28 ] 全角と半角が混じると難しいな
97 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 12:34:16.08 ] >>95 MinGW 4.5.2で確認した ttp://ideone.com/2rukX けど課題的にcharでいい気がする・・・
98 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 13:19:12.92 ] >>95 全角、半角混じり対応 ideone.com/iB837
99 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 14:40:20.06 ] >>85-86 84です、助かりました。ありがとうございました!
100 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 15:21:19.44 ] [1] 授業単元:C言語 [2] 問題文 整数n(>=1)を入力し,nの約数の個数を返す関数int divisor(int)を用いてnが素数かどう かを判定し,その結果を画面表示するプログラムを作成せよ. [3] 環境 [3.1] OS:Linux 5.2 [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2011年11月14日13:00まで [5] その他の制限:特にありません。宜しくお願いします。
101 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 15:34:16.19 ] #include <stdio.h> int divisor(int n) { int i, c; for(i = 1, c = 0; i <= n; i++) if(n % i == 0) c++; return c; } int main(void) { int n; scanf("%d", &n); if(divisor(n) == 2) printf("素数です\n"); else printf("素数ではありません\n"); return 0; }
102 名前:デフォルトの名無しさん [2011/11/08(火) 15:58:53.12 ] [1] プログラミング実習応用 [2] √a(ただしaは正の実数)の近似値を求めて表示するプログラムを作成せよ。 X(n)=1/2{X(n-1)+a/X(n-1)},X(0)=1.0 ()の文字は右下の文字。 ・nは整数型、X(n)は実数型(float or double) ・aの値はキーボードから入力 ・再起呼び出しによる方法、逐次的に計算する方法のいずれでもよい [3] 環境 [3.1] W7 [3.2] Visual C++ 2010 Express [3.3] どちらでも可 [4] 2011年11月8日22:00 [5] 1.main() 以外の関数を少なくとも一つ作成して使用する 2.#include <math.h> を入れない 3.sqrt(), pow() 関数を使用しない 4.繰り返し回数 n の値は、次のいずれかの方法で決定する A. n=20 B. xnは十分真の値に近く、かつなるべく小さいnの値 Bの場合はその根拠(実験結果や考察内容など)も示すこと。内容によってはボーナス加点する。例えば下記のような方法があるが、これに限定されることなく、他の方法でもよい 例: いくつかのaの値に対して、nを増加させながらxnの値を表示する実験を行う よろしくお願いします。
103 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 16:18:09.76 ] >>102 #include <stdio.h> double mysqrt(double a, int n) { double xn, xn_1; int i; xn=1.0; for(i=0;i<n;i++) { xn_1=xn; xn=1.0/2.0*(xn_1+a/xn_1); } return xn; } int main(void) { double a; printf("Input a : "); scanf("%lf", &a); printf("%f\n", mysqrt(a, 20)); return 0; }
104 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:03:20.99 ] >>102 再帰判 #include <stdio.h> double X(double a, int n) { if (n < 1) return 1.0; return 0.5 * (X(a, n - 1) + a / X(a, n - 1)); } int main(void) { int i; double a; printf("input a: "); scanf("%lf", &a); for (i = 1; i <= 20; i++) { printf("X(%d):%f\n", i, X(a, i)); } return 0;
105 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:06:32.94 ] [1] 授業単元: アルゴリズム [2] 問題文(含コード&リンク): 問題1 プリントの線形合同法により乱数を作って,200 個の値を出力しなさい。 問題2 プリントのラグ付きフィボナッチ法により乱数を作って,200 個の値を出力しなさ い。ただし、x[0]~x[31] は、線形合同法により初期化する [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:11/9 6:00 よろしくお願いします
106 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:09:27.36 ] >>105 プリントってなんぞ?
107 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:24:55.84 ] >>102 ideone.com/3zekC
108 名前:デフォルトの名無しさん [2011/11/08(火) 17:42:51.30 ] >>103-104 >>107 ありがとうございます
109 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 18:25:28.37 ] >>105 プリントの内容か、画像プリーズ。
110 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 19:16:05.41 ] 「プリントの」という言葉がないと見なしてみるとかw
111 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 20:13:28.98 ] X[]の位置づけが判らん。
112 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 20:19:13.11 ] >>105 こんなんでいい? codepad.org/O4RrPX0Q
113 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 20:21:29.84 ] x[]はフィボナッチ法のパラメータと関係しているんだろうな
114 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:06:23.44 ] [1] 授業単元: c言語 [2] 問題文 main関数の中で char cs[] [6] = {"Turbo","NA","DOHC"}; と配列cs が設定されている 文字列を逆順にし大文字の英字を小文字に変換させ表示させるプログラム 例st[0] ==>" obrut のような感じで [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:11:9 19時まで [5] その他の制限: ポインタは無しで よろしくおねがいします
115 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:21:37.29 ] >>114 #include <stdio.h> #include <string.h> #include <ctype.h> int main(void) { char cs[][6] = {"Turbo", "NA", "DOHC"}; const int N = sizeof cs / sizeof cs[0]; int i, j; for (i = 0; i < N; ++i) { printf("cs[%d] ==> \"", i); for (j = strlen(cs[i]) - 1; 0 <= j; --j) { putchar(tolower(cs[i][j])); } printf("\"\n"); } return 0; }
116 名前:114 mailto:sage [2011/11/08(火) 21:29:16.95 ] 書き忘れがありました すみません 関数 void put reverse void put_toupper put_strary を使ったのをお願いします
117 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:41:51.93 ] 小文字に変換させるのに、toupperなの?
118 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:04:01.95 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 配列の中の文字列にいくつ単語が出てきたかをカウントする 例 a[]="バナナ リンゴ スイカ バナナ" バナナ 2回 リンゴ 1回 スイカ 1回 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:指定なし [3.3] 言語:C言語 [4] 期限: 11/9 [5] その他の制限: 特に無いです よろしくお願いします
119 名前:デフォルトの名無しさん [2011/11/08(火) 22:20:04.78 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 奇数で初期化した配列を動的に確保する関数 書式 int *oddalloc(size_t n); 動作 長さnのintの配列をmalloc()で確保し、最初のn個の正の奇数で初期化する。 返り値 確保した配列の先頭を指すポインタを返す。 確保できなかった場合はNULLを返す。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限: 関数を使ってください できれば、詳しい解説もほしいです(><)
120 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:39:19.50 ] >>119 int *oddalloc(size_t n) { int *p; size_t i; p = (int *) malloc(sizeof(int) * n); if (p) for (i = 0; i < n; i++) p[i] = 2 * i + 1; return p; }
121 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:49:00.35 ] >>118 ideone.com/KYIRL
122 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 23:05:06.04 ] >>118 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tag_wordlist_t{ char *word; int count; struct tag_wordlist_t *next; }wordlist_t; int main(void){ char a[]="バナナ リンゴ スイカ バナナ", *p, buf[100+1]; int n; wordlist_t *first=NULL, *last=NULL, *list_new, *it; for(p=a;sscanf(p, "%100s%n", buf, &n)>=1;p+=n){ for(it=first;it;it=it->next){ if(strcmp(it->word, buf)==0){ it->count++; break; } } if(it==NULL){ list_new=malloc(sizeof(wordlist_t)); list_new->word=strdup(buf); list_new->count=1; list_new->next=NULL; if(last) last=last->next=list_new; else first=last=list_new; } } for(it=first;it;it=it->next) printf("%s %d\n", it->word, it->count); return 0; }
123 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 23:09:44.76 ] 俺>>120 じゃないけど詳しい解説を追加 /* size_tは符号無しの整数型、Cなら元を辿るとただのunsigned intだけど 長ったらしいし符号無しの標準として使えるように定義されてる、 正の整数を使うのが分かってる場合はsize_tを使う場合が多い、 また、コードへの意味合いとしても役立つ、 個数という意味で名前に n を使ってるからintでいいじゃん、最大値超えるデータも扱わないし、 なんて声もたまにあるが、型に意味を持たせるのも非常に大事 */ int *oddalloc(size_t n) { int *p; size_t i; p = (int *) malloc(sizeof(int) * n); if (p) for (i = 0; i < n; i++) p[i] = 2 * i + 1; /* malloc()関数は成功すると確保した配列の先頭アドレスを返すが、失敗するとNULLを返す、 配列への代入は失敗時は通らないので問題ない、 またコードの美しさの点でも分岐が少ない方が良い事からこのような書き方になってる、と思う。 */ return p; }
124 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 23:11:57.79 ] >>123 もっとよく調べるんだ
125 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 23:54:51.28 ] >>65 有難う御座います
126 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 07:36:40.36 ] どなたかお願いします。 [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク): 与えられた任意の長さのアルファベットの文字列(ただし 重複する文字は含まないとする)に対して、文字を任意の順番に入れ替えてできる 文字列のパターンをすべて出力する関数permute()を作成せよ。 例: permute("ABC"); ABC ACB BAC BCA CAB CBA [3] 環境 [3.1] OS:Mac OS X [3.2] コンパイラ名とバージョン:gcc 4.2.1 [3.3] 言語:C [4] 期限:不明 [5] その他の制限:
127 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 10:18:43.25 ] >>126 ttp://codepad.org/281U66WI もう少しなんとかなりそうな気はするんだが....
128 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 15:38:27.96 ] >>126 力技 ideone.com/2UIi2
129 名前:114 mailto:sage [2011/11/09(水) 17:27:47.66 ] >>117 指摘ありがとうございます tolowerでしたのでこちらでおねがいします 期限は今日中までにしますのでよろしくです
130 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 18:00:00.64 ] >>114 >>116 >>129 ideone.com/wmJKd
131 名前:114 mailto:sage [2011/11/09(水) 18:30:24.45 ] >>130 ありがとうございます
132 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 18:50:26.83 ] [1] 授業単元:プログラミング演習 2 [2] 問題文(含コード&リンク) main関数の中で char cs[] [6] = {"Turbo", "NA", "DOHC"}; と配列csが初期設定されています。このとき $ gcc -o report3 report3.c $ ./report3 st[0] ==> "obrut" st[1] ==>"an" st[2] ==>"chod" と画面に表示するCプログラムreport3.cを書いてください。 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:11月9日(出来れば早めにお願いします) よろしくお願いします。
133 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 19:02:37.00 ] >>132 >>114 ,130
134 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:20:48.60 ] [2] 問題文(含コード&リンク): 1:キーボードから自然数 m と n を読み込む. 2:0 以上 1 未満の一様乱数 n 個の平均値を計算して、実行例ように表示. 3:この 2:の操作を m 回繰り返す. 実行例 > ./ex06-3 繰り返し回数を入力: 10 乱数の個数を入力: 100 回 平均 1 0.509034 2 0.488603 3 0.485044 4 0.473806 5 0.503660 6 0.519470 7 0.477955 8 0.536236 9 0.516652 10 0.467380 > この動作をするプログラムを作成せよ。乱数は疑似乱数発生関数 drand48 を用いる.この関数は呼び出すたびにdrand48() を 3 回呼び出すと,drand48() の生成した三つの乱数がそれぞれ変数 x, y, z に格納される. double x, y, z; x = drand48(); y = drand48(); z = drand48(); この関数を用いるプログラムは,冒頭に #include <stdlib.h> と記述 [3] 環境 [3.1] OS: Mac [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限: 2011年11月14日 [5] その他の制限:for文while文の範囲です。
135 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:26:24.28 ] [2] 問題文(含コード&リンク): 漸化式を考える.x_n+1 = (x_n + a / x_n) / 2 初項 x_0 = a double 型変数 xn と xn1 を用意する.キーボードから正の実数 a と e を読み込む.初項 a の値を変数 xn に代入し,実行例のように 0 回目の繰り返しの途中経過を指数形式で小数点以下 16 桁まで表示する.漸化式に従って xn の次項を求め, その値を変数 xn1 に代入する.x_n1 と x_n の差を調べ,漸化式が収束したかどうかを判定する.x_n1 と x_n の差の絶対値が e 以上であれば,漸化式はまだ収束していないと考える. この場合には,x_n1 の値を x_n に代入してから以下の実行例のように繰り返しの途中経過を表示する.漸化式に従って x_n の次項を求め,その値を変数 x_n1 に代入し,5. を繰り返す. x_n1 と x_n の差の絶対値が e よりも小さければ,漸化式は収束したものとみなす.この場合には xn1 と sqrt(a) を表示する. 実行例 > gcc -o ex06-4 ex06-4.c -lm > ./ex06-4 正の実数を入力: 1.234567890 解の精度を入力: 1.0e-15 回 近似値 0 1.2345678899999999e+00 1 1.1172839450000001e+00 2 1.1111281580953725e+00 3 1.1111111061864010e+00 4 1.1111111060555556e+00 5 1.1111111060555556e+00 sqrt 1.1111111060555554e+00 > この動作をするプログラムを作成せよ [3] 環境 [3.1] OS: Mac [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2011年11月14日 [5] その他の制限:for文while文の範囲です。
136 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:29:12.30 ] [1] 授業単元:基礎プロ [2] 問題文(含コード&リンク): 整数型の変数 i の値を 1 から k まで順に変化させ,以下を繰り返す. n に i の値を代入する. n が偶数のときは n を 2 で割った値を n に代入する. n が奇数のときは n を 3 倍して 1 を加えた値を n に代入する. n の値が 1 になるまで b. の操作を繰り返す. i ごとに繰り返した回数を以下の実行例のように出力する. 実行例 >./extra06-2 自然数を入力: 4 1: 0 2: 1 3: 7 4: 2 > この動作をするプログラムを作成せよ [3] 環境 [3.1] OS:Mac [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2011年11月14日 [5] その他の制限:for文while文の範囲です。
137 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:30:18.39 ] [1] 授業単元:基礎プロ [2] 問題文(含コード&リンク): キーボードから自然数 n を読み込む. 読み込んだ自然数 n の階乗を計算する. 計算結果を以下の実行例のように出力する. 実行例 >./extra06-1 自然数を入力: 5 5! = 1 x 2 x 3 x 4 x 5 = 120 >./extra06-1 自然数を入力: 6 6! = 1 x 2 x 3 x 4 x 5 x 6 = 720 > この動作をするプログラムを作成せよ [3] 環境 [3.1] OS:Mac [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2011年11月14日 [5] その他の制限:for文while文の範囲です。
138 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:52:43.14 ] >>136 #include <stdio.h> int main(void) { int i, j, k, n; printf("自然数を入力:"); scanf("%d", &k); for(i = 1; i <= k; i++) { for(j = 0, n = i; n != 1; j++) n = n & 1 ? n * 3 + 1 : n >> 1; printf("%d: %d\n", i, j); } return 0; }
139 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 01:29:20.31 ] 【質問テンプレ】 [1] 授業単元: 授業ではないのですが学校で使用するための勉強中 [2] 問題文(含コード&リンク): ////A.h//// class A{ private: int a; public:void set();} void A::set(){ A A1; a = 1; } ////B.h////// #include "A.h" class B{ public:void get();} void::get(){ ここで以前宣言したクラスAのA1のa=1を呼び出したいです。} [3] 環境 [3.1] OS: windows7 [3.2] コンパイラ名とバージョン: visual c++ 2010?(無料のです) [3.3] 言語: c++ [4] 期限: 本日中 [5] その他の制限: 特になし(なるべく簡単でお願いします)
140 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 01:33:55.33 ] [1] 授業単元: Cプロ [2] 問題文(含コード&リンク): 3行3列の行列aを入力後、余因子行列で行列値|a|を求める [3] 環境 [3.1] OS: (WindowsXP) [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:AM6時までに。 [5] 余因子行列でお願いします
141 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 01:44:13.72 ] >>139 早乙女博士にゲッターを開発してもらう
142 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 02:12:44.48 ] >>141 class B内で A A1; A1.get(); ですか?
143 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 02:28:31.10 ] >>140 #include <stdio.h> int main(void){ int m[3][3], i, det; for (i = 0; i < 3; i++) { printf("a%d1 a%d2 a%d3 = ", i + 1, i + 1, i + 1); scanf("%d %d %d", &m[i][0], &m[i][1], &m[i][2]); det = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]) - m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0]) + m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]); printf("%d", det); } return 0; }
144 名前:140 mailto:sage [2011/11/10(木) 03:27:30.01 ] >>143 ありがとうございます
145 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 03:56:29.23 ] >>137 #include<stdio.h> int main(void) { int n,i; double ret=1; printf("自然数を入力: "); scanf("%i",&n); printf("%d! = 1",n); for (i=2 ; i<=n ; i++) { ret *= i; printf(" x %d",i); } printf(" = %-14.0lf¥n",ret); return 0; }
146 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 09:58:01.38 ] >>139 どういう誤解をしているのか理解できない A1.a に値はセットされていないし、A1 自体 A.set() のスコープ内にしか存在しない 何を目指しているのか判らないのでどうすれば良いかも判らない
147 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 14:19:07.55 ] 1] 授業単元: Cプロ [2] 問題文(含コード&リンク):文字列st の中に含まれる文字ch の個数(含まれて いなければ0 とする)を返す関数 int str_chnum(const char st[], int ch) を作成せよ. 以下の実行例のように,関数の動作を確認 できるmain 関数も作成して完成させよ 【実行例】文字列を入力してください:Koukka 検索する文字を入力してください:k その文字は2 個含まれています。 (注意)】scanf で文字列を入力させた後にgetchar 関 数で文字を入力させたい場合,getchar で文字を入力 させる前に scanf("%*c"); などとして,バッファに残った改行コードを読み捨て ておく必要がある. [3] 環境 [3.1] OS: (WindowsXP) [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:AM7時までに。 [5] ポインタはなしでお願いします
148 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 14:42:59.75 ] >>147 ideone.com/79UPu
149 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 14:44:24.11 ] >>147 前スレくらいにやったな #include <stdio.h> #include <string.h> int str_chnum(const char *st,int ch){ int index=0, count=0;char *p = 0; do{p = strchr(&st[index],ch);}while (p&&(count++,index=p-st+1));return count;} int main(void){char buf1[100];int buf2; printf("文字列を入力してください:");fgets(buf1,100,stdin);putchar('\n'); printf("検索する文字を入力してください");buf2 = getc(stdin);putchar('\n'); printf("その文字は%d個含まれています。\n",str_chnum(buf1,buf2)); }
150 名前:140 mailto:sage [2011/11/10(木) 15:05:06.74 ] >>140 の余因子行列の計算部分を、for文で可能でしょうか?
151 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 15:20:09.53 ] >>150 det = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]) - m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0]) + m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]); ↓ for(det = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]) - m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0]) + m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);0;);
152 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 15:31:36.45 ] >>140 ,150 #include <stdio.h> int main(void) { int m[3][3] = {}, i, det = 0; for (i = 0; i < 3; i++) { printf("a%d1 a%d2 a%d3 = ", i + 1, i + 1, i + 1); scanf("%d %d %d", &m[i][0], &m[i][1], &m[i][2]); } for (i = 0; i < 3; i++) det += m[0][i] * (m[1][(i + 1) % 3] * m[2][(i + 2) % 3] - m[1][(i + 2) % 3] * m[2][(i + 1) % 3]); printf("%d¥n", det); return 0; }
153 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 15:38:47.45 ] >>140 ,150 こっちのほうが見やすいか。 #include <stdio.h> int main(void){ int m[3][3] = {}, i, det = 0; for (i = 0; i < 3; i++) { printf("a%d1 a%d2 a%d3 = ", i + 1, i + 1, i + 1); scanf("%d %d %d", &m[i][0], &m[i][1], &m[i][2]); } for (i = 0; i < 3; i++) { det += m[0][i] * (m[1][(i + 1) % 3] * m[2][(i + 2) % 3]); det -= m[0][i] * (m[1][(i + 2) % 3] * m[2][(i + 1) % 3]); } printf("%d¥n", det); return 0; }
154 名前:デフォルトの名無しさん [2011/11/10(木) 15:51:44.21 ] [1] int型整数 x に対して、その3乗の値 x3 を返す関数 int cube(int x) を作成せよ。 そしてcubeを用いて、1から10までの整数の3乗値を出力するプログラムを作成せよ。 [2] 一つの行に、n個の “ “(空白)に続いてm個の “*”を順番に出力する関数 void putzs(int n, int m)を作成せよ。 更にこれを用いて no段のピラミッドを描くプログラムを作成せよ。 no=3の場合 * *** ***** よろしくお願いします。
155 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 16:18:09.06 ] >>154 ideone.com/NPbCp
156 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 16:26:10.39 ] >>154 [1] #include <iostream> int cube(int x){return x*x*x;} main(){for(int x=1;x<=10;x++){std::cout << cube(x) <<std::endl;}} [2] #include <string> #include <iostream> void putzs(int n,int m){n&&std::string s;s.append(n,' ');m&&s.append(m,'*'); std::cout << s << endl;} main(){int no=3;for(int m=1;m<=no*2-1;m+=2){putzs(0,m);}}
157 名前: ◆SCJwtK.IhE [2011/11/10(木) 19:31:50.61 ] [1] 授業単元: 文字列 [2] 問題文(含コード&リンク): char str[] = "Hello!\n"; と宣言している状態で、 printf(&str[i]); (iは0〜8)のようにprintf関数を使用した際の&strは何を意味しているか [3] 環境 [3.1] OS:unix [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限:11/10 22:00までに [5] その他の制限:出来るだけ具体的に
158 名前: ◆SCJwtK.IhE [2011/11/10(木) 19:34:41.53 ] [1] 授業単元:文字列 [2] 問題文(含コード&リンク):C言語プログラムにおける「文字列」の 実態は何か答えよ。 [4] 期限: 11/10 22:00 [5] その他の制限:具体的に
159 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 19:40:33.13 ] >>158 文字列
160 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 19:47:36.20 ] >>157 &str[8]は悪魔を召喚するコード
161 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 19:48:24.88 ] >>158 文字の配列 ってか、入門書に載ってるだろ
162 名前: ◆SCJwtK.IhE [2011/11/10(木) 19:48:30.77 ] [1] 授業単元:文字列 [2] 問題文(含コード&リンク): char str[] = "Hello!\n"; と宣言している状態で、 printf("Hello!\n"); printf("%s",str); printf(str); とprintf関数を使用した際の結果を、類推されるprintf関数の処理の流れに基づいて説明せよ。 (全て Hello! と出力された) [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: c [4] 期限: 今日中 [5] その他の制限:具体的に
163 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 19:51:40.13 ] >>162 マルチすると嫌われるぞ
164 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 20:55:05.20 ] >>151-153 ありがとうございました。助かりました。
165 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 21:58:57.86 ] >>161 別に配列である必要もないだろ
166 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 22:10:13.85 ] >>165 教師の求めてる答えとしては、これが妥当だと思うが… 代わりに答えてくれろ
167 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 22:29:04.37 ] >>166 文字が連続したメモリ領域
168 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 22:39:09.86 ] 1文字でも文字列だし、null 終端のことも。
169 名前:126 mailto:sage [2011/11/10(木) 22:50:15.11 ] >>127 >>128 さん、ありがとうございます。しかしこんなのすぐに思いつけるなんて すごいです。過去の経験からコードのパターンのいろんな引き出しをお持ちなのか、 あるいはいきなりできてしまうものなのか... で、一応自分に出された課題なのでw アルゴリズムを理解する努力をしてみましたw >>127 さんのは、順列組み合わせの列挙を再帰で実現する感じですかね? 既に選択した 文字を記録する配列を保持しておくと... なるほど。 >>128 さんのは、進数と桁数がある値(この場合はどちらも入力した文字列の長さ)の 数字を網羅するループで、全ての桁の数が異なる場合出力する、みたいな感じですかね? ただ、各桁の3乗の和? みたいのを比較してなぜうまくいくのかよくわからないのですが... もしかしてこれって数学的な定理かですか? 例えば x, y, zはそれぞれ 0,1,2のどれかで互いに異なる <=> x^3+y^3+z^3 = 0^3+1^3+2^3 みたいな?
170 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 22:55:06.72 ] >>162 「K&R第二版p.189可変引数リスト」の内容そのまんま答えればOK。 第二引数移行は可変引数として一括したバイト列として取得され、 第一引数の文字列内に現れる変換仕様に従って 1変数とみなされるバイトサイズとその型ごとに切り刻まれる。 取り出された値は文字に変換され、変換仕様と置換された後、 標準ストリームに出力される。 printf("Hello!\n");は第一引数のみなので 文字列がそのまま標準ストリームに出力される。 printf("%s",str);は第一引数の変換仕様%sにより 第二引数(以降)の最初のデータは終端文字を持つ文字の配列とみなされ、 文字列に変換され%sと置換された後、標準ストリームとやらないか。 printf(str);は str が第一引数であり、変換使用をふくまないため、 そのまま文字列として標準ストリームに出力されまみた。
171 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 23:04:43.34 ] そんな中途半端なことせずにJISなりISOなりの規格を参照しろ
172 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 23:09:42.17 ] >>169 2乗和だと、例えば05と34とが互いに区別不可。 3乗和なら、少なくとも9桁内で目的の数値間で区別出来る。
173 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 23:13:52.22 ] >>171 JISのサイト、最新のAdobe Readerだと見られないんだもん。 あとは英語で書くしかない。俺は英語ぺらぺーラだけど三流大学の教授なんて 日本語もあやしかろ? つかどうせ教授じゃなくて臨時講師とか。ワロス
174 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 00:09:48.65 ] [1] 授業単元:文字列 [2] 問題文(含コード&リンク): 入力した時間と分を長針と短針で示す アナログ時計を作れ。 [3] 環境 [3.1] OS: windows7 [3.2] コンパイラ名とバージョン: bcc5.11 [3.3] 言語: c [4] 期限: 11月14日 [5] その他の制限:windouwsAPIなどは使わずに、 普通のC言語でお願いします。
175 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 01:24:42.17 ] >>174 ideone.com/lwiT8
176 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 01:33:44.98 ] >174 まともにやったら、すげー手間かかると思うのだが、なんか間違ってないか?
177 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 01:39:18.62 ] >>174 丸時計を50×50位のAAで出力?
178 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 03:30:35.12 ] >>172 そうですかー。興味深いですね。 もしかして楕円曲線上の整数解がどうたらとかと関係あるのかなあ。
179 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 11:15:00.50 ] >>168 電文なんかの固定長データに含まれる文字列は NULL 終端である必要も無い NullTerminated strings は文字列の一種に過ぎない
180 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 11:21:41.78 ] >>179 設問は、 >C言語プログラムにおける「文字列」の実態は何か答えよ。
181 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 11:33:28.68 ] [1] 授業単元: [2] 問題文(含コード&リンク): ファジィ推論のプログラム [3] 環境 [3.1] OS: (Windows7 32bit) [3.2] コンパイラ名とバージョン: Ms Visual Web Developer 2010) [3.3] 言語: (C++) [4] 期限: 無期限) [5] その他の制限: www.sist.ac.jp/~suganuma/cpp/3-bu/18-sho/18-sho.htm#e-18-5 こちらのプログラムをビルドしたら以下のエラーが出ました。 1>fz.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall Fuzzy::~Fuzzy(void)" (??1Fuzzy@@QAE@XZ) が関数 _main で参照されました。 1>fz.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall Fuzzy::Fuzzy(char *)" (??0Fuzzy@@QAE@PAD@Z) が関数 _main で参照されました。 1>C:\Users\2ch\Documents\Visual Studio 2010\Projects\fuzzy\Debug\fuzzy.exe : fatal error LNK1120: 外部参照 2 が未解決です。 main関数でエラーが出たのは分かるんですが・・・ソースは次レスにて 宜しくお願いします
182 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 11:37:19.47 ] #include <stdio.h> #include <stdlib.h> #include "fuzzy.h" int main(int argc, char *argv[]) { double *x, **xx, y; int i1, i2, n_d, n_val; FILE *in, *out; if (argc == 4) {Fuzzy fz(argv[1]); in = fopen(argv[2], "r"); fscanf(in, "%*s %d %*s %d", &n_val, &n_d); x = new double [n_val]; xx = new double * [n_val]; for (i1 = 0; i1 < n_val; i1++) {fscanf(in, "%*s"); xx[i1] = new double [n_d]; for (i2 = 0; i2 < n_d; i2++) fscanf(in, "%lf", &xx[i1][i2]);} fclose(in); out = fopen(argv[3], "w"); for (i1 = 0; i1 < n_d; i1++) {for (i2 = 0; i2 < n_val; i2++) { x[i2] = xx[i2][i1]; fprintf(out, "%f ", x[i2]);} y = fz.Inf(x); // 推論 fprintf(out, "%f\n", y);} fclose(out);} else {printf("***error 入力データファイル名を指定して下さい\n"); exit(1);} return 0;}
183 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 11:49:52.36 ] すみません、それとヘッダーファイルです。 class Fuzzy { double ***left; // [i][j][0] : 中心 // [1] : 幅 double **right; // [i][0] : 中心 // [1] : 幅 double *omega; // ωの値 int bun; // 積分の分割数 int method; // 推論方法 // =0 : and,or // =1 : *,or // =2 : *,+ int n_rule; // 規則の数 int n_val; // 変数の数 int **rule; // [i][j] =0 : i番目の規則はj番目の変数を使用しない // =1 : i番目の規則はj番目の変数を使用する public: Fuzzy(char *); // コンストラクタ ~Fuzzy(); // デストラクタ double Cross(double, double, double, double); double Height(double, double *); double Inf(double *); // 推論の実行 double Result(double *); };
184 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 11:58:24.84 ] >>180 電文を扱うプログラム等では NULL 止めではない文字領域も文字列として扱ってるって話なんだけど?
185 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:03:54.18 ] >>184 標準関数が、電文の事を考慮して作ってあるなら、それでいいよ
186 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:05:35.47 ] これを訳せばいいのでは? 7.1.1 Definitions of terms 1 A string is a contiguous sequence of characters terminated by and including the first null character. The term multibyte string is sometimes used instead to emphasize special processing given to multibyte characters contained in the string or to avoid confusion with a wide string. A pointer to a string is a pointer to its initial (lowest addressed) character. The length of a string is the number of bytes preceding the null character and the value of a string is the sequence of the values of the contained characters, in order.
187 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:06:41.67 ] >>180 Str255だってC言語プログラムにおける「文字列」だな Null終端だけがCの文字列ってのは思い違いじゃね?
188 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:08:03.88 ] 事故解決しました。 ソースファイルをプロジェクトフォルダ内に移動したところ 無事にビルド出来ました。 スレ汚しみません。
189 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:08:43.38 ] >>185 やっぱり思い違いだな
190 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:09:11.88 ] >>187 約束事を決めれば、どう言う形式でも文字列としては処理できるけど、 文字列を処理する標準関数で、そういうフォーマットを扱っているかどうかでしょ
191 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:12:39.97 ] >>181 コンストラクタとデストラクタをリンクしてないんだろ
192 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:14:12.73 ] >>190 面倒だからcharの配列でいんじゃね?
193 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:21:28.44 ] >>181 VSにソースファイルをD&Dしてビルドしようとしていたのが原因だったみたいです。 ファイルをプロジェクトフォルダに移動したらエラーは解消しました。 レス有難う御座います。
194 名前:181 mailto:sage [2011/11/11(金) 12:24:39.86 ] 申し訳ない・・・>>191 さんでした。有難う御座います
195 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:24:52.22 ] >>193 どうでもいいけど、ここで聞く前に隣の人に聞くとかできなかったん?
196 名前:181 mailto:sage [2011/11/11(金) 12:34:51.56 ] >>195 質問できるような友人がいないんですよ・・・ 察して下さい
197 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:46:35.54 ] >>196 C言語なら俺に聞け(入門編)Part 92 hibari.2ch.net/test/read.cgi/tech/1320933306/
198 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:57:37.51 ] >>190 標準関数になんて束縛されないだろ
199 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:00:08.37 ] >>198 ここは宿題スレ
200 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:11:28.27 ] >>199 そんなこと関係ないぞ
201 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:13:31.92 ] >>199 てか、自分の思い違いを「世間ではそう教えてる」みたいな言い訳でごまかそうという方がおかしいだろ。 ちょっと齧ればNull終端じゃない文字列なんてあちこちのライブラリで使われてるぞ。 Null終端だけがCの文字列なんて教える講師はいないだろ。
202 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:15:16.59 ] スレ違い。他所でやれ。
203 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:18:35.09 ] >>202 >>158 ずっと宿題の話ですよ
204 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:23:38.56 ] 「思い」だけぶちまけられても質問者には迷惑。 結論と根拠を明示すればいいだけの事。
205 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:25:38.75 ] 設問が大雑把過ぎるんだな。 「実態」という言葉の解釈で答えに幅が出る。
206 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:26:08.38 ] >>204 >>180 に言えよ。事の発端だろ。
207 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:33:16.96 ] >>205 >>157 と>>162 もセットで考えたら NULL終端文字列についてで正解だろうな
208 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 14:03:18.24 ] strncpy() は NULL 終端を前提としてないよ 問題が大雑把だし、講師がちゃんと理解してるんだろうかって思う ちゃんと『実態』を理解してたらこんな設問しないだろ
209 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 14:11:44.99 ] 試験問題というのは設問者が求めている答えは何かを探るものであって 気の利いた解答を考えるものではないって、ワンバーグちゃんがいってただろ^^ ここはナル文字終端を持つchar配列って答えとけばいいんだよ そして心のなかで「設問がクソだなぁ、ああこの人に学んでも何もエルモのないんだろうなぁ。セントエルモ」 って思っときゃいーんだよ。
210 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 14:13:19.30 ] 宿題スレは、出題者のレベルに合わせて解答すれば、100点。
211 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 14:16:13.58 ] [1] 授業単元:プログラミング入門 [2] 問題文:秒数を与えると,それが何日何時間何分何秒にあた るかを計算する関数 calctime(long sec, int *dp, int *hp, int *mp, int *sp); を作成せよ.例えば calctime(100000, &d, &h, &m, &s); として呼び出すとd=1, h=3,m=46,s=40 となる (100,000 秒=1 日3 時間46 分40 秒).以下の実行例の ように,関数の動作を確認できるmain 関数も作成しろ 実行例.秒数を入力してください:100000 100000 秒= 1 日3 時間46 分40 秒 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 11月14日 18:00 [5] その他の制限:
212 名前:デフォルトの名無しさん [2011/11/11(金) 14:37:17.47 ] void calctime(long sec, int *dp, int *hp, int *mp, int *sp) { *sp = sec % 60; sec /= 60; *mp = sec % 60; sec /= 60: *hp = sec % 24; *dp = sec / 24; }
213 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:01:18.29 ] >>177 30×30くらいでお願いします>< >>176 間違ってませんよ
214 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:15:58.15 ] >>174 codepad.org/KDteTozL
215 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:36:41.54 ] >>214 ありがとうございます>< ところでどうして長針を@、短針を*にされたのですか?
216 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:39:19.40 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):sinカーブを縦に描画するプログラムを作れ。0度から360度までの範囲を描画し、 縦軸と横軸も描画すること。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gccなのは確かなのですが、具体的には分かりません [3.3] 言語: C [4] 期限:2011年11月16日まで [5]その他の制限:ポインタ使用不可 よろしくお願いします
217 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:41:38.89 ] >>215 その話を聞きたくば1000万円用意しろ 用意が出来たら写真うp!
218 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:44:00.91 ] >>217 嫌です(^q^)
219 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 01:13:37.71 ] >>216 main(){ puts("--*--"); puts(" | *"); puts("--*--"); puts("* | "); puts("--*--"); }
220 名前:デフォルトの名無しさん [2011/11/12(土) 04:47:04.02 ] 1-3+5-7•••っていうのを20回繰り返すというプログラムを教えて下さい。 あれを20回繰り返すと答えは-20になります。それで式もちゃんと表示させなくては いけないんです・・・つまり1-3+5-7•••=-20ってかんじです。出来れば<stdio.h>でfor とifで組んでください。
221 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 05:10:38.29 ] >>220 codepad.org/eaM3XA2N こんな時間だから答えちゃうけど 次からは>>1-2 読んでテンプレ使おうな
222 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 13:06:03.64 ] >>216 #include <stdio.h> #include <math.h> #define PI 3.14159265358979323846 #define DEG_RAD(x) (((x)*PI)/(180)) int main() { double d; const int p = 30; double s; puts(" --------------------------------------------"); for(d = 0; d<370;d+=10){ s = sin(DEG_RAD(d)); s *=10; if(d<=180){ if(d == 0 || d == 180) printf("%*c%*c%c\n",p,' ',(int)s,' ','*'); else printf("%*c%c%*c%c\n",p,' ','|',(int)s,' ','*'); }else if(180 < d ){ s = fabs(s); if(d == 360) printf("%*c%*c%c\n",p-(int)s,' ',(int)s,' ','*'); else printf("%*c%c%*c\n",p-(int)s,' ','*',(int)s,'|'); } } return 0; }
223 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 13:49:23.38 ] >>222 ありがとうございます!
224 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 13:55:24.64 ] >>219 出題の条件は満たしてる 出題の不備を問う意味で提出するのは面白いかもしれない
225 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 16:30:41.41 ] 依頼者が問題の条件を見落としているか、書き忘れていそうな気がする。
226 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 22:48:21.79 ] [1] 授業単元:アルゴリズム [2] 問題文: 重複順列についてです。 A〜Gなどの7つ以上の要素から、6つ取り出して並べるときの、全ての組み合わせを出す。 例)AAAAAA, AAAAAB, AAAAAC,... AAAABA,... (実際に全て出さなくても、出すことができるコードが出来ていれば可) [3] 環境 [3.1] OS:windows7 [3.2] コンパイラ名とバージョン:Visual C++ 2010 Express [3.3] 言語:どちらでも可 [4] 期限:11月16日 [5] その他の制限:特にありません。 問題文として文章があったわけではないので、説明が分かりにくい部分がありましたら申し訳ありません。 よろしくお願いします。
227 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 23:10:26.88 ] >>226 #include <iostream> #include <string> using namespace std; const string X("ABCDEFG"); const size_t L = 6; void rep_perm(string &s) { if (s.length() == L) { cout << s << endl; } else { for (size_t i = 0; i < X.length(); ++i) { s += X[i]; rep_perm(s); s.erase(s.end() - 1); } } } int main() { string s; rep_perm(s); return 0; }
228 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 23:27:00.58 ] >>226 #define PATT 7 #define KETA 6 int main() { int n = 0; int a[KETA+1] ={0}; while (1) { int i; int x; n++; x = n; for (i=0;i<KETA+1;i++){ a[i] = x % PATT; x -= a[i]; x /= PATT; } if (a[KETA] == 1) break; for (i=KETA-1;i>=0;i--) printf("%c",'A' + a[i]); printf("\n"); } return 0; }
229 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 23:53:04.81 ] >>226 #include <stdio.h> int main(void) { int i; char str[] = "AAAAAAA"; for( ; ; ) { printf("%s\n", str); for(i = sizeof str - 2; ; i--) { if(++str[i] <= 'F') break; str[i] = 'A'; if(i == 0) return 0; } } }
230 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 00:21:48.57 ] Boostのnext_combinationみたいに、 関数を呼び出す度に組み合わせを順に作り出す関数を設計して欲しい^o^ この関数、予めソートされた集合に対して適用すると、 ぐるっと一周した時点で戻り値が false となる。すごい^^
231 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 00:36:40.57 ] >>230 あるなら使えば?
232 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 01:34:13.19 ] Boost使ってるなら自分で実装しろよ
233 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 01:41:45.83 ] このスレの住人程度には実装は無理。 っていうか、Boostライブラリの中身を見てさえ理解出来ない。
234 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 01:43:38.89 ] >>233 中身を見て絶望しろ
235 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 01:46:07.59 ] それが宿題で出るといいね
236 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 05:27:45.69 ] >>226 #include <stdio.h> int main(void) { int i, j, k, l, m, n; char str[7] = {0}; for(i = 'A'; i <= 'G'; i++) { str[0] = i; for(j = 'A'; j <= 'G'; j++) { str[1] = j; for(k = 'A'; k <= 'G'; k++) { str[2] = k; for(l = 'A'; l <= 'G'; l++) { str[3] = l; for(m = 'A'; m <= 'G'; m++) { str[4] = m; for(n = 'A'; n <= 'G'; n++) { str[5] = n; printf("%s\n", str); } } } } } } return 0; }
237 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 06:51:45.30 ] >>229 要素数と並べる数逆になってた #include <stdio.h> int main(void) { int i; char str[] = "AAAAAA"; for( ; ; ) { printf("%s\n", str); for(i = sizeof str - 2; ; i--) { if(++str[i] <= 'G') break; str[i] = 'A'; if(i == 0) return 0; } } }
238 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 07:00:14.93 ] >>226 ,236 どうせなら、 #include <stdio.h> int main(void) { char str[7] = {0}; for(str[0] = 'A'; str[0] <= 'G'; str[0]++) { for(str[1] = 'A'; str[1] <= 'G'; str[1]++) { for(str[2] = 'A'; str[2] <= 'G'; str[2]++) { for(str[3] = 'A'; str[3] <= 'G'; str[3]++) { for(str[4] = 'A'; str[4] <= 'G'; str[4]++) { for(str[5] = 'A'; str[5] <= 'G'; str[5]++) { printf("%s¥n", str); }}}}}} return 0; }
239 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 07:13:50.52 ] 直接やると添え字の関係で誤差レベルだけどほんのちょっとだけ遅くなるかも
240 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 07:17:10.56 ] >>226 再帰で。 #include <stdio.h> void func(char*s) { if(!*s) { printf("%s¥n",s-6); return; } for(*s='A'; *s<='G'; (*s)++) func(s+1); } int main(void) { char s[]="AAAAAA"; func(s); return 0; }
241 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 07:29:14.09 ] >A〜Gなどの7つ以上の要素から などの とある以上要素をどう入力するかの問題を含むのではないか。
242 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 07:55:47.24 ] >>241 どんな要素をだね。
243 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 08:03:51.59 ] >>226 ,241 これならOKか? #include <stdio.h> void func(char *s, int i) { static char x[20] = {}; char *p; if (i < 6) for (p = s; *p; p++) { x[i] = *p; func(s, i + 1); } else printf("%s¥n", x); } int main(void){ char s[20]; printf("input = "); scanf("%s", s); func(s, 0); return 0; }
244 名前:226 mailto:sage [2011/11/13(日) 12:47:17.09 ] >>227 ,>>228 ,>>229 ,>>236 ,>>237 ,>>238 ,>>240 ,>>243 みなさんありがとうございます。 ちなみに、後付になってしまい申し訳ないのですが、 更にこれの結果をテキストファイルなどで、1パターン1行として 出力するにはどういったコードを追加すれば良いか、教えていたいてもよろしいでしょうか。 よろしくお願い致します。
245 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 12:49:14.33 ] >>244 このまま、出力をファイルにリダイレクト
246 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 14:09:41.63 ] [1] 授業単元:プログラミングと実習2 [2] 五目並べの石を並べる関数を作りる 条件 1.読み込み部分を関数化する。場所の指定は、行(row,大文字)、 列(column,小文字)の順として連続した半角アルファベットとする。 例:Aa↓,Gg↓(↓はEnter)とする。 読み込んだ結果はA〜Zが0〜25,a〜zが0〜25とする 出力例Bg row=1 columnp=6 3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン: Visual C++ 2008 Express [3.3] 言語:C言語 [4] 期限:11月15日 [5]その他の制限:アルファベットを整数値に変換して*rowp,*columnpに 格納し*rowo,*columnpの値を評価するプルグラムを作る どうかよろしくお願いします
247 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 19:19:06.60 ] >246 rowp, columnpってポインタにする必要ある?
248 名前:226 mailto:sage [2011/11/13(日) 19:51:56.70 ] >>245 出来ました。 ありがとうございました。
249 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 20:18:11.15 ] >>247 そういう課題なんだろ 得てして、そういう制限された課題は急に難易度が上がりがち
250 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 20:47:14.17 ] 文字列を2つの整数にする関数を作れって話だろ
251 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 00:29:42.21 ] >>246 おまっとさんでした codepad.org/4IS3H70G
252 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 00:32:39.29 ] >>251 [2]
253 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 01:45:16.38 ] [1] 授業単元:計算機アルゴリズムT [2] 問題文(含コード&リンク): 設問1-1 変数iとポインタ変数p(「int i=8;int *p;p=&i;」のように宣言と代入する)に対し「printf("変数iの?は%X\n",p);printf("変数?の値は%d\n",*p);」を実行して値を表示するプログラムを作成しなさい。 但し「?」を適切な文字(列)に置換すること。ただし、%Xは16進数で表示を、%uは符号なし整数で表示を意味する。 設問1-2 2つの変数n1,n2(「int n1=24, n2=45;」と宣言する)の値を、それぞれを指すポインタnp1,np2(「int *np1=&n1, *np2=&n2;」と宣言する)を用いて交換した後、「printf("n1=%d,n2=%d\n",n1,n2);」で交換後のn1とn2の値を表示するプログラムを作成しなさい。 [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン:visual studio 2008 [3.3] 言語:C [4] 期限:[2011年11月18日8:00まで] [5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文 繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数 条件分岐if文、要素番号idx使用の書換、データの入れ替え 条件分岐・論理演算子を用いたif文の条件、if文、else if文 switch文、ポインタ変数・演算子*と&は習いました。 宜しくお願いします。
254 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 02:15:28.47 ] >> 2つの変数n1,n2の値を、それぞれを指すポインタnp1,np2を用いて交換 謎の仕様だ
255 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 02:22:31.80 ] >>254 変数n1はポインタnp1を使って交換する 変数n2はポインタnp2を使って交換するって事だと思います。
256 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 02:41:30.94 ] >>253 設問1-2 codepad.org/EafccM3B
257 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 02:48:32.86 ] >>256 設問1-1もお願いします。
258 名前:246 mailto:sage [2011/11/14(月) 05:02:04.57 ] >>251 大変参考になりました ありがとうございます
259 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 05:06:07.27 ] >>253 設問1-1 ideone.com/4srZT
260 名前:デフォルトの名無しさん [2011/11/14(月) 11:59:23.36 ] [1] 授業単元: C言語プログラミング [2] 問題文(含コード&リンク): sinのグラフを次のように描くプログラムを作成せよ ただしsin90°とsin270°に対するアスタリスクの数は20個とする。 beebee2see.appspot.com/i/azuYk7KSBQw.jpg [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: visual studio 2010 [3.3] 言語: C [4] 期限: [2011.11.3] [5] その他の制限: よろしくお願いいたします。
261 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 12:26:14.30 ] >>260 #include <stdio.h> #include <math.h> int main(void) { int i, j; int x, zero=20; for(i=0;i<=360;i+=15) { x=20.001*sin(i*M_PI/180); x+=zero; for(j=0;j<zero && j<x;j++) printf(" "); for(;j<zero || j<x;j++) printf("*"); printf("\n"); } return 0; }
262 名前:片山博文MZ [2011/11/14(月) 16:30:05.35 ] ふふふ、諸君はわたくしに勝てるかな。。。
263 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 19:13:54.88 ] >>256 >>259 有難う御座います
264 名前:デフォルトの名無しさん [2011/11/15(火) 12:59:42.31 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):斜め上方に初速度v0(=50),入射角theta(=60)で小球を投射した。 小球の軌道(x,y)を計算してください。ただし、y<0になったとき計算を停止してください。 なお、軌道(x,y)の計算部分を一つの関数(ユーザ定義関数)で計算し、 計算結果二つをmain関数に返すようにしてください。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語:C [4] 期限:11月19日まで [5] その他の制限:x,yにはアドレスを用いるそうです。 問題文がわかりにくいかもしれませんがよろしくお願いします。
265 名前:デフォルトの名無しさん [2011/11/15(火) 13:23:24.38 ] >>264 明日でいいならやってみようと思います。
266 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 13:23:58.75 ] >>264 問題文を端折ってねぇか? 重力加速度gはどうすんの? 軌道を計算しろっていうのはグラフとして軌道を表示しろってことか? 与えられた時刻tにおける小球の位置(x、y)を計算して表示しろってことだと思うけど、 計算結果二つってどういう意味? 計算結果はx座標、y座標の組(x、y)一つしかないように思うけど。
267 名前:デフォルトの名無しさん [2011/11/15(火) 13:35:40.59 ] 19日まで時間があります。 1、回答者が試作を公開する。 2、質問者が悪い部分を指摘する。 3、完全な製品が完成する。 1と2を繰り返すことで3に到達できるのではないでしょうか?
268 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 13:39:17.47 ] >>264 できたよ codepad.org/9C6ZWSPl
269 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 13:39:35.46 ] じゃあ関数プロトタイプ int hoge(double *x, double *y, double t);
270 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 13:53:26.58 ] >>268 仕事早いな。 というか、それでいいのか? Message = ((>>264 == >>267 || >>264 == >>269 ) ? ("情報は小出しにしない方が・・・") : ("(#^ω^)"));
271 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 14:16:26.03 ] vxとvyはcosとsin使って分けんじゃねーの?
272 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 14:27:51.49 ] 初速v0をx方向の成分とy方向の成分に分けるのは確かにそうだけど。 問題文にない重力加速度Gを勝手に定義して使っちゃってるし。 問題文がアレな>>264 の質問にも問題あるけど。
273 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 14:41:22.94 ] >>264 修正しました codepad.org/wJLUYAeE
274 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 14:54:59.40 ] >>264 ideone.com/MH6fk 適当に作ったやつ。 というか、これで合っているのか不安になってきた。 物理なんて高校卒業して以来ほとんど勉強してない(;´Д`) 問題文に重力加速度gについて書かれていないのがおかしい。 どこかに「重力加速度gはXXXXとする」等の文があるはず。
275 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 15:08:43.93 ] g=9.80665m/s^2じゃだめなん 書いてない場合は勝手に常識から外れない範囲内で決めていいって事だろ
276 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 15:14:42.57 ] y = v0t + 1/2gt^2 であることを忘れていた。 >>273 は double vy = vy0 - 1 / 2 * G * t; のように修正で。
277 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 15:15:15.82 ] まあ、勝手に決めていいと思うけど。 というか、この場合勝手に決めないと問題解けないけど。 いやらしい講師なら「おいお前、勝手に決めるんじゃねぇ!」というのもありえる。
278 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 15:40:47.14 ] ふと疑問に思ったんだけど、math.h の cos/sin って単位はラジアンですよね? double vx0 = v0 * cos( θ * 2 / π ); は double vx0 = v0 * cos( θ * π / 180); の誤りでは? ・・・あれ????俺の方が間違ってる?うーん????
279 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 15:40:49.18 ] >>276 横槍すまんけど -1 / 2 ってゼロになってしまわね? -1.0 / 2.0ならわかるけど 確か乗算演算子と除算演算子の評価順は左から右だよね? もちろん - は優先度が低いので後回しにされる
280 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 15:43:06.73 ] なっちゃうね。まぁ、そこはほら、いろいろ^^
281 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 15:45:58.63 ] いろいろ間違ってるねぇw
282 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:08:59.53 ] プログラムも物理も駄目とは... これ本気で駄目出ししたら何か所ぐらいあるかなw
283 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:29:31.05 ] こういう簡単な問題ならプログラムの実行結果の一部と 自分で手計算した結果を比較してみてからうpするのが筋だな 間違った答えを出すプログラムをうpする位なら何もしない方がいい 迷惑を掛けるだけだ
284 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:38:12.61 ] どもども、ダメだし勉強になります^^ >迷惑を掛けるだけだ 迷惑かかるのは質問者だけだからいいでしょw
285 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:42:29.99 ] >>283 ごめんなさい。 >>274 は無かった事にして下さい。
286 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:42:30.15 ] >>284 良くねーよ 他のスレならまだしも、このスレの存在意義を考えてみろ
287 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:44:21.31 ] >>286 しらねw 他の人がどんなつもりでこのスレにいるのかは知らないけど 自分は自分の勉強のために回答しているわけだし^^ いやならスルーすればぁ?
288 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:45:37.08 ] このスレに投稿する連中は宿題めんどうだから丸投げしてきてるだけだしな。
289 名前:デフォルトの名無しさん [2011/11/15(火) 17:08:53.82 ] 講師がわからない場合掲示板で聞くことって言うからここで聞いただけだよ。
290 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 17:34:44.51 ] >>287 お前みたいな奴はこのスレに来るなカス
291 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 17:57:17.65 ] >>285 合ってると思うが?
292 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 17:59:28.48 ] >>291 合ってますか。どうもありがとう! 人の答えと違っていると自分が間違っているんじゃないかと思う今日この頃。
293 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 18:11:37.68 ] >>292 初速50m/secとすると、(問題には単位がないので勝手に想定) 概算で初速の垂直方向は、50*sin60°≒43.3m/sec G=9.8として滞空時間は、2*43.3/9.8≒8.84sec 水平方向には、8.84*50*cos60°≒221m 垂直方向には最高、G*(8.84/2)*(8.84/2)/2≒95m
294 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 18:15:24.99 ] >>293 大体は合ってるっぽいですね。 わざわざ計算してくれてどうもありがとうございます。
295 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 18:41:23.23 ] >>290 はいはい、カスカス^^ じゃあお前が答えてやればぁ?w 平日の昼間から勉強にもならない問題を解いて何が楽しいのだw
296 名前:デフォルトの名無しさん [2011/11/15(火) 18:43:45.17 ] ここはニートと仕事のない派遣が 上から目線で問題を解いて自己満足に浸るスレですよ?
297 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 18:58:01.01 ] ここで誰も解かなくても問題丸投げにしたやつの単位が落ちる程度で誰も困らないんだから つまらないことで喧嘩するなよ
298 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 19:09:01.54 ] >>294 数値積分ではないのでその手の誤差はないけど、時間刻みが0.01だから、 水平到達距離とかはおおざっぱに初速度×時間刻み = 50 *.0.01 = 0.5(m) 程度は値がずれる可能性があるよね。 しかし初速度50m/sって、例えばテニスのサーブとかそんな感じ? 空気抵抗がない状態で割と上向きに打ったら200mぐらいは飛ぶとw
299 名前:デフォルトの名無しさん [2011/11/15(火) 19:29:45.22 ] [1] 授業単元:newとdeleteの確認 [2] 問題文(含コード&リンク):仕様:newとdeleteの確認 下記の基底クラスから、3パターンの別クラスを派生させ、Action関数などをオーバーライドし、各クラス独自の振る舞いができるようにする。 ・CBaseMonsterクラス プロパティprotected 整数型 m_atk メソッド コンストラクタ //m_atkを適宣初期化void Action(void) //行動制御関数 ・void CBaseMonster::Action(void)のアルゴリズム50%の確率で「攻撃した!ダメージは99」と表示。99にはm_atkを表示。50%の確率で「防御した!」と表示。 アクション関数をオーバーライドなお、プログラム起動後、どのクラスのモンスターを生成するのかをメニューから選択できるようにし、生成したモンスターのAction()を20〜30回程度繰り返し呼び出しし、想定した行動をしているか確認する。 派生したクラスについては、Action()のアルゴリズムを含めて、全て自由に追加修正して構わない。プログラムを終了する前に、newで生成したインスタンスを吐きすることを忘れないように。 動作イメージ ------------------------------------------------------------ |プログラムスタート |1:基本モンスター |2:ゴブリン |3;スライム |4:ドラゴン |>>どのモンスターを生成しますか? |>>4 ←選択されたインスタンスをnewで生成し、Actionを繰り返し呼び出す。 |ドラゴンは炎を吐いた!ダメージ540 |ドラゴンはじっと身構えている |ドラゴンは炎を吐いた!ダメージ540 |ドラゴンは攻撃した!ダメージ540 | : | : |プログラム終了。 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2008 [3.3] 言語: C++ [4] 期限: 2011年11月19日13:00まで [5] その他の制限:お手数ですが、コメントのほうお願いします。
300 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 21:55:36.22 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):符号無し整数x を右にn ビット回転した値を返す関 数rrotate と,左にn ビット回転した値を返す関数 lrotate unsigned rrotate(unsigned x, int n) unsigned lrotate(unsigned x, int n) を作成せよ *関数はprint_bits 関数を利用すること <実行例> 非負の整数を入力してください:34567 何ビット回転しますか:4 回転前= 1000011100000111 右回転= 0111100001110000 左回転= 0111000001111000 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語:C [4] 期限:11月16日まで [5]
301 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:53:23.99 ] >>300 #include <stdio.h> void print_bits(const char *msg, const int val) { int i; printf("%s", msg); for(i = siezof(int); i; i--) printf("%d", val & i); printf("\n"); } unsigned int rrotate(unsigned x, int n){return((x >> (sizeof(int) - n)|(x << n));} unsigned int lrotate(unsigned x, int n){return((x << (sizeof(int) - n)|(x >> n));} int main(void) { unsigned int val,lr; printf("非負の整数を入力してください:"); scanf("%d", val); printf("何ビット回転しますか:"); scanf("%d", lr); print_bits("回転前=", val)); print_bits("回転前=", rrotate(val, lr))); print_bits("回転前=", lrotate(val, lr))); return(1); } こんな感じかな? エラーあったら直しておいて。
302 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:08:37.78 ] >>301 全部が 回転前 だった。 2回目の回転前→右回転 3回目の回転前→左回転 にそれぞれ変更しといて。
303 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:13:33.20 ] 【質問テンプレ】 [1] 授業単元:C言語 [2] 問題文(含コード&リンク):iup.2ch-library.com/i/i0478317-1321365328.jpg [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2011年11月17日 [5] 問題に書いてある通りです。 よろしくお願いします。
304 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:40:24.76 ] >>303 delByName() も findByName() も削除関数って書いてるなw findByName() が検索関数ならば戻り値が void じゃ駄目だし...
305 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:52:34.66 ] >>304 100万回読んで恋
306 名前:デフォルトの名無しさん [2011/11/15(火) 23:55:03.52 ] >>299 これ、基底クラスに何かを追加して良いとは書いてないけど、 最低ゲイ、virtual ~CBaseMonster() がないと、 new した派生クラスを delete する時に面白いことになりかねなくない? まあ、派生クラスにデータメンバ持たせなければいいんだけど…。
307 名前:303 mailto:sage [2011/11/15(火) 23:56:02.93 ] 【質問テンプレ】 [1] 授業単元:C言語 [2] 問題文(含コード&リンク):iup.2ch-library.com/i/i0478374-1321368771.jpg [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2011年11月17日 [5] 問題に書いてある通りです。 問題文にミスがありましたので訂正版をうpしました。 よろしくお願いします。
308 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:26:25.37 ] >>301 sizeof(int) * 8
309 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:36:47.88 ] >>308 …ビット数に変更し忘れとるw 指摘thx
310 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:40:38.53 ] >>301 ゴミすぎる 質問者にはふさわしいのかもしれんがw
311 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:43:29.35 ] >>310 コードの提示してみたら?
312 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:45:06.68 ] >>311 >>301 の要訂正箇所数えてみなよ
313 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:49:26.71 ] >>307 ttp://codepad.org/YXrybH3k
314 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 02:01:29.90 ] >>313 ビット操作を使用する理由が判らん
315 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 02:05:47.71 ] >for(i = siezof(int); i; i--) printf("%d", val & i); こんなひどいのは滅多に見れない
316 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 03:05:10.30 ] for(i = siezof(int)*8 - 1; i >= 0; i--) printf("%d", val & (1 << i)); の間違いじゃなかろうか?
317 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 03:29:39.32 ] それで実行してみろw
318 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 03:31:22.34 ] >>317 ああ、そうだね。間違ってるね。俺もアホだw
319 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 05:26:06.06 ] >>301 ゴミみたいなソース書くな 実行結果も間違ってるし >エラーあったら直しておいて。 エラーだらけじゃボケ >>300 codepad.org/EF5yOofu intの大きさは環境依存なので出題とは違う出力結果になるかもしれんが 少なくともビットの出力は正しい
320 名前:307 mailto:sage [2011/11/16(水) 06:06:32.97 ] >>313 ありがとうございます。 できればビット操作を使用しない方法を教えてほしいです。
321 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 06:48:09.86 ] >>314 findNameやらを作りたかっただけ 戻り値で複数の組み合わせの意味を持たせる方法ってビット以外でどうすればいいかなあ
322 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 07:20:16.77 ] >>307 住所録に何故住所データがないんだ。
323 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 07:47:43.42 ] >>322 ファンレターなら学校宛でお願いします
324 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 08:53:01.88 ] 符号付きintのシフトは §6.5.7.3 The integer promotions are performed on each of the operands. The type of the result is that of the promoted left operand. If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined. つまり負の数をシフトしたりintの幅以上シフトした場合の動作は未定義、つまり鼻から悪魔 でもこれを気にするとプログラムが組めなくなってしまう
325 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 08:59:48.97 ] それって n << -1 とか n << (sizeof(int) * 8 + 1) が未定義ってことじゃないの?
326 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 09:06:47.42 ] 引用するならこっちだよね §6.5.7.5 The result of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type or if E1 has a signed type and a nonnegative value, the value of the result is the integral part of the quotient of E1 / 2E2. If E1 has a signed type and a negative value, the resulting value is implementation-defined. 環境依存って事で
327 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 11:57:09.65 ] sizeof(unsigned) * CHAR_BITと、unsignedの実際の有効ビット数が異なる可能性もあるね
328 名前:デフォルトの名無しさん [2011/11/16(水) 12:17:16.88 ] 【質問テンプレ】 [1] 授業単元:多次元配列 [2] 問題文(含コード&リンク): 要素が整数からなる3x3の表データを scanf()関数を用いて読み込み、対角線を軸と して要素を入れ替えた表を表示するプログラ ムを作りなさい。[3] 環境 [3.1] OS: MaxOS [3.2] コンパイラ名とバージョン: egg 10.6.8 [3.3] 言語: C [4] 期限:2011年11月19日(土) [5] その他の制限: while, if, for, 配列まで (例) 1 2 3 1 4 7 9 6 3 4 5 6 → 2 5 8 と 8 5 2 7 8 9 3 6 9 7 4 1
329 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 12:49:20.93 ] >>328 #include<stdio.h> int main(void) { int i,j; int a[3][3]; scanf("%d",&a[0][0]); scanf("%d",&a[0][1]); scanf("%d",&a[0][2]); scanf("%d",&a[1][0]); scanf("%d",&a[1][1]); scanf("%d",&a[1][2]); scanf("%d",&a[2][0]); scanf("%d",&a[2][1]); scanf("%d",&a[2][2]); printf("%d ", a[0][0]); printf("%d ", a[1][0]); printf("%d¥n",a[2][0]); printf("%d ", a[0][1]); printf("%d ", a[1][1]); printf("%d¥n",a[2][1]); printf("%d ", a[0][2]); printf("%d ", a[1][2]); printf("%d¥n",a[2][2]); printf("¥n"); printf("%d ", a[2][2]); printf("%d ", a[1][2]); printf("%d¥n",a[0][2]); printf("%d ", a[2][1]); printf("%d ", a[1][1]); printf("%d¥n",a[0][1]); printf("%d ", a[2][0]); printf("%d ", a[1][0]); printf("%d¥n",a[0][0]); return 0; }
330 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 12:50:30.94 ] >>328 ideone.com/i5cIr
331 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 12:52:48.26 ] #include <stdio.h> int main(void) { int a[3][3], i, j; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) scanf("%d", a[i] + j); for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) printf("%d ", a[j][i]); printf("\n"); } printf("\n"); for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) printf("%d ", a[2 - j][2 - i]); printf("\n"); } return 0; }
332 名前:デフォルトの名無しさん [2011/11/16(水) 13:15:49.94 ] >>306 299です。すいませんよろしくお願いします。
333 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 13:29:18.60 ] [1] プログラミング [2] 下記のような構造を持ったデータが、std::string data; の中に格納されています。 stlやboostの正規表現、構文解析等を利用して <div class="block">〜</div> 内のブロック毎に <p>タグ内にある複数アイテムの情報(タイトル、URL)を摘出し、1つの変数に集約してください。 ※blockの数やアイテムの情報(タイトルやURL)は変動する可能性があります。 [3] Windows / MSVC 10.0 / C++ [4] なるべく3日以内に [5] stl, boost 1.47.0 使用可能 / アイテム用独自クラスやmap、vector等使用に関して制限ありません よろしくお願いします ------ <!DOCTYPE HTML PUBLIC... <html> ... <div class="block"> <p class="first"><a href="dummy/url/1 " target="main">Title 1</a></p> <p><a href="dummy/url/2 " target="main">Title 2</a></p> <p><a href="dummy/url/3 " target="main">Title 3</a></p> <p><a href="dummy/url/4 " target="main">Title 4</a></p> </div> ... <div class="block"> <p class="first"><a href="dummy/url/5 " target="main">Title 5</a></p> <p><a href="dummy/url/6 " target="main">Title 6</a></p> <p><a href="dummy/url/7 " target="main">Title 7</a></p> <p><a href="dummy/url/8 " target="main">Title 8</a></p> </div> ... </html>
334 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 15:06:38.44 ] PHP使ったらすぐに解けそうな問題だな regex使えるから結構簡単に行けるかも
335 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 15:51:40.76 ] [1] 授業単元:楽しいプログラミング [2] 問題文(含コード&リンク): 以下の実行例のように,三角形の2 辺の長さとその2 辺のなす角(0〜180[deg])を入力すると,もう1 辺の 長さと,三角形の面積を表示するプログラムを作成せ よ.π = 3.14159265 とする. [3.1] OS: linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:2011年11月17日 9:00まで [5] その他の制限: while, if, for, 配列まで 例 三角形の2 辺の長さを入力してください。 辺1:-3.0 正の値を入力してください。辺1:3.0 辺2:6.0 2 辺のなす角度[deg] を入力してください:200.0 0<角度[deg]<180 の値を入力してください。30.0 もう1 辺の長さ= 3.717941 三角形の面積= 4.500000
336 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 16:14:54.59 ] #include <stdio.h> #include <math.h> int main(void) { double a, b, deg, pi = 3.14159265; printf(" 三角形の2 辺の長さを入力してください。\n"); for( ; ; ) { printf("辺1:"); scanf("%lf", &a); if(a > 0) break; printf("正の値を入力してください。"); } for( ; ; ) { printf("辺2:"); scanf("%lf", &b); if(b > 0) break; printf("正の値を入力してください。"); } printf("2 辺のなす角度[deg] を入力してください:"); for( ; ; ) { scanf("%lf", °); if(0 < deg && deg < 180) break; printf("0<角度[deg]<180 の値を入力してください。"); } printf("もう1 辺の長さ= %f\n", sqrt(a * a + b * b - 2 * a * b * cos(deg / 180 * pi))); printf("三角形の面積= %f\n", a * b * sin(deg / 180 * pi) / 2); return 0; }
337 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 16:17:53.83 ] >>335 ideone.com/4ypX1
338 名前:デフォルトの名無しさん [2011/11/16(水) 16:18:37.14 ] >>299 どちらでもお好きな方でどうぞ。 codepad.org/RYTPLotN codepad.org/Qwj9AuPK
339 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 16:19:05.50 ] 間違えた こっちで ideone.com/tLidg
340 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 16:22:47.75 ] 何度もすまね ideone.com/70L8D
341 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 16:51:30.94 ] [1] 授業単元:C言語基礎 [2] 問題文(含コード&リンク): 20×20程度のエリアを作り その中でキャラクターを動かすプログラムを作れ。 移動キーの割当 ↑:ジャンプ →:右へ移動 ← : 左へ移動 [3.1] OS: windows7 32bit [3.2] コンパイラ名とバージョン: bcc5.11 [3.3] 言語: C [4] 期限:2011年11月18日 [5] その他の制限: できるだけ簡単なプログラムでお願いします。 例 ■■■■■■■■■■■■■■■■■■■■ (・∀・) ←動かすキャラ | | ■■■■■■■■■■■■■■■■■■■■
342 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 17:23:28.24 ] [1] 授業単元:楽しいプログラミング [2] 問題文(含コード&リンク): 以下の実行例のように,三角形の2 辺の長さとその2 辺のなす角(0〜180[deg])を入力すると,もう1 辺の 長さと,三角形の面積を表示するプログラムを作成せ よ.π = 3.14159265 とする. [3.1] OS: linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:2011年11月17日 9:00まで [5] その他の制限: while, if, for, 配列まで 例 三角形の2 辺の長さを入力してください。 辺1:-3.0 正の値を入力してください。辺1:3.0 辺2:6.0 2 辺のなす角度[deg] を入力してください:200.0 0<角度[deg]<180 の値を入力してください。30.0 もう1 辺の長さ= 3.717941 三角形の面積= 4.500000
343 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 18:38:46.71 ] >>342 >>335-337
344 名前:デフォルトの名無しさん [2011/11/16(水) 19:35:25.71 ] [1] 授業単元: プログラミング基礎 [2] 問題文(含コード&リンク): 3問 ideone.com/kXOZ8 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 今日午後8:15まで [5] その他の制限: 基礎の基礎なので、難しいプログラミングは含まれていないと思います。ついでに説明も付け加えてくださると助かります。 時間がないですが、よろしくお願いします。
345 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 20:28:00.06 ] >>344 帰納じゃなくて再帰じゃね?
346 名前:デフォルトの名無しさん [2011/11/16(水) 20:33:48.99 ] >>345 再帰、だと思います。 英語をそのまま日本語にしたので、正確な呼称がわからなくて、帰納と訳してました。 ありがとうございます。
347 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 21:16:38.36 ] >>338 2個目はC++11だろ コンパイルエラーだらけ
348 名前:345 mailto:sage [2011/11/16(水) 21:51:31.38 ] >>344 遅れちゃいるけど、 ideone.com/Zf96U 入力値のチェックは入れてないので、適宜修正してくださいな。
349 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 21:53:33.90 ] >>344 出遅れたけど。 ideone.com/dz41U
350 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 22:49:14.14 ] >>320 ttp://codepad.org/dhygvLxO
351 名前:デフォルトの名無しさん [2011/11/16(水) 23:00:39.45 ] >>347 うん。もともと二個目は出題の要求に従ってない部分があるし。 無理やり従わせたためにCBaseMonsterクラスの派生クラスにおけるAction関数が無意味だし、 スマポ使えばすむところをこれまた無理やり従わせるために new delete にしてるし あと、UML図書かないで鼻ほじりながら脳内仕様で作ったから設計があやしいw どっちにしても二個目は宿題としては提出できないので一個目で。 こっちは出題の要求通り(のはず)。
352 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 00:48:48.87 ] >>350 ありがとうございます!
353 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 04:42:32.57 ] >>346 もしかして外国の学校に通ってる人? だったら大変だね。 一般的には recursion -> 再帰 induction -> 帰納 かなと。 あと偶数と奇数が逆? odd -> おかしい、奇妙な
354 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 04:44:36.15 ] 英語の問題ならそのまま書いてくれた方がいいな
355 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 17:41:06.65 ] [1] 授業単元: プログラミング基礎 (ポインタと関数) [2] 問題文(含コード&リンク): nxが指す整数の値を2乗する関数 void sqr(int *nx)を作成せよ 例えば、num =3 に対して関数sqrを呼び出すと、num=9となる。 関数の動作を確認出来るmain関数も作成すること [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 11月18日9:00まで [5] その他の制限: 実行例, 整数を入力してください:3 その値の2乗しました :9
356 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 17:59:43.63 ] >>355 codepad.org/zpCewO0B
357 名前:デフォルトの名無しさん [2011/11/17(木) 19:52:54.65 ] [1] 授業単元: 実数型変数の精度 [2] 問題文(含コード&リンク): 以下の部分の処理(意味)の把握 *((unsigned int *)&a)・・・・・・・・aはfloat型変数 [3] 環境 [3.1] OS:unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: c [4] 期限: 11月17日 22:00 まで
358 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:16:31.83 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): アルファベットと空白からなる文字列を処理する以下のような関数を作成せよ。なお各関数は処理が成功したときに1、失敗したときに0を返すものとする。 (1) 先頭からインデックスpで指定される文字までを反転させる関数int reverse(char *s, int p)を作成せよ。例: char s[] = "abc defg"; reverse(s, 3); printf("%s¥n", s); // -> " cbadefg" (2) インデックスpとqで指定される範囲の文字を反転させる関数int reverse2(char *s, int p, int q)を作成せよ。例: char s[] = "ab cdefg"; reverse2(s, 4, 7); printf("%s¥n", s); // -> "ab cgfed" (ヒント: (1)で作った関数が応用できる?) (3) 単語(空白で区切られた文字)の順序を反転する関数int reverse_word(char *s)を作成せよ。例: char s[] = "abc de f ghi"; reverse_word(s); printf("%s¥n", s); // -> "ghi f de abc" (ヒント: (1)や(2)で作った関数が応用できる?) [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: [5] その他の制限:どれもできるだけ引数で与えられた文字列の上で処理をするようにして無駄なメモリを使わないように心がけよ(よって関数の引数には常に編集可能な文字列を渡すこととする)。
359 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:20:42.61 ] char *s = "abc de f ghi"; こういう渡され方はしないという前提かな?
360 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:54:15.62 ] >>357 aへのポインタをunsigned int型変数へのポインタだと解釈した時の値 = aのバイト表現をunsigned int型の表現だとキャストせずに解釈した時の値 で大丈夫かな
361 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:55:34.05 ] ポインタだと解釈した時の値→ポインタだと解釈した時のポインタが示す値 こうか
362 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:56:29.84 ] >>359 なんでそう思うんだ?
363 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:58:49.06 ] >>362 書き換えが発生するからだろ
364 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:17:50.64 ] >>358 失敗の条件が無いので適当に組んだ。 ideone.com/F7RJy
365 名前:デフォルトの名無しさん [2011/11/17(木) 22:24:48.17 ] >>358 codepad.org/y113LZPc Joel on Software の試験問題みたいなやつじゃな… xor 交換法使えってやつ
366 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 23:31:30.50 ] >>364 C99か
367 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:32:33.72 ] [1] 授業単元: [2] 問題文(含コード&リンク): codepad.org/4cU7vXcT リンク先のコードを新規データをリストの最初にする [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:VS2008 [3.3] 言語:C [4] 期限:早めにお願いします
368 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 02:02:37.58 ] >>367 確認していないが。 67-78行を以下に変更でいいような? pointer_student = (struct student *)malloc( sizeof(struct student) ); pointer_student->next = root; pointer_student->number = in_number; strcpy(pointer_student->name, in_name);
369 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 02:08:43.36 ] 22-48行は逆順に登録されるようにしなくていいのか?
370 名前:368 mailto:sage [2011/11/18(金) 02:59:54.66 ] コードから新規データのみと解釈したんだけどね。どーでしょうねぇ。 てか、データ構造も大事だけど先に関数を習いたいねぇ・・・。 >>299 解答がないのは資料不足。エスパーではないので情報は全部だしてもらわんと。 基本モンスタのクラスがあるはずだが(^^;;
371 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 03:14:47.98 ] リファクタリングも宿題の内ということでわざと冗長に書いてあるのかと思った 関数習う前にlinked listを宿題で出すかね
372 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 05:13:55.78 ] >>367 データの登録先を全てリストの先頭にするということだと解釈した。 ideone.com/GRvzx
373 名前:デフォルトの名無しさん [2011/11/18(金) 08:44:46.32 ] > 【質問テンプレ】 > [1] 授業単元:実数型変数の精度 > [2] 問題文(含コード&リンク):実数型変数の形式は以下のものとする。 符号部(1ビット)、指数部(nビット)、仮数部(mビット) @指数部を符号なし整数としてオフセットを用いて表現する方法の調査 A以下のコードによるプログラムの実行結果から実数型変数の形式を類推する方法の検討 codepad.org/wFSNTRCM > [3] 環境 > [3.1] OS:unix > [3.2] コンパイラ名とバージョン: gcc > [3.3] 言語: C > [4] 期限: (11月18日13:00まで
374 名前:デフォルトの名無しさん [2011/11/18(金) 09:50:21.60 ] >>329 >>330 遅れたがありがとう あとこれをコンピュータ側が自動的に反転させてくれるように出来ないかな?
375 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 10:56:57.75 ] >>374 ??? 自動的に反転とは? 何を求めているのか分からない。なんか例を出してよ。
376 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 12:36:02.25 ] >>374 上下、左右反転だとエスパーしてみた。 codepad.org/5Ja0STCQ
377 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 12:58:06.53 ] 776 名前:名無しさん@涙目です。(東日本)[] 投稿日:2011/11/18(金) 12:50:14.89 ID:E2JpCOtJ0 朝鮮人出身の孫正義に対し、日本人として産まれ育った皆さんが何か勝てる要素あります? ないですよねえ(笑) とすると、、 …あれあれ〜? 「日本人の方が朝鮮人より優れている!」というネトウヨの主張、矛盾が生じますよ?(笑) ▼ 781 名前:名無しさん@涙目です。(WiMAX)[sage] 投稿日:2011/11/18(金) 12:51:05.55 ID:kdvVz5BV0 >>776 ネトウヨというレッテル貼り付ける時点で議論を放棄した馬鹿になるぞ ▼ 798 名前:名無しさん@涙目です。(神奈川県)[sage] 投稿日:2011/11/18(金) 12:55:36.12 ID:B2VXzqAn0 >>776 逆に金と朝鮮コネクション以外になにかあるのですか? ネットにある彼のプレゼンを注意深くきいてみると「詐欺師」という印象しか受けませんが? 印象に残るようなフレーズを連呼しながら、時に感情的にその場限りの嘘を吐き続けるだけの男 こんな男に騙されるほうも騙されるほうですがw
378 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 13:55:25.95 ] >>375 >>356 例えば 123 456 789 という3×3の行列をscant()で読み取ると 対照線を軸に反転出来たらいいんだ 上の例でいくと 987 654 321 みたいな感じになればおk
379 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 14:12:13.75 ] 転置行列の逆みたいな感じか 左右反転してから上下反転すれば出来るな
380 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 15:27:48.74 ] >>378 #include<stdio.h> int main(void) { int i,j; int a[3][3]; scanf("%d",&a[0][0]); scanf("%d",&a[0][1]); scanf("%d",&a[0][2]); scanf("%d",&a[1][0]); scanf("%d",&a[1][1]); scanf("%d",&a[1][2]); scanf("%d",&a[2][0]); scanf("%d",&a[2][1]); scanf("%d",&a[2][2]); printf("%d ", a[0][0]); printf("%d ", a[1][0]); printf("%d¥n",a[2][0]); printf("%d ", a[0][1]); printf("%d ", a[1][1]); printf("%d¥n",a[2][1]); printf("%d ", a[0][2]); printf("%d ", a[1][2]); printf("%d¥n",a[2][2]); printf("¥n"); printf("%d ", a[2][2]); printf("%d ", a[1][2]); printf("%d¥n",a[0][2]); printf("%d ", a[2][1]); printf("%d ", a[1][1]); printf("%d¥n",a[0][1]); printf("%d ", a[2][0]); printf("%d ", a[1][0]); printf("%d¥n",a[0][0]); printf("¥n"); printf("%d ", a[2][2]); printf("%d ", a[2][1]); printf("%d¥n",a[2][0]); printf("%d ", a[1][2]); printf("%d ", a[1][1]); printf("%d¥n",a[1][0]); printf("%d ", a[0][2]); printf("%d ", a[0][1]); printf("%d¥n",a[0][0]); return 0; }
381 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 15:28:40.70 ] 半分ネタなんだが、こうやって書いても出来ないもんは出来ないんだな
382 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 18:47:50.77 ] >> 373 (1) 参考:ja.wikipedia.org/wiki/IEEE_754 (2) ヒント:出力の2つめのフィールドが偶数になっているときに、情報落ちしている。 これで仮数部が表現できるビット数がわかる。注意:けち表現も考慮に入れよ。 ・・・というか出題のコードが悪いよ。
383 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 19:32:43.34 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): codepad.org/bMCs37CD [3] 環境 [3.1] OS:Linux Ubuntu 10.04 [3.2] コンパイラ名とバージョン:不明ですが恐らくgccだと思います。 [3.3] 言語:C [4] 期限:11/25
384 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 19:46:58.93 ] >364 ごめん。>358じゃないんだけど、reverse_wordってちゃんと動く? 少なくとも俺の環境だとダメ。VC2010(に入ってるcl.exe)とMinGWのgccの両方で試したけどダメ。 >366の発言が関係してる?
385 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:07:37.69 ] >>384 VC2010のC++はC89なのでC99はコンパイル通らないよ gccならバージョンにも寄るがだいたい通る つーか宿題にC99書くなって Linux上のgccならC99でもいいっていう考えだろうけど、使うなよ こんなクソ言語
386 名前:デフォルトの名無しさん [2011/11/18(金) 20:58:29.77 ] >>383 採草地w ちゃんと写せよ
387 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:00:22.81 ] すなわちの前後が全く繋がってないような気がするんだが
388 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:14:54.23 ] >>384 変数宣言を移動しても、s3の処理で落ちる
389 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:28:11.38 ] [1] 授業単元:計算機アルゴリズムT [2] 問題文(含コード&リンク): 設問1-1 プログラム例9.4.4で「a_p=&a[0]; b_p=&b[0]; c_p=&c[0];」を「a_p=&a[4]; b_p=&b[4]; c_p=&c[4];」に置き換えた場合、同じ表示となるようにfor(・・・){・・・}を書換えなさい。 プログラム例9.4.4 ttp://www.dotup.org/uploda/www.dotup.org2278003.txt.html 設問1-2 配列 float a[7] = {2.10, 3.21, 5.43, 6.54, 7.65, 8.76, 9.87}について、 (1)ポインタ変数を用いて、すべての要素を表示するプログラムを作成せよ。 (2)ポインタ変数を用いて、奇数の添字の要素を表示するプログラムを作成せよ。 (a_p+=2を使用すること。) (3)ポインタ変数を用いて、すべての要素を逆の順に、a[6]からa[0]まで表示するプログラムを作成せよ。 ただし、ポインタ変数には最初a[6]のアドレスを記憶させるようにする。 (--a_pまたはa_p--を使用すること。) [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン:visual studio 2008 [3.3] 言語:C [4] 期限:[2011年11月25日8:00まで] [5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文 繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数 条件分岐if文、要素番号idx使用の書換、データの入れ替え 条件分岐・論理演算子を用いたif文の条件、if文、else if文 switch文、ポインタ変数・演算子*と&は習いました。 宜しくお願いします。
390 名前:384 mailto:sage [2011/11/19(土) 00:37:32.01 ] >358,364,385,388 reverse_wordだけ自分で書いてみた。stdioだけしか使わないようにしてみた。 ttp://ideone.com/dgWQN Cはほぼ初心者に近いけど、この問題はポインタとかアルゴリズムとかの勉強になって良いね。 無駄な部分が多分あると思うから、それは是非指摘してほしい。
391 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:59:42.73 ] >>389 設問1-1 codepad.org/YMBKM27k 設問1-2 (1) codepad.org/aW6BDwnv (2) codepad.org/FqIcl9T7 (3) codepad.org/rtJfysnl
392 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 02:44:15.53 ] >>384 うーんreverse_word()の中でqがオーバーランしてるかな。 最後のreverse(s, q - 2 - s)で壊す。
393 名前:デフォルトの名無しさん [2011/11/19(土) 03:00:00.82 ] 調子にのっちゃダメー
394 名前:384, 390 mailto:sage [2011/11/19(土) 06:00:57.11 ] >392 確認なんだけど、 このレスはあくまでも>384へのレスであって、>390へのレスじゃないよね?
395 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 06:57:01.70 ] >>394 >>392 は>>364 のコードのことです。
396 名前:394 mailto:sage [2011/11/19(土) 09:58:09.26 ] 失礼しました。アンカーミスりました。 了解です。
397 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:01:13.51 ] (3)だけ int find(char *s, int n){ while(*(s+n)!=' ' && n<strlen(s)) ++n; return n; } int reverse_word(char *s) { if (strlen(s)<1) return 0; int i,n; for(i=n=0; i<strlen(s); i=n+1){ n=find(s,i); reverse2(s, i, n-1); } reverse(s, strlen(s)-1); return 1; }
398 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:02:06.45 ] [1] 授業単元: 画像処理 [2] 問題文(含コード&リンク): アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである codepad.org/i8K01zBM ここまでできたのですが画像の中心で回転してくれません。 [3] 環境 [3.1] OS:windowsxp [3.2] コンパイラ名とバージョン:windows visual studio 2008 [3.3] 言語:c [4] 期限:11/20 [5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです
399 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:59:36.82 ] [1] 授業単元:C言語入門 [2] 問題文(含コード&リンク):i.imgur.com/UwzPZ.jpg [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 11/15 10:00 [5] その他の制限: そこまで複雑な関数は習ってません 詰んでます お願いします
400 名前:デフォルトの名無しさん [2011/11/19(土) 23:23:18.68 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク): 入力された数値が素数か否かを判定し,結果を画面に出力せよ.ただし @ループ命令を使う方法 A再帰処理を使う方法 B上記のどちらも使わない方法 のいずれについても解答する事. [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 11/27 23:00 [5] その他の制限: 初心者向けにお願いします
401 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:51:01.44 ] >>400 B だけ codepad.org/tL8dq6HD
402 名前: ◆QZaw55cn4c mailto:sage [2011/11/19(土) 23:51:26.08 ] >>400 @ ideone.com/bj1AE A ideone.com/favuB B うーん、困りました。わかりません。
403 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:13:49.80 ] >>400 >>401 を縮めた codepad.org/4JFt7VJ5
404 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:15:58.06 ] >>391 有難う御座います
405 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:31:18.16 ] 398ですがコメント文が間違ってたので投稿し直します 1] 授業単元: 画像処理 [2] 問題文(含コード&リンク): アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである codepad.org/7p9bZmsA ここまでできたのですが画像の中心で回転してくれません。 [3] 環境 [3.1] OS:windowsxp [3.2] コンパイラ名とバージョン:windows visual studio 2008 [3.3] 言語:c [4] 期限:11/21 20:00 [5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです
406 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 01:35:45.40 ] >>403 奇数だけチェックするようにしてビットパターンの方も間引いたわけですか
407 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 01:41:02.34 ] >>405 src_x=(dest_x-dest_width/2)*cos(-theta)-(dest_y-dest_height/2)*sin(-theta)+src_width/2; src_y=(dest_x-dest_width/2)*sin(-theta)+(dest_y-dest_height/2)*cos(-theta)+src_height/2; でおk
408 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 01:41:20.74 ] >>403 5以上の素数は 6n±1 に限られるから、もっと少なくできるんじゃない?
409 名前: ◆QZaw55cn4c mailto:sage [2011/11/20(日) 01:42:07.62 ] >>403 >>401 んーんーなるほど。
410 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 01:46:53.92 ] >>409 死んでもgoto使いたくないのか
411 名前: ◆QZaw55cn4c mailto:sage [2011/11/20(日) 02:05:06.43 ] >>410 そんなことはないんですけど、今回はやめときました。 hibari.2ch.net/tech/kako/1289/12897/1289715349.html >>479 codepad.org/RMU1H5jZ
412 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 02:05:23.27 ] >>399 誰かたのんます・・・
413 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 02:22:04.60 ] >>412 放置されたら諦めろ。 codepad.org/DnUikRHF
414 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 03:48:44.47 ] [1] 授業単元: アルゴリズム [2] 問題文(含コード&リンク): 整数nを入力、2以上nイカの全ての素数およびその素数の累積を表示(while文を使用) 例) n=15の時: 素数:2,3,5,7,11,13 累積:41 [3] 環境 [3.1] OS: (WindowsXP) [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:今日の22時まで [5] while文使用でお願いします
415 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 04:40:23.12 ] >>400 main(i,n){scanf("%d",&n);_:if(n*(n>1)%++i)goto _;puts("not prime"+(i==n)*4);}
416 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 04:53:30.16 ] >>415 トリッキー過ぎるだろw
417 名前: ◆QZaw55cn4c mailto:sage [2011/11/20(日) 04:58:29.46 ] >>412 >>399 残念。 codepad.org/lZ0MtrPM
418 名前: ◆QZaw55cn4c mailto:sage [2011/11/20(日) 05:03:18.15 ] >>415 >(n>1) 細やかな心遣いですね。
419 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 05:03:56.45 ] >>417 413 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/08(水) 04:58:51 典型的な自己愛性人格障害だな 治療不能 就職も出来ず一生ニート 416 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/08(水) 12:32:05 >>413 同属嫌悪ってやつか、自己紹介乙。 叩いているお前も十分基地外、池沼だよ。 そんなことしている暇があるんだろ? 便利な詭弁だよな そうやって自分の問題から逃げていれば楽だもんだなあ 468 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/13(月) 21:08:24 Pen III 500MHz を2003年の夏まで使用していましたが 今はC2D、C2Qのを使用してますです! Core iシリーズはVistaのごとくスルーしてます ><; スクリーンショットマダァ?(・∀・ )っ/凵⌒☆チンチン
420 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 05:05:33.45 ] n;main(i){for(scanf("%d",&n);n%++i&&i<n;);puts("not prime"+(i==n)*4);}
421 名前: ◆EiEUm/qHNk mailto:sage [2011/11/20(日) 06:18:42.24 ] [1] 授業単元:C言語 [2] 問題文:ガウスの消去法を使ってn元連立方程式を解け ideone.com/2GwBp [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C言語 [4] 期限:11月21日まで [5] その他の制限:math.h や #difine などは習っていないので使えません。 アップロダに初めてソースを上げてみたのですが、学校では値が出ました、 あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが どうすればいいのかわかりません。
422 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 06:30:24.07 ] 部分ピボット選択なら簡単
423 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 06:34:32.94 ] >>421 例えばこんな感じ ideone.com/Hr2yj
424 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 06:36:11.32 ] math.hを習ってないという事はfabs()を自作しないといかんね それから#defineが使えないならC99の可変長配列を使わないといけない
425 名前: ◆EiEUm/qHNk mailto:sage [2011/11/20(日) 06:48:19.27 ] fabs?などというのも習っていません、自作というのもしてわいけないと思います。 配列ぐらいまでの範囲しか習っていませんので、、、 友人はif文を使うなどと言っているのですが、どこに入れれば良いのかもわかりません。
426 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:05:27.87 ] >>425 いや、 >あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが >どうすればいいのかわかりません。 なんでしょ?じゃピボット選択をするしかない fabsの自作をしてはいけないというのなら三項演算子でも使ってプログラム内でやるよ if文でもいいけど
427 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:11:29.83 ] ja.wikipedia.org/wiki/%E3%82%AC%E3%82%A6%E3%82%B9%E3%81%AE%E6%B6%88%E5%8E%BB%E6%B3%95 >対角成分が 0 になる場合には、枢軸選択(ピボット選択)という式の交換を行う必要がある。 >対角成分が 0 になる場合以外でも、対角成分が絶対値が最大の係数になるように枢軸選択を >行ったほうが、解の丸め誤差が少なくなる。ただし、これは行列要素の絶対値が同程度の大きさの >場合のみ成り立ち、スケーリングを行わずに枢軸選択を行うとむしろ精度が悪化する場合もあるため、 >注意が必要である つまり絶対値が最大の係数になるようにピボット選択をしなければならない そのためにはfabs()が必要不可欠であるが、使用不可、自作も不可というのならプログラム内に 関数ではなく直書きするしかない
428 名前: ◆EiEUm/qHNk mailto:sage [2011/11/20(日) 07:20:28.79 ] ピポッド選択をするのにif文、for文だけで対処できないのでしょうか? 先ほど私がロダにあげたソースに付け足していただけるとありがたいのですが、、
429 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:23:42.07 ] >>428 いやできるよ ちょっと待って今他の作業をしてるもんで 他の人があげてくれるかもしれんし それより心配なのはC99の可変長配列を関数間で受け渡し出来るのかという問題だ 可変長配列はalloca()の糖衣構文だと聞いているので、受け渡した時の書き方が よくわからん C89/C++ばかりやってるもんで
430 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:29:00.82 ] seclan.dll.jp/c99d/c99d04.htm (3) 関数引数での使用 関数ブロックの中に、可変長配列を宣言することができますが、もちろん関数の引数にも 使うことができます。例えば、(1)のようにして使用します。可変長配列の中に使う変数は、 そこで使用する以前に他で宣言されていて、コンパイラに対して可視になっている必要が あります。したがって、void sumup(int data[m][n], int m, int n){ ... } のような関数定義は、 ファイルスコープレベルで m や n という整数変数が宣言されていない限りエラーになります。 なんじゃこりゃ 使えんなー 全部main()内に書くか
431 名前: ◆EiEUm/qHNk mailto:sage [2011/11/20(日) 07:44:36.16 ] >>429 うーん、よくわからないですけど C言語ならったばっかりの学生に 作らせているので、main()のなかまでは 干渉しないとは思うのですが、、 すいません、よくわからないことをいって しまって
432 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:48:27.24 ] >>399 >>412 codepad.org/h8G8ODH3 妥当な短さで汚いコードどうぞ。
433 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:09:40.18 ] やっと作業終わった・・・ >>421 ideone.com/VPNB0 c99でかつfabs()を使わない部分ピボット選択ならこんな感じになるよ
434 名前: ◆EiEUm/qHNk mailto:sage [2011/11/20(日) 09:14:05.77 ] >>433 作業お疲れ様です。 学校で試してみます! 本当にありがとうございました
435 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:15:02.50 ] >>430 書いてあるようにvoid sumup(int m, int n, int data[m][n])ならおkって意味だろ
436 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:15:49.91 ] >>432 出力結果が変だぞ tensu :::: 8001 78 64 88 90 8004 34 40 52 67 8013 83 77 89 93 8025 98 81 69 77 8062 56 63 47 23 Student Average:::: 8001 : 80.00 8004 : 48.00 8013 : 85.00 8025 : 81.00 8062 : 47.00 Subject Average:::: Mat : 69.8 Phys : 1.034023498044222881300000000000000000000e+291 Chem : +NAN Eng : 70.0
437 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:18:42.28 ] >>435 void sumup(int data[*][*]. int m, int n); プロトタイプ宣言で先に可変長配列を持ってきたい時はこう書く必要があるみたいだな
438 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:21:00.62 ] >>432 >>436 の原因が分かった sumSubjectの初期化がされていない double sumSubject[4] = {0.0, 0.0, 0.0, 0.0};
439 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:05:09.98 ] >>407 for(i =0; i < x; i++){ for(j =0; j < y; j++){ v=i/2*cos(-15*PI/180)-j/2-*sin(-15*PI/180)+x/2; w=-i/2*sin(-15*PI/180)+j/2*cos(-15*PI/180)+y/2; image_out4[v][w] =image1[i][j];}} 一応こんな感じにやって見ましたが大丈夫でしょうか?
440 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:29:15.04 ] cos(-15*PI/180)とsin(-15*PI/180)の結果自体はループ外で求めておいたら?
441 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:53:36.30 ] >>439 逆にしないと絵に穴が開くのと 有効範囲かどうかのチェックが必要
442 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:01:35.94 ] >>439 >>407 で -theta にしてるのは dest を基準に考えると逆回転になるよって意味だからね
443 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 22:04:08.54 ] >>414 は「nイカ」は「n以下」です。すいません
444 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 22:14:59.92 ] >>442 ありがとうございます。理解しました
445 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:20:51.73 ] >>414 #include <stdio.h> int main(){ int n, sum = 2, i = 2, j; printf("n = "); scanf("%d", &n); printf("素数:"); while (i++ < n) { j = 2; while ((i % j) && j * j <= i) j++; if (i % j) { printf("%d,", i); sum += i; } } printf(" 累積:%d¥n", sum); return 0; }
446 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:54:05.16 ] >>445 そういう処理ならエラトステネスのふるいを使ってみるとか
447 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:06:21.94 ] >>445 累積が間違ってるな
448 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:16:15.20 ] >>445 とってもありがとうございます >>447 多分合ってると思います。15入力してちゃんと41とでるので
449 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:34:47.74 ] 多分素数の2が表示されてないからじゃね
450 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:34:49.52 ] >>448 X printf("素数:"); O printf("素数:2 ");
451 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:01:05.52 ] 雑談すまん。 小さいコードなんで処理を追えるから勉強になります。
452 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:34:13.40 ] >>414 エラトステネスのふるいで。 ideone.com/7CjRm
453 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:19:10.47 ] >>452 ありがとうございます!
454 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:32:02.30 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): 線形リスト構造で、整数を1つ入れる度にソートし、出力するプログラムを作成せよ 配列はitem[11]とnext[11]を用意する。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C言語 [4] 期限:22日まで [5] その他の制限:構造体はなるべく分かりやすくお願いします よろしくお願いします
455 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:58:47.20 ] >>454 問題に書き写し間違いは無い? >配列はitem[11]とnext[11]を用意する。 なら int item[11]; int next[11]; >[5] その他の制限:構造体はなるべく分かりやすくお願いします だと struct list{ int item; strruct list *next; }data[11]; のように、やり方が互いに違うと思うんだが。
456 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 03:06:24.45 ] >>454 structとポインタ習ってます?
457 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 08:40:13.50 ] >>455-456 すみません。構造体云々は間違えてす ポインタでした。 構造体はまだ習ってないです。
458 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 08:56:51.98 ] え、ポインタ?構造体を使わずにポインタを使う線形リスト?
459 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 09:04:00.57 ] >>457 それだと配列nextの扱いはどうなるんだ? 配列itemと内容が同じになりそうなんだが。
460 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 09:13:04.92 ] >>459 勘違いした。
461 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 09:15:29.05 ] item[]はただのコンテナで、next[]に次のitemの要素のインデックスを 保持するとかなするんじゃ? とにかくリストのデータ構造が実現されていれば別に構造体じゃなくてもいい。
462 名前:454 mailto:sage [2011/11/21(月) 10:12:33.80 ] わかりづらくてホントにすみません。 言いたいことは、>>461 さんのであってると思います。
463 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 10:39:56.99 ] >>454 ポインター(int *p など)は使っていない。 ideone.com/bBX9r
464 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 11:12:33.86 ] 挿入ソートかなこれ C99じゃないとコンパイルエラーが出るな
465 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 13:54:05.05 ] >>442 理解したと思っていましたが出できた画像が回転でなくせん断された画像なんですがこのdestっていうのはなんですか?
466 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 14:45:31.32 ] >>465 dest は destination の略 式に変なアレンジしなければ大丈夫
467 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:20:30.58 ] >>466 変にアレンジしてました。今度こそ大丈夫です。ありがとうございました
468 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 16:20:09.76 ] >>464 gcc -std=c89 でコンパイル通るけど、エラーメッセージは?
469 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 18:08:42.75 ] gccじゃなくてbcc32を使ってた 初期化の部分で最低一個データを入れないとエラーになった Eclipse CDTからMinGWで -std=c89 でやると確かにエラーが出ない bcc32が間違ってるのか
470 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 18:25:16.15 ] [2]つぎの関数をつくる void zeroSuppress(char *src, char *dst, char pos, char flg) posは小数点を挿入する位置で1なら1桁目と2桁目の間に 小数点があるものとしてゼロサプレスします。 文字数<=posの場合処理しない。 動きの例 src = "0123456"、 pos = 1 →dst = "123456" src = "0012500" pos = 2 →dst ="12500" src = "0000001" pos = 3 →dst ="0001" src = "000B12" pos = 2 →dst ="000"(Bとそれ以降は無視) flg = 1だと\0でうめる src = "0000001" pos = 3 →dst = "\0\0\00001"
471 名前:デフォルトの名無しさん [2011/11/21(月) 18:55:57.69 ] 何がしたいのか良く判らんのだけど src = "0012500" pos = 3 の場合は?
472 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 20:11:39.05 ] >>470 宿題じゃなさげな・・・ 引数にchar使うよーなのは・・・・かなり特殊な環境に思うんだが。 flg=1だと・・・"\0" "\0" "\000" "01"と解釈でいいんかしら?
473 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 20:20:05.80 ] >>472 宿題ではなさそうってのは同意だが、NULLで埋めて右詰って用途が謎だ nullnullnull0001 って話だと思うよ でもなんか仕様が良く判らんな、 >>471 への回答も無いし flg による動作に一貫性が無い 上司に要求仕様をちゃんと確認した方が良い
474 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 20:39:29.03 ] んー。エスパーしてみるが。 7セグメントLED(小数点付き)の出力用。。。 nulは非表示・・・。 文字数固定。
475 名前:454 mailto:sage [2011/11/21(月) 21:32:43.27 ] >>463 ありがとうございます。 諸事情で今はWinVCしか使用出来ないのですが、 これだとiとjとnextが定義されないのですが、iとjとnextを初期化してもエラーになるのはどうしてでしょうかね?
476 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 21:50:35.50 ] >>470 Bがある場合と、0埋めが判らないので、作りかけ。 ideone.com/ntI1q
477 名前: ◆EiEUm/qHNk mailto:sage [2011/11/21(月) 22:30:36.83 ] [1] 授業単元:C言語 [2] 問題文:3*3の逆行列Aをもとめよ ideone.com/erZBk [3] 環境 [3.1] OS: linux [3.2] コンパイラとバージョン: gcc [3.3] 言語:C言語 [4] 期限:11月22日まで [5] その他の制限:math.h や #difine などは習っていないので使えません。 アップロダにてソースを上げてみたのですが、学校では値が出ました、 あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが どうすればいいのかわかりません。 先日、ガウスの消去法で、行交換のしかたを教えてもらったのですが、上記にあげた ソースにも行交換をしていただけるとありがたいです
478 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 22:54:28.63 ] >>477 3x3 の逆行列なら公式を使うという手もあるぞ 使っちゃダメかもしれないがw
479 名前:454 mailto:sage [2011/11/21(月) 23:11:12.33 ] 宣言初期化全て出来ました お騒がせしてすみません
480 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 23:31:31.09 ] [1] 授業単元:プログラミング技法、配列とポインタ [2] 問題文(含コード&リンク):整数型配列a[10]とb[10]を宣言し、a[10]に任意で数値を10個入力する。 b[10]は初期値として0を代入しておく。 任意で入力された10個の整数のうち、奇数のみ抜き出してb[0]から順番に代入する。 最後に配列bの中身を出力し終了する。このとき0は表示されないようにすること。 [3] 環境 [3.1] OS:win764bit [3.2] コンパイラ名とバージョン:cpad ver2.31 [3.3] 言語:c [4] 期限:11月22日18:00 [5] その他の制限:お願いします
481 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 00:21:56.67 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):(1,10,5) (1,20,10)...というテキストデータを読み込み、一番左の数字(ここでいう1と1)を一つの配列として表示と書きこみをするプログラム。(真ん中も右の数字も同じように処理する) [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まで] または [無期限] のいずれか) 11月23日 15時 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 何でもおk
482 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 00:53:34.84 ] >>480 ideone.com/JDaXT >>481 テキストの仕様は一行なのか、複数行なのか、また数字は必ず3つの組? 一つの配列として表示とはどのように? 書きこみとはどこに?
483 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 00:59:30.49 ] >>482 すみません。 数字は必ず三つの組で、テキストは(1,10,5)改行(1,20,10)と続いていきます。 一つの配列として表示とは、「1,1,1,1,1,1,1,1...]みたいな感じだと思います。 書きこみ先は、新規のファイルにだと思います。
484 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 01:46:05.56 ] >>480 #include <stdio.h> #include <memory.h> //だっけ? int main(void) { int a[10],b[10]; int i,j; memset(b,0,10); for(i=0;i<10;i++){scanf("%d",a[i]);} for(i=j=0;i<10;i++,j++){ if(a[i]&1)b[j]=a[i]); printf("%d\n",b[j]); } return(0); }
485 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 03:21:57.86 ] >>481 まさかこんなに手間取るとは思わなかった…。 ideone.com/2tvoW
486 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 03:31:32.09 ] >>481 すまない。>>485 はバグ有り。 ideone.com/Vd969
487 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 03:41:11.76 ] >>481 ideone.com/IyhAO ./a.out <input で画面出力 ./a.out <input >output でファイル出力 テケトーですまん。
488 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:03:58.50 ] >>486 本当にありがとうございます。 すみませんが、./a.out [infile] [outfile]で実行しても、outfileに書きこまれないのですがやり方が悪いのでしょうか?
489 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:05:37.40 ] >>487 本当にありがとうございます。 申し訳ないのですが、配列の表示の仕方は縦ではなくて横が良かったのですが変更はできますか?
490 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:08:39.61 ] >>481 ですが 付けたしになってしまって本当に申し訳ないのですが、書きこみは左、真ん中、右と一つずつ分けてそれぞれ3つのファイルに出力しないといけないみたいです。すみません。
491 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:16:00.35 ] >>490 ideone.com/U8KVy ファイル開けない理由はよくわからない。 残念ながらこっちの環境では成功してる。
492 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:18:56.73 ] >>491 バグ有り。またやってしまった。 初期化部分修正。 ideone.com/jnTTi
493 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:25:23.29 ] >>491 ありがとうございます! 空のテキストファイルをoutfileにしてるのですが、実行しても何も書きこまれません。 環境は同じはずなのに何でだろう・・・
494 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:35:10.99 ] #include<stdio.h> int main(int a,char** b){ FILE* fp; if(a>1&&fp=fopen(b[1],"w")){ fprintf(fp,"test\n"); fclose(fp); } return 0; } これ ./a.out outfile で文字は入ります?
495 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:35:28.81 ] >>481 ideone.com/ezAg8
496 名前:495 mailto:sage [2011/11/22(火) 04:37:35.16 ] すまん、俺もバグったw
497 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:38:10.24 ] 間違えました。ごめんなさい。 #include<stdio.h> int main(int a,char** b){ FILE* fp; if(a>0){ if(fp=fopen(b[1],"w")){ fprintf(fp,"test\n"); fclose(fp); }} return 0; }
498 名前:495 mailto:sage [2011/11/22(火) 04:40:25.34 ] >>481 ideone.com/WW4aX
499 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 04:51:13.82 ] >>497 文字入りました!
500 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 05:27:12.86 ] >>481 これでダメならもうお手上げです…。 ideone.com/feTX0 485=486=491=492=494=497でした。
501 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 05:36:36.47 ] >>500 何度もありがとうございます。 ただ、上手くいきません・・・ 自分で変える部分は、13行目のfilenameとmodeの部分だけですよね?
502 名前: ◆EiEUm/qHNk mailto:sage [2011/11/22(火) 05:46:49.54 ] だ、だれか逆行列のピボット選択のしかたを教えてください、、、
503 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 05:55:11.87 ] >>501 fcloseをfix。 ideone.com/C01UB 何も変更せずにそのままコンパイルしてください。 コンパイル後の使用方法 (読み込みファイルがtest.txtの場合) ./a.out text.txt test1.txt test2.txt test3.txt
504 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 05:56:03.12 ] 致命的なtypo コンパイル後の使用方法 (読み込みファイルがtest.txtの場合) ./a.out test.txt test1.txt test2.txt test3.txt
505 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 07:42:39.22 ] >>477 ideone.com/OeQkS 一応行列Aが潰れていないか(正則であるか)のチェックを入れた 不要だったらカットして下さい
506 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 07:44:39.27 ] >>502 遅れてすみません 昨晩早く寝たもんで
507 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 08:48:51.75 ] >>471 src = "0012500" pos = 3 → dst = "12500" flg = 1なら"\0\012500" >>474 すごいです。当たりです。
508 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 08:51:53.71 ] >>507 posが何を意味しているのかわからない。
509 名前:508 mailto:sage [2011/11/22(火) 08:53:04.46 ] >>507 言葉で説明して下さい。
510 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 09:13:37.55 ] >>507 クイズかよw
511 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 09:36:01.49 ] >>508 posは小数点が挿入される位置です。 src = "0012500" pos = 3 → dst = "12500" これだと12.500となるため頭の02つは消えます。 flg=1だと\0でうめるので0が\0になります。
512 名前:508 mailto:sage [2011/11/22(火) 09:43:01.14 ] >>511 ごめんなさい。わかりました。
513 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:08:22.93 ] >>470 ,511 'Bとそれ以降は無視'が不明なので作りかけ。 ・英字が含まれていたらpos,flg無効? ideone.com/30Kn3
514 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:17:09.18 ] >>513 数字以外だとその文字とそれ以降を無視します。 たとえば "0234YB00"だと"0234"の文字数4として扱います。 flgは有効です。このときposが1なら"234" posが3なら"0234"となります。
515 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:59:18.96 ] >>514 もしかしたら、'n桁目'というのは右から数えてる?
516 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 13:06:07.92 ] >>515 yes
517 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 13:09:30.49 ] >>516 了解。 >>数字以外だとその文字とそれ以降を無視します。 これで左からだと解釈してた。
518 名前: ◆EiEUm/qHNk mailto:sage [2011/11/22(火) 14:15:05.99 ] >>505 ありがとうございます
519 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 16:10:22.23 ] >>470 ,516 ideone.com/jXo2w
520 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 16:39:34.64 ] >>>470 ,516,519 バグ修正 ideone.com/YquJW
521 名前:481 mailto:sage [2011/11/22(火) 16:41:15.63 ] >>503 ありがとうございます! 何も変更しなかったら成功しました!本当にありがとうございました。
522 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 17:21:51.36 ] >>519 ありがとう。
523 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 18:04:19.44 ] >>482 >>484 ありがとうございました
524 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 18:13:37.81 ] >>519 おーいバグってるぞ ポインタがさかのぼりすぎ Error 00001. 0x140300 (Thread 0x04D8): Pointer arithmetic underrun: 0x0012FF1F-4, that is at offset 3-4 in local block 0x0012FF1C(=[ebp-0x70] @dai45.exe:0x01:00040A) (size 100). | dai45.c line 36: | *pd++ = *ps++; | *pd = '\0'; |> pd -= (pos - '0'+2); | | while (pd >= dst) { /* 不要な0をnullにする */ Call Tree: 0x004012AA(=dai45.exe:0x01:0002AA) dai45.c#36 0x0040140A(=dai45.exe:0x01:00040A) dai45.c#63 0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA) ------------------------------------------ Error 00002. 0x140300 (r) (Thread 0x04D8): Pointer arithmetic underrun: 0x0012FF1F-4, that is at offset 3-4 in local block 0x0012FF1C(=[ebp-0x70] @dai45.exe:0x01:00048A) (size 100). | dai45.c line 36: | *pd++ = *ps++; | *pd = '\0'; |> pd -= (pos - '0'+2); | | while (pd >= dst) { /* 不要な0をnullにする */ Call Tree: 0x004012AA(=dai45.exe:0x01:0002AA) dai45.c#36 0x0040148A(=dai45.exe:0x01:00048A) dai45.c#72 0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
525 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 18:18:09.52 ] codepad.org/Ufh9JE03 の実数の出力が上手くいきません どうしても「5」ではなく「0」と出力されてしまいます 教えて下さい
526 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 18:49:35.28 ] >>525 X Jissu(double j) : Fukusosu() {} O Jissu(double j) : Fukusosu(j,0) {}
527 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 19:52:24.02 ] >>526 なるほど!そういうことでしたか ありがとうございます
528 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:06:47.97 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): iup.2ch-library.com/i/i0484725-1321959355.jpg iup.2ch-library.com/i/i0484726-1321959355.jpg iup.2ch-library.com/i/i0484737-1321959884.jpg [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:2011年11月24日 [5] 解答例がある課題はそれをそのまま使っていただけたらと思います。 よろしくお願いします。
529 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:20:47.32 ] >>528 できれば、画像ファイルじゃなくて文字でくださいな。
530 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:46:07.43 ] >>528 そのまま使っていただけたらって、打ち込めって事?
531 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:48:23.68 ] [1] 授業単元:プログラミングI [2] 問題文(含コード&リンク):角度0度から90度までのsin(x)の値を1度刻みで表示する プログラムを作りなさい。 πの値は3.141592ではなく、M_PIを用いること。 [3] 環境 [3.1] OS: (Windows/Linux/等々) windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) c言語 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 2011年11月22日 23:50まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) for文またはwhile文を用いて答える。 プログラミング初心者です。いろいろ調べたのですが、答えが出ないので教えてください。お願いします。
532 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:51:53.69 ] テーブルにあらかじめデータを格納しておいて順番に表示
533 名前:528 mailto:sage [2011/11/22(火) 20:54:47.30 ] >>529 >>530 すいません!訂正しました。よろしくお願いします。 [1] 授業単元:C言語 [2] 問題文(含コード&リンク): iup.2ch-library.com/i/i0484725-1321959355.jpg iup.2ch-library.com/i/i0484726-1321959355.jpg 解答例等>>534 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:2011年11月24日 [5] 解答例がある課題はそれをそのまま使っていただけたらと思います。
534 名前:528 mailto:sage [2011/11/22(火) 20:55:47.56 ] 課題2 解答例 struct cell *makeNullList(void) { struct cell *list; list = (struct cell*)malloc(sizeof(struct cell)); if (list == (struct cell*)NULL) { fprintf(stderr, "makeNullList: can not allocate memory for new list.\n"); exit(1); } list->next = (struct cell*)NULL; return list; } 課題3 解答例 struct cell *nextCell(struct cell *target, struct cell *list) { struct cell *next = (struct cell*)NULL; if (target != (struct cell*)NULL) { next = target->next; } return next; }
535 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:55:52.15 ] [1] 授業単元:画像処理 [2] 問題文(含コード&リンク): 逆アフィン変換で幾何学変換を行うプログラムを作成せよ。2つの補間法(バイリニア,バイキュービック)を使用すること codepad.org/W47NMmWq [3] 環境 [3.1] OS:windows xp [3.2] コンパイラ名とバージョン: windows visual studio2008 [3.3] 言語: c++ [4] 期限:2011年11月24日 13:00 [5] バイリニアはなんとか作成ができたのですがバイキュービックが全然理解できません。 貼ってあるのはバイリニアのプログラムです。
536 名前:528 mailto:sage [2011/11/22(火) 20:56:42.46 ] >>534 の続き 課題9 解答例 struct cell *locateCell(int data, struct cell *list) { struct cell *current; current = firstCell(list); while ((current != (struct cell*)NULL) && (retrieveCell(current, list) != data)) { current = nextCell(current, list); } return current; } プロトタイプ宣言 struct cell *makeNullList(void); struct cell *nextCell(struct cell *, struct cell *); struct cell *firstCell(struct cell *); struct cell *endCell(struct cell *); struct cell *previousCell(struct cell *, struct cell *); struct cell *insertCell(int, struct cell *, struct cell *); struct cell *deleteCell(struct cell *, struct cell *); int retrieveCell(struct cell *, struct cell *); struct cell *locateCell(int, struct cell *); void deletelist(struct cell *); void printlist(struct cell *);
537 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:58:22.39 ] >>531 こういうこと? ideone.com/Rjktr
538 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:06:46.15 ] >>537 はい!これを探してました! 助かりました、ありがとうございます。
539 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:07:26.57 ] 探すw
540 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:11:39.21 ] >>538 出遅れた orz 一応貼っておく。 ideone.com/0x4zz
541 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:28:37.68 ] [1] プログラミング応用 [2]問1 キーボードからUser構造体の情報(ID、ニックネーム、生年月日)を1名分入力し、 その内容を表示するプログラムを作成せよ 注:ニックネームにスペースを含めてはいけない scanf()中の文字列変数の指定方法に注意 指定方法 User A; scanf("%s %s %d/%d/%d", A.ID, A.name, &A.year, &A.month, &A.day); 問2 問1のプログラムを改造し、複数名のユーザー情報をキーボードから入力し、 最初のユーザーと同じ誕生月のユーザーの、「生年月」とニックネーム の一覧を出力するプログラムを作成せよ 注:入力するユーザー数は固定値でよい(5名程度) 入力する情報はダミーでよい [3] 環境 [3.1] W7 [3.2] Visual C++ 2010 Express [3.3] どちらでも可 [4] 2011年11月25日22:00 よろしくお願いします。
542 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:44:21.02 ] >>531 #include <math.h> #ifndef M_PI #define M_PI 3.1415926 #endif int main(void) { int i; for (i = 0; i <= 90; i++) printf("%d %f\n", i, sin(i / 180.0 * M_PI); return 0; } コンパイルはgcc a.c -o a.out -lm 実行は./a.outで。
543 名前:542 mailto:sage [2011/11/22(火) 21:45:54.21 ] あー。ミスってるけどいいやw
544 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:55:34.15 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):5 つの要素を持つdouble 型配列vx[] に対し て,その各要素の正負を反転するプログラムを, ポインタ演算を用いて作成せよ.例えばvx[] が {1.1, 2.2, -3.3, 4.4, -5.5}であったとき,プログ ラムの結果vx[] は{-1.1, -2.2, 3.3, -4.4, 5.5} となる.ただし,プログラムは以下の要件を満たすこと とする. 解答例等 5 つの実数を入力してください vx[0] = 1.1 vx[1] = 2.2 vx[2] = -3.3 vx[3] = 4.4 vx[4] = -5.5 正負を反転させました。 vx[0] = -1.100000 vx[1] = -2.200000 vx[2] = 3.300000 vx[3] = -4.400000 vx[4] = 5.500000 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:2011年11月24日 9:00 [5] double 型配列vx[] はmain 関数内で宣言し,以下 の実行例のように各要素の値をユーザに入力させよ
545 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:56:30.19 ] >>544 続き [5] • main 関数内でポインタ変数vxp を宣言し,vxp を 用いたポインタ演算によって配列vx[] の各要素の 値を書きかえること. • ポインタ演算で正負を反転させる際には,添字演 算子[] は使用しないこと. • vx[] の5 つの要素すべてを書きかえてから,最後 にその結果を表示すること
546 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:58:59.18 ] なんで今日はこんなに宿題おおいん
547 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:03:42.97 ] >>541 値チェック無し。 1. ideone.com/xw2qm 2. ideone.com/JQLbB
548 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:07:29.00 ] 1] 授業単元:画像処理 [2] 問題文(含コード&リンク): text.txtを読み取って0なら空白を、1なら*を表示するプログラム(test.c)がある。 これを改良してtest.txtをtext.bmpに変換するプログラムを作れ。 (ただし、0を白色、1を黒色とする。) test.c codepad.org/Xk3b2CZq /********test.txtの中身********** 11 6 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 ******************************/ [3] 環境 [3.1] OS:windows7 32bit [3.2] コンパイラ名とバージョン: Borland5.51 [3.3] 言語: c [4] 期限:2011年11月27日 17:00 [5] windouwsAPIなど、複雑なものは使わずにお願いします。
549 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:08:00.42 ] >>546 明日休みだからじゃね?
550 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:15:56.77 ] >>544 こんな感じでどうでしょう? ideone.com/z9cu3
551 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:28:27.17 ] >>>544 付け加えときます。すいませんポインタの問題です
552 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:34:44.64 ] >>548 bmpのフォーマットは?
553 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:35:54.81 ] >>544 ideone.com/85dMC
554 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:36:46.02 ] >>551 ,>>544 ideone.com/vQJxc
555 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:38:21.08 ] >>544 ideone.com/9sV1I
556 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:41:05.68 ] >>552 4bitでお願いします
557 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 23:10:52.76 ] >>528 ideone.com/8If4Q
558 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 23:15:30.35 ] >>556 構造体は自前?ヘッダ?
559 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:03:06.03 ] >>558 borland5.11にあるヘッダファイルなら使ってもいいと思います
560 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:04:33.19 ] >>558 自前で簡単にできそうなら、できればそれでお願いします
561 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:46:12.24 ] >>546 いや、嫌がらせだよ。
562 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 01:26:51.10 ] >>560 一応聞いておくけどbmpのフォーマットはwindows用でいいんだよね…?
563 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 01:41:41.66 ] >>562 はい、windowsでお願いします
564 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 04:30:34.72 ] >>563 ideone.com/V1cI0 bcc32コンパイル動作確認済み。
565 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 04:44:13.43 ] >>564 すまない、白と黒が逆だった ideone.com/jXvdI
566 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 09:05:42.47 ] [1] 授業単元:プログラミング演習 2 [2] 問題文(含コード&リンク) 行列の積を計算する関数multの関数プロトタイプ宣言が以下のように記述されている void mult(double *ma, double *mb, double *mc, int n); いま、定数Nの値がmain関数の外で#define N 3 と定義されている。N×Nの正方行列maとmb,そしてmcはmain関数の中で double ma[N][N]; double mb[N][N]; double mc[N][N] = { 0.0 } ; と定義されている。このとき関数multを次のように呼び出して行列の積mc=ma • mb を計算したい。 mult((double *)ma, (double *)mb, (double *)mc, N); 関数multをブラケット演算子[]なしで書き上げなさい。 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:11月23日(出来れば早めにお願いします)
567 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 10:54:47.22 ] >>565 ありがとうございます! でもそのプログラムはどうやって使えばいいのでしょうか? test.txtと同じディレクトリでコンパイルして実行しても usage: program.exe file-IN file-OUTと出るだけです。
568 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 11:41:40.55 ] >>566 ideone.com/XJ1QR
569 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 11:50:38.44 ] >>566 >>568 さんのとは少し違う方法で codepad.org/zc9gRFSd
570 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 11:55:56.47 ] >>557 ありがとうございます!
571 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 14:46:23.20 ] >>567 変えました…。これでいけるはずです…。 ideone.com/hScrG ちなみに前のは、cmd.exeから、 cd [プログラムの入ってるフォルダの絶対パス] [プログラムの名前] test.txt test.bmp とやることで入力、出力を指定できます。
572 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:17:02.93 ] >>571 できました、ありがとうございます! ちなみにwindef.hを使えばもっと簡単にできるのですか?
573 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:23:35.21 ] すべての環境でビットマップ用にヘッダ群が用意されてるわけじゃないだろうからねぇ・・・ WindowsSDKが入ってるならWingdi.hにBITMAPINFOHEADER等が用意されているけど。
574 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 16:30:43.65 ] >>573 そうなんですか、ありがとうございました!
575 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:39:05.18 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):変数内の文字列変換 www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4878 [3] 環境 [3.1] OS:指定なし [3.2] コンパイラ名とバージョン:指定なし [3.3] 言語:C [4] 期限:2011年11月24日 [5] その他の制限: よろしくお願いします
576 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:54:22.29 ] >>575 こういうこと? codepad.org/f5RIxMUG
577 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:55:04.04 ] >>575 解いてみようと思ったけど、shift-JIS?みたいで読めないな。 テンプレにあるアップローダーならokだと思うが。
578 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 19:49:44.56 ] >>577 >解いてみようと思ったけど、shift-JIS?みたいで読めないな。 んなこたぁない
579 名前:566 mailto:sage [2011/11/23(水) 19:54:21.48 ] >>568 の方のwarningを消すにはどうすればいいでしょうか?
580 名前:デフォルトの名無しさん [2011/11/23(水) 20:04:22.37 ] [1] 授業単元: 実数型変数の精度 [2] 問題文(含コード&リンク): 実数型の形式は以下のものとする 符号部(1ビット) 指数部(nビット) 仮数部(mビット) 以下のプログラムの実行結果から実数型変数の形式を類推する方法の検討 ideone.com/cLgGK [3] 環境 [3.1] OS:unix [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: c [4] 期限:
581 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:09:52.13 ] >>579 ideone.com/RSqST
582 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:26:29.99 ] >>580 >>373 ,382
583 名前:デフォルトの名無しさん [2011/11/23(水) 21:47:07.73 ] >>582 ありがとうございます あと、指数部を符号なし整数としてオフセットを用いて 表現する方法を教えてください。
584 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:55:45.61 ] 初心者です、お願いします。 新規にフォームアプリケーションプロジェクトを作成すると 左のソリューションエクスプローラーの中に、 「ソースファイル」と「ヘッダーファイル」があります。 map関数を使いたいのですが、 #include <map>は「stdafx.h」に書けばいいですか? また、 「Debug::WriteLine」を使いたいので「using namespace System::Diagnostics;」と書きたいのですが、 「stdafx.h」に書けばいいですか?
585 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:56:48.69 ] >>584 >>1
586 名前:584 [2011/11/23(水) 22:03:04.02 ] 相談室に行ってきます。
587 名前:583 [2011/11/23(水) 22:08:10.25 ] 追記:wikiではよく分からなかったので、噛み砕いて教えて下さい
588 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:02:02.66 ] >>587 1)Wikipediaの当該箇所をコピペ (宿題を提出する上では理解する必要なない) 2)奇数から偶数になるときの値から-1〜+1で提出すればよし。 だいぶ噛み砕いたつもり。
589 名前:デフォルトの名無しさん [2011/11/23(水) 23:15:45.09 ] >>588 wikiのだとオフセットを用いて表現する、という条件が満たされていないような・・・
590 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:17:50.19 ] オフセット=バイアスね。
591 名前:デフォルトの名無しさん [2011/11/23(水) 23:36:01.60 ] >>590 ありがとうございます あと、 >>580 のfloatをlong doubleに変えた場合も同じやり方でいいんでしょうか?
592 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:56:39.38 ] >>591 あたり前だけど、試してから質問すればいいんでないかい?
593 名前:デフォルトの名無しさん [2011/11/24(木) 00:05:41.71 ] >>592 試してみたら、仮数部が63ビットとかになったんですが。 多分合ってないと思うんですけど、どうでしょうか?
594 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:14:38.70 ] >>587 X wiki O Wikipedia
595 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:26:01.85 ] sizeof(long double) がおいらの環境で16(128ビット)なんでアリなんじゃないですかねぇ。
596 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:32:53.27 ] ああ、宿題の範囲こえてるからどーでもいーんじゃw? printf("%Lf", long_double_value); ってしないと正しく表示しないかも。
597 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:33:59.93 ] [1]データ構造とアルゴリズム [2] 以下の関数を作成しなさい。 llist_t reverse(const llist_t ls); 連結リストlsの要素を逆順に並べ替えた連結リストを新たに作成して返す。 補足: typedef struct node { int data; struct node *next; } node_t; typedef node_t *llist_t; [3] Windows [3.1]windows 7 [3.2] EasyIDEC Ver 0.0.9.0 [3.3] C言語 [4] 11月25日 [5] 再帰呼び出しを必ず用いる。
598 名前:デフォルトの名無しさん [2011/11/24(木) 00:40:22.85 ] >>595 色々と調べたら仮数部は113ビットらしいんですが・・・ >>596 どういうことですか?
599 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:41:48.28 ] >>597 多分、ノード作成用の関数を教わっているはずなので教えてくださいな。
600 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:43:33.70 ] >>599 すみません書き忘れてました。 int *allocInt(void){ return (int *)malloc(sizeof(int)); } です。
601 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:44:02.73 ] printf("%d", [charからint]); printf("%f", [floatかdouble]); printf("%Lf", [long double]); ということ。
602 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:49:48.21 ] >>599 ごめんなさい node_t *allocNode(){ return (node_t *)malloc(sizeof(node_t)); } でした。
603 名前:デフォルトの名無しさん [2011/11/24(木) 00:54:38.19 ] >>601 %Lf でやっても変わりませんでした。
604 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:57:50.54 ] >>603 コードの良し悪しの場合はコード全部UPすべし
605 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 01:01:44.88 ] 【質問テンプレ】 [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク):標準出力から文字型の配列str[3][20]に3つの文字列を入力し入力した順番に標準出力する。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: 不明 [3.3] 言語: C [4] 期限: 2011年11月4日8時まで [5] その他の制限: 入力ではscanfでなくfgetsとsscanfを利用しないといけないみたいです。 それでは宜しくお願いします
606 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 01:05:18.97 ] >>605 ideone.com/hLWBm
607 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 01:06:17.35 ] ごめん、sscanf使ってないから>>606 は無かったことにして下さい。
608 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 01:22:09.73 ] >>605 マルチ? C言語なら俺に聞け(入門編)Part 92 hibari.2ch.net/test/read.cgi/tech/1320933306/ #545,557
609 名前:デフォルトの名無しさん [2011/11/24(木) 01:26:14.15 ] >>604 ideone.com/vfLZJ ちなみにunixで実行したらsizeofは16ビットでした
610 名前:デフォルトの名無しさん [2011/11/24(木) 01:50:27.64 ] 【質問テンプレ】 [1] 授業単元:情報技術U [2] 問題文(含コード&リンク): 以下の2つの要件を満たす、3行3列の行列の積を計算し、表示するプログラムmultiply.cを作成せよ。 (1)整数型の行列A,Bおよびそれらの行列積A*Bを、以下の配列名で宣言する(A,Bの値は各個人で自由に設定)。 int matrix_a[3][3]={{1,2,3},{4,5,6},{7,8,9}};/*行列A*/ int matrix_b[3][3]={{10,11,12},{13,14,15},{16,17,18}};/*行列B*/ int matrix_multiply_a_by_b[3][3]={{0,0,0},{0,0,0},{0,0,0}};/*計算結果代入用の行列*/ (2)行列の積A*Bのi行j列目の要素の計算を、for文を用いて行うこと。 [3] 環境 [3.1] OS: Wiンdows Vista [3.2] 不明 [3.3] 言語: C [4] 期限: 11月25日 お願いします
611 名前:575 mailto:sage [2011/11/24(木) 02:37:26.92 ] >>576 作成ありがとうございました でもこれって型を変えて表示しているだけですよね ASCIIコードから対応する文字に変換ってできませんかね?
612 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 03:13:22.18 ] >>610 #include <stdio.h> #define f(x) for (x = 0; x < 3; x++) { int main(void) { int matrix_a[3][3]={{1,2,3},{4,5,6},{7,8,9}};/*行列A*/ int matrix_b[3][3]={{10,11,12},{13,14,15},{16,17,18}};/*行列B*/ int matrix_multiply_a_by_b[3][3]={{0,0,0},{0,0,0},{0,0,0}};/*計算結果代入用の行列*/ int i,j,k; f(i)f(j)f(k) matrix_multiply_a_by_b[i][j] = matrix_a[i][k] * matrix_b[k][j]; }}} f(j)f(i)printf("%5d", matrix_multiply_a_by_b[i][j]);} printf("\n");} }
613 名前:デフォルトの名無しさん [2011/11/24(木) 03:25:54.90 ] >>597 ttp://ideone.com/rojQm なんか美しくない
614 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 03:36:23.35 ] >>613 こんな夜中までありがとうございます 参考にさせてもらいます
615 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 06:01:53.55 ] >>587 >>373 のコードだけではわかりにくいと思うので自分の勉強も兼ねて以下のような コードを書いてみた ideone.com/aAWMf (dec)はdecimal(10進数)、(bin)はbinary(2進数)の意味なのでよろしく
616 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 07:28:18.76 ] ちょっと前のほうのレスを見て 宿題片付けますwiki なんてものが存在するのかと一瞬勘違いした
617 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 10:06:41.81 ] >>605 こういう事? #include <stdio.h> int main(void){ char str[3][20], s[100]; int i, w; printf("3つの文字列を入力して下さい(例:abc defgh ijkl)¥n"); fgets(s, sizeof(str[i]), stdin); w = sscanf(s, "%s %s %s", str[0], str[1], str[2]); printf("¥n"); for (i = 0; i < 3 && i < w; i++) printf("入力した文字列の%d番目は%sです¥n", i, str[i]); return 0; }
618 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 10:17:07.28 ] \を¥で書く奴はいつもアホなコードだなあ
619 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 10:30:42.17 ] >>615 なんか例外吐いて落ちるんですけど(Windows XP + VC)
620 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 11:04:01.58 ] >>611 snprintfとprintfを使う問題ですよね? ASCIIコードから対応する文字に直接変換出来ないこともないけど、 それだとsnprintfを使う必要性がないと思います。 問題の趣旨がsnprintfを使って変換することなので、これでいいのではないのですか?
621 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 11:33:34.44 ] >>619 どんな例外かわかる? 数値があふれるのを放置してあるからかなあ? ループの範囲を小さくしてあふれない程度でやってみるとか...
622 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 11:35:08.39 ] 何処でオーバーフローするかを確認する宿題なんじゃねぇの? 例外ハンドラーを組み込むとかすれば良いんじゃね?
623 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 11:49:19.50 ] >>621 CodeGuardのログ貼ってみますね Error 00001. 0x400000 (Thread 0x0780): Exception 0xC0000091: | dai52.c line 75: | printf("%.1f => frac (bin) 1+.%s, exp (dec) %d-127=%d\n", | x, fracstr, ie3f.ff.exp, decexp); |> printf("((dec) %.1f = (bin) 1.%s*10^%s)\n\n", x, fracstr, expstr); | } | Call Tree: 0x00401378(=dai52.exe:0x01:000378) dai52.c#75 0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA) Exception 0xC0000091というのは浮動小数点オーバーフロー
624 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 17:52:48.94 ] [1] 授業単元:リスト構造体 [2] 問題文(含コード&リンク): enqueue()とdequeue()を用いて実行結果が Please input E(登録) or D(削除): E Input number and name: 8 Nakamura Please input E(登録) or D(削除): E Input number and name: 3 Saito Please input E(登録) or D(削除): D Number=8 Name=Nakamura Please input E(登録) or D(削除): D Number=3 Name=Saito Please input E(登録) or D(削除): D No Data! Please input E(登録) or D(削除): E ・ ・ ・ のように動作するプログラムを作成せよ [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:VC2008 [3.3] 言語:C [4] 期限:11月25日 [5] その他の制限:
625 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 17:55:25.48 ] [1] 授業単元:C言語 [2] 問題文:123, 1.23, 1.2.3という数字を入力したとき、 整数、小数、使用できない数字という分類に分けよ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: 不明 [3.3] 言語: C言語 [4] 期限:[2011/12/5] よろしくお願いいたします
626 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 18:40:10.39 ] >>625 ideone.com/unLuq
627 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 19:53:51.73 ] >>626 ありがとうございます! ちなみに、もしC++の場合だとどう変更になりますでしょうか? 出来たらやるという課題としてC++の場合があるのですが……
628 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 19:55:21.14 ] >>624 FIFOだな ・ポインタリンクで書くべきか配列のリングバッファで書くべきか判断できる? ・名前の文字数は無制限?
629 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 20:18:55.27 ] >>628 ポインタリンクで 名前の文字数は半角10文字までです リスト構造体って難しい
630 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 21:58:51.42 ] >>627 ideone.com/OEtpd
631 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 21:59:41.37 ] >>630 重ね重ね感謝いたします ありがとうございました!
632 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 22:06:39.78 ] >>629 見ての通りFIFOのルートをグローバル変数としている 回避するには enqueue() と dequeue() に node** pptop を渡せば良い、お勉強する気が有るなら書き直すのも良いだろう ttp://codepad.org/bSCAqAQ7
633 名前: ◆QZaw55cn4c mailto:sage [2011/11/24(木) 22:16:03.67 ] >>624 hibari.2ch.net/test/read.cgi/tech/1313183984/25
634 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 22:23:40.74 ] >>632 なるほど さて、明日参考書を買ってくるか
635 名前:デフォルトの名無しさん [2011/11/24(木) 22:25:41.16 ] 問 処理系によってはdoubleとlong double(さらに、処理系によってはfloatとdoubleとlong double)の形式が同一のものがあるが、そのようにするメリットについて述べよ。
636 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 22:28:26.92 ] >>635 コンパイラ作るときに楽だから。
637 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 22:38:05.90 ] >>622 >例外ハンドラーを組み込むとかすれば良いんじゃね? 確かにそうなんだがかなり環境依存っぽいので、やる気なくしたw 詳しい人がいたら、例外処理を加えていただけるとw >>623 なんか行数が変わってるw Winでコンパイルするのに#includeとか足してある? もしprintfを呼んだ時点で死んでるなら、FLT_MAXと比較してprintfを呼ばないように すればいいかも?
638 名前:635 [2011/11/25(金) 00:10:19.22 ] >>636 レポートにまとめるんで、出来れば具体的にお願いします。
639 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:43:20.24 ] >635 そういうコンパイラあるの?
640 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 01:17:29.83 ] >>635 質問テンプレでそーゆーのは書こうね。 1)C言語は処理系依存 2)処理系が自然に扱える不動小数点数が限られている場合がある。 3)C言語処理系の作成者は環境にな形式を選択できる。 ↓ 4)コンパイラ製作者が楽をでき、処理系も素直になる。 5)どーしても特定のフォーマットが欲しければプログラマが作ればよい。 具体的に書いた。プログラム書く以外はあまりコメしたくないのん。 まとめるのは>>638 さんがやるよーに受け取った。 「処理系依存」とか「未定義」がなぜC言語に存在するかも調べると、 理解深まるよ。
641 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 03:22:56.80 ] [1] 授業単元: プログラミング基礎 [2] 問題文(含コード&リンク): 半径5cmの円の面積[cm^2]を求めるプログラムを作成し、 小数点以下5桁まで解を求めよ。 [3] 環境 [3.1] OS: Windows7 [3.2] gcc [3.3] 言語:C プログラミング初心者です。よろしくお願いいたします。
642 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 04:00:13.58 ] >>641 #include <stdio.h> #define PI 3.14159265358979323846 #define menseki(r) ((PI)*r*r) int main() { double r = 5; printf("半径5cmの円の面積 = %.5lf\n",menseki(r)); return 0; }
643 名前: ◆QZaw55cn4c mailto:釣り? [2011/11/25(金) 08:28:40.46 ] >>642 >%.5lf\n l は不要。
644 名前: ◆QZaw55cn4c mailto:釣り? [2011/11/25(金) 08:31:46.59 ] >>617 >printf("3つの文字列を入力して下さい(例:abc defgh ijkl)¥n"); >fgets(s, sizeof(str[i]), stdin); i が未初期化。 というかループに書くのわすれたんですね。
645 名前: ◆QZaw55cn4c mailto:釣り? [2011/11/25(金) 08:35:24.39 ] >>612 >printf("\n"); 普通 putchar('\n'); とかく。 というか、なんだかすごいマクロの使い方ですね。せめて { の数をあわさないと、うちのくそエディタが狂うんですけど。
646 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:15:23.24 ] c言語の自由課題でトランプゲームやろうと思うんですけどいい案ないですか?
647 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:25:45.13 ] 戦争
648 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:28:52.98 ] >>646 ・ポーカーの点数計算 ・七並べで、複数プレーヤーが最善手を選択した時の順位 ・神経衰弱で、3手前しか覚えてないPCとの対戦
649 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:29:19.46 ] >>647 どうやればうまくいきます?
650 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:31:09.31 ] >>648 その中だったら七並べやりたいんですけど初心者で。詳しく教えてください。
651 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:34:28.82 ] >>650 【初心者歓迎】C/C++室 Ver.76【環境依存OK hibari.2ch.net/test/read.cgi/tech/1312621728/
652 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:41:11.26 ] >>646 C言語でトランプゲームを作りたい hibari.2ch.net/test/read.cgi/tech/1189892773/
653 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 11:14:40.01 ] 643 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん 644 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん 645 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
654 名前: ◆QZaw55cn4c mailto:sage [2011/11/25(金) 12:28:05.59 ] >>653 へー、そういう書き込みでレス削除されたことになる専用ブラウザがあるんだ?
655 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 12:35:27.21 ] 654 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
656 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 12:38:34.34 ] 自己愛の奴はあぼーんされると一番こたえるらしいな
657 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 12:49:05.54 ] >>653 ,655-656 餌をやるな
658 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 12:56:53.68 ] プログラマーの美意識? aakitekucha.seesaa.net/?1322190425
659 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 13:58:28.16 ] [1] 授業単元:(文字列) [2] 問題文(含コード&リンク):文字列st の中に含まれる文字ch の個数(含まれて いなければ0 とする)を返す関数 int str_chnum(const char st[], int ch) を作成せよ.以下の実行例のように,関数の動作を確認 できるmain 関数も作成すること. 【注意】scanf で文字列を入力させた後にgetchar 関 数で文字を入力させたい場合,getchar で文字を入力 させる前に scanf("%*c"); などとして,バッファに残った改行コードを読み捨て ておく必要がある. のように動作するプログラムを作成せよ [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:11月25日 17:00 [5]例 文字列を入力してください:KoKo 検索する文字を入力してください:o その文字は2 個含まれています。 その他の制限: ポインタは習っていません
660 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 14:06:32.01 ] #include <stdio.h> int str_chnum(const char st[], int ch) { int i, num; for(i = num = 0; st[i]; i++) if(st[i] == ch) num++; return num; } int main(void) { char st[256]; int num, ch; printf("文字列を入力してください:"); scanf("%s", st); scanf("%*c"); printf("検索する文字を入力してください:"); ch = getchar(); num = str_chnum(st, ch); printf("その文字は"); if(num) printf("%d 個含まれています。\n", num); else printf("含まれていません。\n"); return 0; }
661 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 15:23:02.55 ] >>659 問題張る前にスレの中読まないの?
662 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 15:59:16.98 ] 【質問テンプレ】 [1] 授業単元:プログラミング入門(C) [2] 問題文(含コード&リンク): 無限ループを用い、 1〜100までの数値を任意に10回分だけ入力し、その度数分布を求めよ。 ただし、for文は用いず、while文で。度数分布は5等分して表示せよ。(例えば1~20に4個 21~40に3個 41~60に2個 61~80に1個 81~100に0個) [3] 環境 [3.1] OS:(Windows/Linux/等々) [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 今週末 [5] その他の制限:for文を使わずwhile文でやれと言われています。度数分布は5等分で 始めたばかりなので、初心者同然の知識しかなく、プログラミング入門レベルです。 よろしくお願いします。
663 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 16:00:50.48 ] もうしわけありません記入漏れがありました OS環境はおそらくLinuxではないかと思うのですが、よくわかりません よろしくお願いします。
664 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 16:50:21.43 ] >>662 ideone.com/C4Qdi
665 名前:デフォルトの名無しさん [2011/11/25(金) 19:08:07.59 ] [1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク): 図のように33個の節点が抵抗で繋がれた電気回路がある。 ただし、全ての抵抗の抵抗値は同じである。 ここで、AB間に5Vの電源を接続し、Aの電位を5V、Bの電位の0Vとしたとき、残りの31点の電位を計算せよ。 ttp://iup.2ch-library.com/i/i0487130-1322215626.jpg (注) 回答は、 V0=ww V1=xx V2=yy V3=zz ... [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2011/12/01 [5] その他の制限: キルヒホッフの法則・ガウスの消去法を使う
666 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 22:38:13.87 ] [1] 授業単元: C言語プログラミング [2] 問題文(含コード&リンク): 為替レート(rate)、円(yen)、ドル(doll)、セント(cent)(いずれも整数)からなる構造体moneyの ポインタを引数とし円からドルへの変換を行う関数exchangeを作成せよ. 関数exchangeのプロトタイプ宣言 void exchange(struct money *mp); 上の関数を使ってrateが80円のときの25800円のドルとセントを求めるプログラムを作成せよ。 なお、メインプログラム内に以下のような初期値つきの構造体変数宣言を使うこと. struct money m = { 80, 25800, 0, 0 }; 実行例 $./kadai1 322 doll 50 cent ヒント 「 struct money { // メンバー }; exchange(&m); // 擬似的参照渡しになるので,結果はmoneyに返る 」 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:2011年11月27日まで [5] その他の制限: 問題文で使われている宣言とヒントとして提示されているものを使っての解答をよろしくお願いします。
667 名前:デフォルトの名無しさん [2011/11/26(土) 00:04:26.81 ] >>662 #include <stdio.h> #include <string.h> const int kParameter = 100; const int kRange = 20; #define NELEMS(array) (sizeof(array) / sizeof(array[0])) int main() { int i; int count = 0; int dist[kParameter / kRange]; memset(dist, 0, sizeof(dist)); while (1) { int n = rand() % kParameter; printf("%d\n", n + 1); ++dist[n / kRange]; if (++count >= 10) break; } for (i = 0; i < NELEMS(dist); ++i) { printf("%3d - %3d: %d\n", kRange * i + 1, kRange * (i + 1), dist[i]); } return 0; }
668 名前:デフォルトの名無しさん [2011/11/26(土) 00:04:41.67 ] >>666 #include <stdio.h> struct money { int rate; int yen; int doll; int cent; }; void exchange(struct money *mp) { mp->doll = mp->yen / mp->rate; mp->cent = 100 * (mp->yen % mp->rate) / mp->rate; } void print(struct money *mp) { printf("%d doll %d cent\n", mp->doll, mp->cent); } int main() { struct money m = { 80, 25800, 0, 0 }; exchange(&m); print(&m); return 0; }
669 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 00:43:55.98 ] [1] 授業単元:PIC制御 [2] 問題文(含コード&リンク):16f819にてAD変換せよ [3] 環境 [3.1] OS: Windows [3.2] 不明(PicKit2でPICに書き込みしてます) [3.3] 言語: C [4] 期限: 11/28 [5] その他の制限 #include<16f819.h> #device ADC=10 #use delay (clock=8000000) #define A_ANALOG 0x80 void port_ini(void); float data; void main() { #byte OSCCON=0x8f setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(A_ANALOG); port_ini(); while(1) { 省略 } void port_ini(void) { set_tris_a(0b00000110); set_tris_b(0b00000000); } コンパイルしたら成功しますがPICに書き込み成功後、AD変換できてません。 プログラム上の間違いがありましたら指摘お願いします。
670 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 00:49:19.04 ] [1] 授業単元:C言語演習 [2] 問題文(含コード&リンク): #include<stdio.h> int main(void) { int i=0; char *ptr; char str[128]; ptr = str; scanf("%s",&str); while(*ptr++){ i++; } printf("%d\n",i); } 上記の入力したテキストの文字数を表示するプログラムの読み込み部分をファイル処理に変更せよ。 fgetc() 関数を使用し、コマンドラインにファイル名が指定できるようにすること。 ただし、ファイル名を指定しない場合は標準入力とする。 ファイルが見つからなかった時はエラーメッセージを出し、プログラムを終了する。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ:gcc [3.3] 言語:C言語 [4] 期限:2011年11月27日(日曜) 23:59 [5] その他の制限:読み込むテキストファイル数は1つです。よろしくお願いします。
671 名前:デフォルトの名無しさん [2011/11/26(土) 01:28:58.74 ] >>670 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i = 0; char *ptr; char str[128]; FILE *fin; if (argc == 1) { ptr = str; scanf("%s", str); while (*ptr++) i++; } else { if ((fin = fopen(argv[1], "r")) == NULL) { fprintf(stderr, "Input file open error\n"); exit(EXIT_FAILURE); } while (fgetc(fin) != EOF) i++; fclose(fin); } printf("%d\n", i); return 0; }
672 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 10:36:19.21 ] [1] 授業単元: C言語プログラミング(文字列生成・操作) [2] 問題文(含コード&リンク): 以下の実行例のように,姓と名を入力すると,2 つの 間にスペースを入れて連結した文字列を生成するプロ グラムを作成せよ.姓と名はそれぞれ配列family[] と first[] に,連結した文字列は配列fullname[] に格納 すること.入力できる姓と名の長さはそれぞれ30 字ま でとする. 実行例. Family name: Roku First name: Dai Roku Dai [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:2011年11月27日まで [5] その他の制限: 問題文で使われている宣言とヒントとして提示されているものを使っての解答でお願いします ポインタは習っていません
673 名前:デフォルトの名無しさん [2011/11/26(土) 10:50:35.35 ] >>672 ideone.com/Pi7F7
674 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 11:58:04.62 ] >>673 scanf で30文字以上入力されたらどうなる?
675 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 12:27:39.48 ] >>674 30文字以上入れた奴が悪い
676 名前: ◆QZaw55cn4c mailto:sage [2011/11/26(土) 12:28:43.56 ] >>674 それをいうと、題意から一歩踏み出してポインタを使わざるを得ない。 ideone.com/OyyrC
677 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 12:48:08.85 ] fgetsでやればいいんじゃないの?
678 名前:デフォルトの名無しさん [2011/11/26(土) 12:51:46.10 ] >>674 ideone.com/2nwgU
679 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 12:57:59.65 ] >>677 fgets() でもバッファサイズは有限だよ
680 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 13:03:52.87 ] >>679 サイズをはみ出してるかをチェックして、捨てればいい。
681 名前:デフォルトの名無しさん [2011/11/26(土) 13:09:48.96 ] >>672 ideone.com/CLzp9
682 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 15:44:28.74 ] >>680 そういう意味じゃなくてバッファより入力文字数が多かったらストリームにゴミが残るからって話なんだけど... fflush() すれば良いだけの話だなw
683 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 15:45:19.56 ] >>682 バカは手に負えないな
684 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 15:52:29.48 ] stdinに対するfflushは(略
685 名前: ◆QZaw55cn4c mailto:sage [2011/11/26(土) 15:57:57.90 ] >>682 fflush() では入力ストリームに対しては未定義。 ISO/IEC 9899:1999 7.19.5.2.2
686 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 16:05:07.02 ] >>685 そうだっけ? ttp://msdn.microsoft.com/ja-jp/library/9yky46tz.aspx stdin からの入力なんて滅多に使わないから細かい仕様に興味がないもんでねw
687 名前:686 mailto:sage [2011/11/26(土) 16:12:07.34 ] もし fflush() が望む機能を実現できない環境で有れば、バッファ中に \n が出現するまで fgets() を繰り返せば良い 少なくとも捨てて良いデータの為に realloc() を繰り返す様なコードは書きたくないなw
688 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 16:22:21.62 ] 依頼者は、「コンパイラ名とバージョン:gcc」と書いてるんだから、 その環境で大丈夫かどうか、だな
689 名前: ◆QZaw55cn4c mailto:sage [2011/11/26(土) 17:01:14.56 ] >>687 realloc() の繰り返しを避けたいのであれば、避けたいというその気持ちの強さに応じて、static char 配列のサイズを大きめにすればよい、そういう風には作ったつもり。 ideone.com/OyyrC #define BUFFSIZE 65536 /* >= 2 */ char *mygetline(FILE *fp) { static char inbuff[BUFFSIZE];
690 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 17:44:30.69 ] >>689 とはいえ malloc() も realloc() も使う必要が無い処理であることには変わりない
691 名前: ◆QZaw55cn4c mailto:sage [2011/11/26(土) 17:49:50.13 ] >>690 不定長に対応するつもりがないのなら、ね。 >>689 は不定長に対応することを目的とした汎用コード。
692 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 17:54:45.48 ] 何これあぼーんだらけ
693 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 17:57:34.69 ] >>692 興味があるなら、あぼーん設定を外してみれ
694 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:03:12.92 ] >>691 不定長に対応する必要が無い処理に使うのは無駄だと言っている 自己満足のコードはサンデープログラマの特権だけど現場では迷惑
695 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:03:14.25 ] >>693 ああ、またQか こいつ文句を垂れ始めたな
696 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:14:10.63 ] >>692-693 ,695 餌やんな
697 名前: ◆QZaw55cn4c mailto:sage [2011/11/26(土) 18:18:28.91 ] >>694 ま、C++ の考え方に慣れきったものでして、string クラスやvector/deque/map コンテナの思想くらいは、C で書くときも心がけているだけだけどね。 これは業務に携わっている方にお聞きしたいのではあるが、固定長のプロトコルを前提にコードを製造することは、今でもあるものだろうか? >>695 fflush(stdin) のまずさを指摘された >>682 が逆切れしているだけなのでは?
698 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:22:13.97 ] ここまで来たら立派な荒らしだな
699 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:52:46.55 ] >>697 C/Sなら可変長電文の方が少ないよ IP電話の制御電文や音声データも固定長だ データファイルも構造体をバイナリで出力することが多いから固定長が多い、レコード数は可変だけどね
700 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 19:20:23.14 ] [1] 授業単元: 画像処理 [2] 問題文(含コード&リンク): 問題1で作成したプログラムに、スライド番号8にあるトーンカーブ(ネガポジ)を、画像の濃度値を変換する関数としてを追加し、任意の画素数をもつpgm画像のコントラストを変更するプログラムを作成せよ.コントラスト変換後の画像はpgm画像として保存すること. codepad.org/76qGL5Cb [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:windows visual studio2008 [3.3] 言語:C++ [4] 期限:2011年11月28日まで [5] その他の制限: よろしくお願いします
701 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 20:20:29.44 ] >>665 途中まで書いたが、力尽きた。 エロイ人頼む。 ideone.com/Fa8bL
702 名前: ◆QZaw55cn4c mailto:sage [2011/11/26(土) 20:23:30.68 ] >>699 ありがとうございます。
703 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 20:41:55.58 ] >>701 これ直すと動くんじゃね? Error 00001. 0x130700 (Thread 0x0814): Access overrun: Attempt to access 8 byte(s) at 0x0012DBDC+8712, that is at offset 0+8712 in local block 0x0012DBDC(=[ebp-0x23B0] @dai57.exe:0x01:000585) which is only 8712 bytes long. | dai57.c line 104: | for (i = 0; i <= N; i++) { | for (j = 0; j <= N; j++) { |> m[i][j] = 0; | v[i]=0; | } Call Tree: 0x00401585(=dai57.exe:0x01:000585) dai57.c#104 0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA) ------------------------------------------ Error 00002. 0x130700 (r) (Thread 0x0814): Access overrun: Attempt to access 8 byte(s) at 0x0012DBDC+8712, that is at offset 0+8712 in local block 0x0012DBDC(=[ebp-0x23B0] @dai57.exe:0x01:000585) which is only 8712 bytes long. | dai57.c line 104: | for (i = 0; i <= N; i++) { | for (j = 0; j <= N; j++) { |> m[i][j] = 0; | v[i]=0; | } Call Tree: 0x00401585(=dai57.exe:0x01:000585) dai57.c#104 0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
704 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 20:44:41.65 ] 一応これも貼っておくね Error 00003. 0x130700 (Thread 0x0814): Access overrun: Attempt to access 8 byte(s) at 0x0012FDE8+264, that is at offset 0+264 in local block 0x0012FDE8(=[ebp-0x1A4] @dai57.exe:0x01:00059F) which is only 264 bytes long. | dai57.c line 105: | for (j = 0; j <= N; j++) { | m[i][j] = 0; |> v[i]=0; | } | } Call Tree: 0x0040159F(=dai57.exe:0x01:00059F) dai57.c#105 0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
705 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:02:15.66 ] >>703 便乗質問で申し訳ないですが、このエラーメッセージは何かツールを使って出してるんでしょうか? 自分の環境(Mac,gcc4.1)では出なかったもので。
706 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:02:42.59 ] >>668 ありがとうございました
707 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:04:37.08 ] [1] 授業単元: C言語プログラミング [2] 問題文(含コード&リンク): 名前(char name[20])と点数(int score)からなる構造体の配列を作る. 件数(10以下)をキーボード入力後、その件数だけ名前と点数をキーボード入力して配列に格納し, 点数の平均点と、平均点以上の学生の名前を表示するプログラムを作成せよ. なお,文字列aと整数bを同時にキーボード入力するには、scanf("%s %d",a,&b)とすればよい(文字列変数には&がいらない). 実行例 $./kadai n? 5 name score? taro 52 name score? jiro 84 name score? saburo 38 name score? hanako 63 name score? youko 72 Average:61 Above average:jiro hanako youko ヒント struct student { char name[20]; int score; } student; scanf("%s %d",student.name, &student.score); [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] その他の制限: 問題文で使われている宣言とヒントとして提示されているものを使っての解答をよろしくお願いします。
708 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:15:37.03 ] >>705 これはDelphi/C++Builder XE2に付属しているCodeGuardというバグ検出ツール これだけのために買い続けてる 実際の仕事はVC10でやってるけど
709 名前: ◆QZaw55cn4c mailto:sage [2011/11/26(土) 21:16:52.93 ] >>705 多分、Borland C/C++ ver 6 の codeguard 評価版をインストールして、 bcc32 -v -vG (だったかな)でコンパイルし、生成したバイナリを実行すればよいはず。
710 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:20:09.71 ] 評価版か 無職は金ないから買えないもんな
711 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:39:12.20 ] [1] 授業単元:リスト構造 [2] 問題文(含コード&リンク): malloc関数とリスト構造を使い、ファイルから二行の多桁整数を読み取る。 それを4桁ずつリスト構造に格納し、加算を行うプログラムを作れ。 口頭で出題された問題なので、おかしい部分があったらすみません。 [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 11/28の正午まで [5] その他の制限: ありません
712 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 22:04:54.33 ] [1] 授業単元: C言語実習 [2] 問題文(含コード&リンク): 整数値を読み取り,4桁毎に 兆,億,万 を挿入して表示せよ. 例 入力:114514 出力:11万4514 入力:810 出力:810 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:2011年11月27日まで [5] その他の制限: 初心者ですが頑張ります
713 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 22:15:45.51 ] >>712 ココに投げてる時点でがんばってない気がするけどまあ良いか
714 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 22:23:32.35 ] えっQって割れ厨だったのか >多分、Borland C/C++ ver 6 の codeguard Version6は体験版のダウンロードはしてないはずだが 誰にコピーしてもらったか知らないけどライセンス違反ですね 犯罪ですよ
715 名前:デフォルトの名無しさん [2011/11/26(土) 22:26:17.12 ] >>707 ideone.com/XqPD9
716 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 22:30:47.59 ] >>665 こんなんを puts で表示すればよくね? 3.266968 3.123636 2.855417 2.500000 2.144583 1.876364 1.733032 3.410299 3.248523 2.942614 2.500000 2.057385 1.751477 1.589701 3.715407 3.517544 3.166518 2.500000 1.833482 1.482456 1.284593 4.218378 3.939727 3.705912 1.294088 1.060273 0.781622 5.000000 4.317073 4.011493 0.988507 0.682927 0.000000
717 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 22:59:41.72 ] >>708 ,709 有難うございました。 やはり本格的にプログラミングするなら、ツールが必要ですね。
718 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 23:24:48.14 ] >>712 #include <stdio.h> int main() { char s[20], *p = s, k[][10] = {"", "万", "億", "兆"}; int n = 0; printf("n="); scanf("%s", s); while (*p++) n++; for (p = s; *p; p++) { putchar(*p); if (--n % 4 == 0) printf("%s", k[n / 4]); } return 0; }
719 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 23:39:52.72 ] >>672 ideone.com/5E3Ix
720 名前:デフォルトの名無しさん [2011/11/26(土) 23:50:50.28 ] >>712 ideone.com/Mpnkn
721 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:09:08.29 ] >>671 ありがとうございましたー
722 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:40:54.91 ] [1] 授業単元:計算機アルゴリズムT [2] 問題文(含コード&リンク): 設問1-1 プログラム例10.1.3で関数sumとdiffereceの中に適当なprintf文を追加しなさい、又「s=sum(a,b); d=difference(a,b); printf("%7.3fと%7.3fの和は%7.3f差は%7.3f\n",a,b,s,d);」の3ステートメントを、変数s,dを使わずに1ステートメントで記述しなさい。 プログラム例10.1.3 ttp://www.dotup.org/uploda/www.dotup.org2311990.txt.html 設問1-2 2つの整数型変数の和、差、積、商を求めて表示するプログラムを作成せよ。ただし、4つの演算それぞれを関数化すること。 設問1-3 設問1-2で被演算数の「2つの整数型変数」をxとyとし(「int x, y;」と宣言する)、xとyの値をキーボードから入力するようにしなさい。 和、差、積と商を表示するprintf文はmain関数中に記述すること。変数はすべて局所変数を用いること。 [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン:visual studio 2008 [3.3] 言語:C [4] 期限:[2011年12月2日8:00まで] [5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文 繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数 条件分岐if文、要素番号idx使用の書換、データの入れ替え 条件分岐・論理演算子を用いたif文の条件、if文、else if文 switch文、ポインタ変数・演算子*と&、関数・プロトタイプ宣言と関数定義 引数と戻り値は習いました。 宜しくお願いします。
723 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 00:48:08.12 ] >>665 hibari.2ch.net/test/read.cgi/tech/1313183984/26 >>716 と結果が一致しました。 >>714 前は評価版をダウンロードできていたんですけれどもね。 hibari.2ch.net/test/read.cgi/tech/1304410950/827
724 名前:デフォルトの名無しさん [2011/11/27(日) 01:08:17.90 ] >>722 ideone.com/no3O4 ideone.com/IDWlO ideone.com/xm2N3
725 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 02:46:28.09 ] >>636 fpuがlong double未サポートの時、doubleにtypedefしてfpuエミュレーションしないですむってことかえ?
726 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 02:48:30.03 ] 書いてて思ったけど、fpuエミュレーションってコンパイラがやるんだっけ?
727 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 03:53:52.46 ] >>723 そりゃDelphi/C++ Builder XE/XE2の評価版だろうが C++ Builder6 の評価版はダウンロード出来ないという意味で言ったんだ 出来たのはDelphi6 Personalのみ で、使用期限が切れたにも関わらず(15日間)、CodeGuardを使い続けて いるのだったらそれもライセンス違反だ
728 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 04:12:28.78 ] アスペはスルーで
729 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 07:05:13.61 ] >>726 昔は代替計算ライブラリをリンクしてやってました。ちょっとしたトリックですりかわるようになっていました。 さすがに pentium 以前で win32 を動かすことはもうないでしょうから、今はこんなトリックは廃れてしまったでしょうね。 >>723 ふむ。確かに「C++Builder XE2 Architect - 30 day trial」というのが正確な呼び方ですね。 でも 30日試用可なんですけど。あと IDE とかは起動しませんが、bcc32 6.31 は今でも使えますけれども? それも契約違反なんですかね?
730 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 07:05:43.58 ] >>729 >>727
731 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 07:19:50.13 ] スターターエディションくらい買えよw
732 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 07:27:01.14 ] >>731 FileMaker 買ったばっかりで金欠なんです。
733 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 08:18:16.97 ] >>729 >ふむ。確かに「C++Builder XE2 Architect - 30 day trial」というのが正確な呼び方ですね。 >でも 30日試用可なんですけど。あと IDE とかは起動しませんが、bcc32 6.31 は今でも使えますけれども? 30日なんてとっくに過ぎてるだろうが >>723 の書き込みは7/4だぞ bcc32等のツールも30日を過ぎたら試用期間が切れるとlicence_ja.rtfに書いてある 4. 終了。 ライセンサは、次の場合に、追加の義務や責任を負うことなく本契約をただちに 終了することができます。(a) 使用権に関して、お客様が以下に定める使用権の料金を 支払わず、支払期限の最後の日から 30 日間を過ぎても滞納し続けている場合 犯罪を自分で告白しておいてこれだけ厚顔無恥な奴もめずらしい Embarcaderoに報告しておこうかねえ
734 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 08:39:28.14 ] >>733 「***追加の***義務や責任を負うことなく本契約をただちに終了することが***できます***。」 どこにもアンインストールしろとは書いていませんけれども、それでも試用期限がきれたらアンインストールしなければならないのでしょうか?そう主張するのならまず、その根拠を示してください。 こういうソフトウェアパッケージは情報提供・バグ修正やなにかあったときのサポートが不可欠でありそのためにお金をだすものと思っているのですが、それが受けられないことを承知で試用版を使い続けることになにか問題でもあるのでしょうか? あと IDE はとっくの昔に起動できなくなっています。bcc32 でコンパイルは今でもできます。ただ、bcc32 にバグはあるかもしれませんし、そのバグも修正してもらえるあてはありませんが。
735 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 08:41:11.47 ] こりゃ裁判にならんとわからん馬鹿だろ 裁判所から内容証明郵便が届いてから真っ青になっても遅いわ
736 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 08:45:14.98 ] 常識で考えろよ。 なんのためのスターターエディションなんだよ
737 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 09:21:37.15 ] ◇ ミ ◇ ◇◇ / ̄| ◇◇ ◇◇ \ |__| ◇◇ 彡 O(,,゚Д゚) / ( P `O /彡#_|ミ\ </」_|凵_ゝ 【ラッキーAA】 このAAを見た人はコピペでもいいので 10分以内に3つのスレへ貼り付けてください そうすれば14日後好きな人から告白されるわ宝くじは当たるわ 出世しまくるわ体の悪い所全部治るわでえらい事です
738 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 09:32:00.25 ] 裁判所から内容証明郵便が届くというのは、初めて聞いた
739 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 09:52:34.09 ] >>738 「受け取った」「受け取ってない」で揉めないためだってさ 有無を言わせず引っ張り出せる
740 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:04:00.43 ] 裁判所が内容証明郵便を出すの?
741 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:08:37.10 ] www.gem.hi-ho.ne.jp/sayopee/post/shoumei.html 裁判を起こした相手が裁判所から出すんだろうな
742 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:14:41.99 ] 裁判所が郵便業務をしているというのは、初めて聞いた。
743 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:17:28.29 ] 東京高等裁判所か、大阪高等裁判所なら裁判所内郵便局がある
744 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:20:52.75 ] この「初めて聞いた」と書いてる奴はコテを消したQ'Zだろうな
745 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:21:55.21 ] 裁判所が郵便局を経営してるの? 郵便を扱う事を、裁判所が、業務としてしているの?
746 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:23:54.64 ] >>745 裁判所の建物の中に郵便局がある 裁判所が業務として郵便をやってるわけじゃない
747 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:24:13.69 ] これ以上はスレ違いだ 他の人の迷惑になる 自分でぐぐって調べろ
748 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:25:31.48 ] ついこの前警察の強制捜査が入ったばかりだろうが 警察はしばらく2chを監視してると思うぞ おかしな事は書かない方がいい
749 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 10:29:34.36 ] まるで、消防署から来ましたって言って、消化器を売りつけるのと同じだな 裁判所の中に郵便局があるなら、 誰でも、誰にでも、どんな内容でも、裁判所から内容証明郵便出せるぞ
750 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 11:02:40.83 ] これはQが裁判所からの出廷命令を無視する流れか で、未回答の宿題どれだっけ?
751 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 11:08:44.65 ] >>750 無視すると自動的に原告の勝訴が確定して原告のいいなりにならなければならないのにな 強制執行されるぞ
752 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 11:10:59.57 ] コテ付きをスレチで延々と貶すだけの匿名か。 気に入らなければNG設定出来る分、コテの方が良心的とも言える。
753 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 11:13:45.85 ] >>750 未解答は>>700 と>>711 かな? レスついてないの見ただけだから他にもあるかも知れんが
754 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 11:59:46.16 ] >>753 >>700 は俺が画像処理わからんからパスするとして、 >>711 はリスト構造ってどのリスト構造だよって感じでパスだな
755 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:04:31.57 ] 民事と刑事をごっちゃにしてるレベルで法律を語ると恥をかくだけ
756 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:09:25.57 ] >>755 ずっと民事の話だけどなに必死になってんの?
757 名前:711 ◆oYsh4lFZVQ mailto:sage [2011/11/27(日) 12:10:53.38 ] >>754 すみません、自分自身リスト構造というものが良く分かっていないので変な書き方になってしまったかもしれないです。 123456789という数値を1、2345、6789というように配列に格納し、その後加算が出来るプログラムを考えています。 後付説明になってしまい申し訳ありません…
758 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:18:04.52 ] >犯罪を自分で告白しておいてこれだけ厚顔無恥な奴もめずらしい >Embarcaderoに報告しておこうかねえ 何という犯罪なんだろう?
759 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:25:38.55 ] 4. 終了。 ライセンサは、次の場合に、追加の義務や責任を負うことなく本契約をただちに 終了することができます。(a) 使用権に関して、お客様が以下に定める使用権の料金を 支払わず、支払期限の最後の日から 30 日間を過ぎても滞納し続けている場合。 (b) 支払不能の申立てがお客様によって、もしくはお客様に対してなされて 60 日間 停止されなかった場合、お客様の業務のいずれかの部分に対して破産管財人が 任命された場合、または債権者のために財産が譲渡された場合。(c) お客様が 本契約に対する重大な違反をし、かかる違反についてライセンサから書面で通知された後 30 日の間に当該違反を是正しなかった場合。本契約の終了は、次のいずれにも影響を 及ぼさないものとします。(i)終了しておらず、そのためその条件により効力が存続している 使用権によるいずれかの当事者の義務。(ii)本契約に定める表明および保証の存続。 使用権の終了後 60 日以内に、お客様は、使用権が終了した製品、関連文書および そのコピーをライセンサに返却するものとします。お客様はライセンサに対して、本製品が インストールされたすべてのコンピュータから本製品のすべてのコピーが削除されたこと、 および、返却しなかったコピーがすべて破棄されたことを、ただちに書面で通知するものとします。 あれれ、アンインストールしないさとちゃんと書いてあるよ?
760 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:30:42.08 ] gcc使えばいいのに。gccはそんなけち臭いこと言わない。
761 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:34:24.90 ] なんだここは法律を語るスレだったのか
762 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:37:56.33 ] >>761 いやそうじゃないんだけど、「当たり前の法律を順守する」という事も出来ない馬鹿が 若干一名いるようでこれだけ荒れてるかと
763 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:40:17.45 ] スルーすれば済むんじゃねーの 通報するなら黙ってすればいいだけだし
764 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:40:52.35 ] >「当たり前の法律を順守する」という事も出来ない馬鹿 くわしく
765 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:49:05.75 ] >>764 edn.embarcadero.com/article/41526 21. 準拠法。 本契約は、法の抵触に関する原則を問わず、カリフォルニア州法に準拠し、 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ それに従って解釈されるものとします。国際物品売買契約に関する国連条約の条項は ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 適用されないものとします。 22. 評価使用権。 ライセンサは、本第 22 条の条項に従ってお客様がテストおよび評価 しようとしている専売権付きソフトウェアおよび文書(以下「ソフトウェア」)の所有者および 供給者です。ライセンサの書面による許可がない場合は 14 日を超えない期間(以下 「評価期間」)の間、お客様自身による内部使用の評価(以下「評価」)目的でのみ ソフトウェアが提供され、お客様は本契約書によって、かかる評価のためにソフトウェアを 操作および使用する、譲渡不能で非独占的な限定的権利を付与されます。評価期間は、 お客様がソフトウェアをダウンロードまたは開封した日に開始します。評価期間が終了すると、 ~~~~~~~~~~~~~~~~~~~~~~~~ お客様は使用を中止し、ソフトウェアを元の状態で Embarcadero に返却するものとします。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
766 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:49:13.74 ] この要件は、他のものに組み込まれているかどうかにかかわらず、あらゆる種類のメディアおよ びコンピュータ メモリの上の、あらゆる形式(部分的または完全)のソフトウェアのコピーに適用 されます。お客様は、ソフトウェアのリバースエンジニアリング、逆アセンブル、改変、翻訳または 逆コンパイルを行ったり行わせたりしないことに同意するものとします。お客様は、ソフトウェアを コピーしたり、派生ソフトウェアを作成または開発してはなりません。お客様は、本第 22 条の ~~~~~~~~~~~~~~~~~~~~~~~ もとで実施したソフトウェアの評価テストの結果またはその他の実行結果を、そのたびに書面に ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ よるライセンサの事前の同意を得ないまま、第三者に公開してはなりません。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
767 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:54:41.50 ] 何という法律のどの条項を順守してないの?
768 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:57:01.59 ] >>767 契約不履行による民事訴訟
769 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:00:09.74 ] それが犯罪だと主張する根拠は?
770 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:01:26.79 ] さあ、コンパイラメーカーが訴訟を起こすかどうか決める事で、第三者が とやかく首を突っ込む問題ではない ただ明らかに契約違反の使い方だという書き込みを見つけたら通報は しても意味はあると思う
771 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:05:31.14 ] >>769 割れ厨理論展開する?
772 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:07:24.21 ] >>729 >ふむ。確かに「C++Builder XE2 Architect - 30 day trial」というのが正確な呼び方ですね。 >でも 30日試用可なんですけど。あと IDE とかは起動しませんが、bcc32 6.31 は今でも使えますけれども? >それも契約違反なんですかね? 14日間なんですけど それに今でも使ってるって自分で言っちゃってるしアイタタタ
773 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:08:28.67 ] >明らかに契約違反の使い方だという書き込みを見つけたら通報は >しても意味はあると思う これは同意するが、明らかに契約違反の使い方だと断定する為には、 当人を特定した上で、その証拠がいるよ
774 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:10:33.66 ] しかし edn.embarcadero.com/article/41522 では 登録が完了していない製品を起動すると、登録ダイアログ ボックスが表示されます。 14 日の猶予期間が経過したら、製品を Embarcadero Technologies に登録する 必要があります。登録が完了していないと、製品はシャットダウンし、動作が停止し ます。製品を登録するには、次の項目が必要です。 と書いてあるしどっちが正しいんだろう? 俺試用せずに買ったから分からないんだよ
775 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:11:38.42 ] >>773 それもコンパイラメーカーの仕事でしょ 向こうが本気になれば警察でもFBIでも動かしてすぐ割り出せるから心配すんな 逆に「この程度の些細な事なら放置」となればそのままだろうし
776 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:15:37.52 ] 民事の案件で、警察やFBIが動くの?
777 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:18:43.76 ] さ、放置 コテを外したQの相手をしていると俺も立派な荒らしだ
778 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:36:40.20 ] 普段空気嫁とか言ってるやつらが主旨を読めないなんて、うんざり
779 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:42:42.35 ] 2ちゃんねらが空気を読むなんて考えたか?w
780 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:51:49.14 ] 空気と言うかスレタイを読んでくれ
781 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:53:04.81 ] 土曜日に宿題がたんまり出されたのかと、ワクワクしてたのに。 どいつもこいつも釣られ杉だろ。
782 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:59:12.06 ] ___ 読めませ〜ん ‖スレ | ∨ ‖タイ ∧_∧ .ヘ∧ ‖ \ ( ・∀・) (゚A●) || ̄ ̄⊂ ) ( と) 凵 し`J U U
783 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 14:00:07.77 ] そんなに気になるならエンバカにメールでもだしとけよ
784 名前:デフォルトの名無しさん [2011/11/27(日) 14:02:45.94 ] >>711 ideone.com/AG1AH
785 名前:711 ◆oYsh4lFZVQ mailto:sage [2011/11/27(日) 14:40:11.37 ] >>784 コンパイル、起動、結果全て完璧でした これから全て読んで勉強させて貰います。どうもありがとうございました!
786 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 16:52:05.12 ] おはようございます。 >>665 の回答 >>723 を作るのに疲れてうとうとしていたら、なんだか盛況ですねえ。 そんなに試用版を無断使用されるのが嫌ならメーカーが期限を超えての起動不可となるようにつくりこめればいいだけのことなのにね。 bcc32 -v -vG は便利なのでこれからも使わせていただきます。 それとも >>682 は >>683-685 と袋叩きにあって頭が沸いてしまったか?
787 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 16:59:58.66 ] 煽るねぇw
788 名前: ◆QZaw55cn4c mailto:実はクールダウンを狙っているのですが [2011/11/27(日) 17:19:27.01 ] >>787 上達したでしょう?
789 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 17:38:50.29 ] 実はとか意味がわからん ただ煽ってるだけだろ 誰も彼も小学生の口げんかレベルだな
790 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 17:56:03.51 ] >>788 上達したよw
791 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 18:30:59.89 ] ここに質問に来る学生は何を思うのかとか考えた事無いのか?
792 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 18:35:44.44 ] Qはアスペの上に自己愛だからどうしようもない 檻に収監すべきレベル
793 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 18:42:07.45 ] おそるおそる・・・宿題ぢゃないけど、参考書の問題とけないので、ここに書いてもいいでしょうか・・・
794 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 18:48:24.24 ] 宿題も参考書もこっちには区別つかないんだから何も言わず聞いちゃえばいいのに
795 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 18:50:10.62 ] 起源なしにしちゃうと永遠に答えがもらえなかったりするけど
796 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 18:56:35.19 ] [1] 授業単元:プログラミング実習 [2] 問題文(含コード&リンク): 置換インデックスを作成するプログラムを作成しなさい。 例) 入力 The quick brown fox jumped over the fence 出力 The quick brown fox jumped over the fence The quick brown fox jumped over the fence jumped over the fence The quick brown fox jumped over the fence The quick brown fox [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: g++ 4.5.3 [3.3] 言語: C++ [4] 期限: 2011年12月02日07:00まで [5] その他の制限: algorithm,cctype,iostream,string,vectorヘッダを習いました。 struct,typedef,using namespace_name::nameも習いました。 classやtemplateキーワードを使ったプログラムはまだ習っていません。 ポインタもまだ習っていません。教科書はAccelerated C++です。 ブラウザからだと見づらいかもしれませんが、出力行の順に brown fence fox jumped over quick the Theが縦に揃っています。
797 名前: ◆EiEUm/qHNk mailto:sage [2011/11/27(日) 19:05:58.93 ] >>505 ideone.com/OeQkS 38行めから55行目の間に ピポッド選択と行の交換をしているのはわかるのですが この部分を文章で説明する場合どうすれば良いのでしょうか あと53行目と54行目の カンマの意味が分からないのですが カンマを使わないで交換をできないでしょうか 一行に=が3つもあるのがよくわからないので・・・ 長文失礼しました
798 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 19:09:39.85 ] >>796 全然分からん
799 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 19:11:39.43 ] >>796 Accelerated C++にやり方かいてあるけど、どこがわからないの?
800 名前:796 mailto:sage [2011/11/27(日) 19:34:48.07 ] 1)1行ずつ読み込み←できる 1語ずつローテートした文字列を作る←できる 2)ソートする←できる 3)元に戻して適当な空白を入れる←できない すみません、出来上がった分のソースを綺麗にしてからupします。
801 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 19:50:02.37 ] >>797 「部分ピボット選択」だから、行を交換して係数が一番大きな行で割るテクニック 係数がゼロの行があっても解ける場合が多い また、どうして行を交換しても良いのかと聞かれたら、「連立一次方程式は行を 交換しても解は変わりません」と答えて置けば良い 53〜54行目は t = a[i][j]; a[i][j] = a[k][j]; a[k][j] = t; // 行の交換 t = inv_a[i][j]; inv_a[i][j] = inv_a[k][j]; inv_a[k][j] = t; // 単位行列も行の交換を行う と書き換えてください これは、カンマ演算子を使うと要素の交換が一行で書けるために多用されるのですが 今回は二行になっているためカンマ演算子の意味が無くなっています
802 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 19:51:39.81 ] >>797 ×係数が一番大きな行で ○係数の絶対値が一番大きな行で 本当はfabs()を使えば綺麗に書けるのだが、今回は使えないので 40〜51行のように負だったら符号を反転している
803 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 20:15:47.14 ] >>724 設問1-3なのですが、「int x, y;」と宣言されていないので、「int x, y;」と宣言されているプログラムをお願いします。
804 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 20:42:07.03 ] >>802 38行から51行では、自分が入力した値で対角成分に0があった場合に、なにかしら しているという処理なのでしょうか? いまいちなにをしているのかがわからないので、プログラムに対する考えが かけなくて困っています、、、すいません fabsとかの代わりと書いていますが、調べてみたら絶対値を取るとかって書いて いました、以上のことからあまり0が〜とかっっていうのは考えてないのでしょうか? 長くなってすいません、、、
805 名前: ◆EiEUm/qHNk mailto:sage [2011/11/27(日) 20:43:39.51 ] >>804 トリップつけ忘れました
806 名前:デフォルトの名無しさん [2011/11/27(日) 20:50:15.54 ] >>796 ideone.com/ZeUlG スニペット?を4語選択するルールがよく分からなかったので適当にやりました。
807 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 20:54:24.06 ] >>804 掃き出し法を手でやる場合を考えてみるとわかり易い もし係数がゼロの場合に出くわしたらどうなる?割れないでしょ? だから絶対値の一番大きな行で割るように入れ替えている これは計算誤差を小さくするという利点もある もし係数がゼロの行が3行あると行列式がゼロとなってしまい 正則行列ではなくってしまうから、逆行列が定義出来なくなため 23〜24行で予め調べている まず手で何かの行列の逆行列を求めて見るとすぐに理解出来る
808 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 20:56:26.24 ] >>796 ideone.com/uvcXB Accelerated C++ の章末問題 5-1 (p98) ですね。当時作ったものをあげておきます。
809 名前:796 mailto:sage [2011/11/27(日) 21:36:16.57 ] >>806 >>808 ありがとうございます。読ませていただいて勉強します。 自分のコードを綺麗にしようとして、動かなくなっていますので、自分の分はupできなさそうです(^^;; 名無しにもどります。
810 名前: ◆QZaw55cn4c mailto:sage [2011/11/27(日) 21:47:32.64 ] >>809 自分がいうのもなんですが、コードをアップすると得られる利益は大きいですよ。糞よばわりされて終わることもあるけれども、まあそれはそれ。
811 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 22:49:48.63 ] レビューして貰って突っ込まれて勉強する方が良いよ。
812 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:12:16.05 ] 人のコード見れるってだけでも勉強になる
813 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:15:16.94 ] 突っ込まれても馬耳東風のアホもいるけどな
814 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:21:51.34 ] >>813 それは突っ込み側の問題では?
815 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:24:05.85 ] いや明らかにアホがいる
816 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:28:30.54 ] >>815 では突っ込み対象のソースコードと突っ込みの内容を具体的に
817 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:33:17.72 ] free()の事かーーー
818 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:35:42.20 ] 自分の書いたコードが糞である事を棚にあげて突っ込む方を批判するなど 見当違いもいい所だな
819 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:36:27.93 ] >>816 その手には二度と乗りませんよ
820 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:55:39.08 ] >>796 ttp://ideone.com/8T0t1 冗長だけど。
821 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 00:03:08.66 ] >>818-819 具体的な話ができないのでは寝言をほざいているのと見分けがつかない >>819 一度として突っ込めないのに「二度」?
822 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 00:50:57.86 ] [1] 授業単元:c言語プログラミング [2] 問題文(含コード&リンク):(1,2,3) (1,2,4)...といった数列が続くのlist.txtを読み込み、 左の数字が同じかつ真ん中の数字も同じとき、右の数字が大きいものを削除し、link2.txtに書きこむプログラムを作りなさい。 (この場合、左が1と1かつ真ん中が2と2で右が3と4なので4の方が大きいので(1,2,4)を削除する) [3] 環境 [3.1] OS: (Windows/Linux/等々)Linux debian [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)11月30日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)特にありません。お願いします。
823 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 00:50:58.97 ] 具体的に話しても全然理解しなかった例ならQの過去スレにあるぞw
824 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:04:33.10 ] [1] 授業単元: C言語とアルゴリズム [2] 問題文(含コード&リンク): 初速v、仰角θを入力。着弾距離、着弾するまでの時間を求める。 <問題の意味> vx=vcos(θ),vy=-gt+vsin(θ) x=vtcos(θ),y=-gt^2/2+vtsin(θ)+y0 y=0,y0=0のとすると、 着弾するまでの時間は gt^2/2=vtsin(θ) > t=2*vsin(θ)/g 着弾距離はtがわかれば x=vtcos(θ)で求まる [3] 環境 [3.1] OS: (Windows/Linux/等々) :WinXP [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) :VC2008 [3.3] 言語: (C/C++/どちらでも可 のいずれか) :C [4] 期限: 28日 AM6時まで [5] その他の制限:構造体やポインタは習ってないので使用しないで貰いたいです よろしくお願いします。math関数の存在は習いました。
825 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:32:31.39 ] >>822 >[2] 問題文(含コード&リンク):(1,2,3) (1,2,4)...といった数列が続くのlist.txtを読み込み、 入力ファイルは改行区切り? あと、(1,2,3) (3,3,3)(1,2,4)...のように、間に別の数値がある場合でも、(1,2,4)は削除?
826 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:38:13.86 ] >>825 説明不足ですいません。 改行区切りです。 間に別の数値があっても(1,2,4)は削除です。 おねがいします。
827 名前:デフォルトの名無しさん [2011/11/28(月) 01:43:30.81 ] >>826 > 右の数字が大きいものを削除し、 list.txtから削除するってこと? > link2.txtに書きこむ 削除した数列をlink2.txtに書き込むってこと?
828 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:44:13.28 ] >>824 ideone.com/Cf5Pv
829 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:45:33.42 ] >>827 またまた説明不足ですみません。 list.txtには手を加えずに、list.txtから削除した数列を除いたものをlist2.txtに書きこむようです。
830 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:54:47.87 ] >>826 >間に別の数値があっても(1,2,4)は削除です。 in (1,2,4)(3,3,3)(1,2,3) out (3,3,3)(1,2,3) でok?
831 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 02:03:02.68 ] >>830 はい!それでokです。
832 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 02:29:35.44 ] >>822 入力データ行数は、適当に1000件としてみた。 ideone.com/v50wQ
833 名前:832 mailto:sage [2011/11/28(月) 02:38:20.98 ] >>832 X for (j = 0 + 1; j < n; j++) { O for (j = 0; j < n; j++) { として下さい。
834 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 02:40:13.39 ] >>828 感謝です
835 名前:デフォルトの名無しさん [2011/11/28(月) 02:56:59.73 ] >>822 3つの数字全てが同じだった時の挙動がわからなかったので、その場合先出の数列を削除するようにしてあります。 ideone.com/OX74m
836 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 03:36:37.32 ] >>824 角度はラジアン?
837 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 03:56:03.81 ] Qは屁理屈を言わせると天才的だな しかしその屁理屈もここの住人を超うんざりさせる事にしか役に立ってない 一生嫌われ者で終わるだろうね
838 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 04:10:04.79 ] >>826 左の数字と真ん中の数字が一致したグループができたら、 右が一番小さい数字のものだけ残すということかな?
839 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 05:47:23.44 ] >>824 速攻で作ったからあってるかわからん #include <stdio.h> #include <math.h> #define g 9.80665 #define PI 3.14159265358979323846 #define RAD(r) ((r)/(180*PI)) int main() { double v,kakudo; double vx,vy,t,h,x; puts("初速度を入力してください"); scanf("%lf",&v); puts("角度を入力してください"); scanf("%lf",&kakudo); vx = v*cos(RAD(kakudo)); vy = v*sin(RAD(kakudo)); h = (vy*vy)/(2*g); t = (sqrt(h/(2*g)))*2; x = t*vx; printf("着弾までの時間 = %lf, 着弾までの距離 = %lf(m)\n",t,x); return 0; }
840 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 05:54:02.54 ] ひどいな
841 名前:839 mailto:sage [2011/11/28(月) 06:07:42.75 ] >>840 たしかにひどすぎた。 改良、改定よろしく。
842 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 06:20:00.52 ] 自分で直すように努力しないと、いつまでたってもバカのままだよ?
843 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 07:19:10.50 ] 全国初!ローソン、「けいおん!」とのコラボ店舗が本日オープン!外観はもちろん店内BGMまで「けいおん!」一色! 2011年11月27日 12時29分 [シネマトゥデイ映画ニュース] 27日、アニメ「けいおん!」と大阪府・大阪市の 「ローソン ホテル京阪ユニバーサルタワー店」のスペシャル・コラボレーションが開始され、 店舗外観はもちろん、店内BGMにいたるまで「けいおん!」一色となった全国初のローソンが誕生した。 これまでにも「エヴァンゲリオン」や藤子・F・不二雄作品とコラボレーションしてきたローソンならではの 今回の試みは、12月29日まで行われる予定だ。 今回、「けいおん!」とコラボを果たしたのは、ユニバーサル・スタジオ・ジャパン(USJ)の近くにある 「ローソン ホテル京阪ユニバーサルタワー店」。これまでにもローソンは「けいおん!」関連の キャンペーンを行っており、今月22日には「けいおん!フェア」第3弾を開始したばかり。 今回のコラボは、そういったことに加え、27日にUSJにて「『映画 けいおん!』公開直前記念イベント」が 行われること、さらには同店店長が大の「けいおん!」ファンということで実現した。 外観の装飾なども含め、ここまで大規模に「けいおん!」とコラボしたローソン店舗は全国で初めてだという。 当日は、0時ちょうどから外観の装飾が開始された。劇中バンド「放課後ティータイム」の メンバー5人のシールがウインドウに貼り付けられるだけでなく、店内BGMは「けいおん!」関連の楽曲、 店内には「けいおん!」特設コーナー、店舗スタッフも「けいおん!」特製ジャンパーを着用しての接客…… とまさに「けいおん!」尽くし。背中に「K-ON!」の文字が入った赤いジャンパーは今回のためだけに 作られたといい、ここでしか見ることのできない貴重なものとなっている。 続きはソースで www.cinematoday.jp/page/N0037354 「けいおん!」とコラボした「ローソン ホテル京阪ユニバーサルタワー店」 s.cinematoday.jp/res/N0/03/73/v1322344578/N0037354_l.jpg 『映画 けいおん!』場面写真 s.cinematoday.jp/res/T0/00/99/v1319767920/T0009944.jpg s.cinematoday.jp/res/T0/00/99/v1319767896/T0009944a.jpg
844 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 07:52:07.43 ] >>823 素数の話なら勘弁。確かに今でもほとんど理解していない。でも、正直なところ理解したいとも思っていない。 それ以外ならなんだろう?何の話かちょこっとだけ教えてほしい。 頭は悪いほうだから理解できないことは多々あるだろうと思う。 それでもわからないと自覚しているのなら、「わからない」と明言していることであろう。 無論、わかっていないことすら自覚していないこともあるだろう。 >>837 うんざりするのは勝手だが、この程度で音をあげるようではまともなお仕事すらできないのでは? それとも私の職場はそろいもそろって理屈こきの巣窟なのだろうか?まあ窓際煉獄部署といえなくもないのではあるが。
845 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 08:03:40.20 ] >>839 >#define RAD(r) ((r)/(180*PI)) #define RAD(r) ((r) * PI / 180.0) >printf("着弾までの時間 = %lf, 着弾までの距離 = %lf(m)\n",t,x); l はいらない。%f でよい。
846 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 08:33:52.42 ] >>844 URLよろしく>素数の話
847 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 08:54:50.83 ] Qはちゃんとコテつけてくれ
848 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 12:24:23.77 ] >>833 ありがとうございました! 助かりました。
849 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 12:25:10.91 ] >>835 >3つの数字全てが同じだった時の挙動がわからなかったので、その場合先出の数列を削除するようにしてあります。 その仕様がありがたいです。 本当にありがとうございました。
850 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 12:43:48.65 ] >>844 その素数の話のURL貼ってもらえますか
851 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 12:49:12.45 ] >>850 【モリタポ有償】C/C++の問題を片付けます(2) hibari.2ch.net/tech/kako/1295/12952/1295273862.html 534 名前: ◆QZaw55cn4c [qzaw55cn4c@a.email.ne.jp] 投稿日:2011/04/25(月) 21:03:10.67 >>516 codepad.org/XNlfz5lK hibari.2ch.net/test/read.cgi/tech/1301553333/439 の指摘を受けて細かいところを変更しました。 >素数の調べ方がクソ エラトステネスのふるいは必要なメモリ容量が半端でないので、「クソ」かもしれませんが、素朴な方法にしました。10万までなら、(私の環境では)十分な速度が出ています。 しかし、割り算を二回実行してしまうのはなんとかしたいと思いつつも改良できないでいます。 >ループにも無駄が多すぎ ちょっとだけましになったと思います。 592 名前:581 ◆QZaw55cn4c [PhenomII x6 が放置状態‥‥] 投稿日:2011/04/27(水) 05:53:22.39 >>591 >for(i = 2, max_len = 0; i * max_len < N; i++) { を説明していただけませんでしょうか。 ベルトランの仮説(チェビシェフにより証明)を利用していると思われるんですが、 i から 2i の間に素数があっても、2i から 3i の間に素数があるかどうかはわかりません。 もっともここを for (i = 2, i < N; i++) にしてみたところで、 codepad.org/8ArcOdU9 爆速なんですけれども。(それか、codepad を速度判定に用いるのは精度がよくないですね。) それにしてもエラトステネスのふるいの威力は見損じていました。sierve[i] で素数判定できるのには太刀打ちできません。 削除申請を出しました。 qb5.2ch.net/test/read.cgi/saku/1098189517/337
852 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 12:50:06.13 ] 614 名前: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 07:54:07.83 >>599 最初の素数 p があったとして、その次が 2p までにあることはベルトランの仮説により証明されているようです。まあ実際は、素数はもっと詰まっていますが。 p と len_max の二つの情報にベルトランの仮説を用いて探索範囲を狭めるのならば、p * (2^(len_max - 1) < i でしょうね。(^ はここではべき乗) 素数の間隔に関する単純な定理が他にあるかどうかは、調べてみましたがよくわかりませんでした。素数分布に関するものならいくつかありますが。 617 名前: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 08:08:33.63 >>610 i の探索範囲が狭まると、狭まった分だけループの回数が減りますが、本当に減らしてもいいのでしょうか、という問題です。 たしかに実質 >>602 で len_max 個分の隣り合う素数を足しこんで N 以上であれば打ち切っていますが、これは実際にスキャンして調べているわけでその分計算量を要しています。 でも、だからといって、i * len_max が N を超えたら実際に調べなくともいい、とは限らないと考えています。 >>592 で影響の度合いの確認はとっています。
853 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:17:03.73 ] ちょ、まって、その話について、まだ理解がおぼつかないって言ってんのか?
854 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:29:32.23 ] 小学生レベルの足し算の話なんだけどねえ
855 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:36:03.43 ] 「理解しました」 618 返信: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 08:13:28.09 >>599 >最初の数字より大きいものしか続かないわけだから、i * max_len < N よりも少なくていいはず。 なるほど。やっと理解しました。 これでお開きとします。いろいろと説明ありがとうございました。
856 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:36:44.63 ] 2 + 3 + 5がある数より大きければ、3 + 5 + 7は当然その数より大きい これが理解できない人がいるんだぜ
857 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:41:01.96 ] Qはウンコ
858 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:53:24.92 ] 今頃寝てるのかな?そして夜起きだして宿題を解く毎日w
859 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:47:15.45 ] Qのアホさはこれが分かりやすいと思う 641 名前:デフォルトの名無しさん[] 投稿日:2010/05/13(木) 16:05:13 このスレの住民の方には楽勝かもしれませんがお願いします 場合の数を計算するときに、いわゆる「nCr」というものを使うことがある。これは、順番を特に決めない場合、n個のものからr個のものを取り出す場合をいい、 7C5 = 7! / (7-5)!5! である。nCrであれば nCr = n! / (n-r)!r! (但し、0≦r≦n) この数を計算したい。 1. nとrを入力させる。 2. n!を計算させる 3. (n-r)!を計算させる 4. r!を計算させる 5. (2)/(3)/(4)を計算する しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる 1から5の手順まで守ったプログラムと手間を省いたプログラムをそれぞれ作成しなさい 660 名前: ◆QZaw55cn4c [sage] 投稿日:2010/05/14(金) 00:11:21 >>641 当方の環境は Windows/cygwin、処理系は gcc 3.4.4 です。 ideone.com/zrB3A f1() は定義どおり、f2() は再帰関数(漸化式)を用いました。 661 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:17:44 題意を把握していないw 662 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:31:13 >>661 そですかね。掛け算を足し算に変えたんですけど、これってやっぱり「計算の手間を省いた」ことにはならないんですかね。
860 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:55:40.17 ] [1] 授業単元: C言語とアルゴリズム [2] 問題文(含コード&リンク): 文字列st が回文(前から読んでも後ろから読んでも 同じ)であれば1 を,そうでなければ0 を返す関数 int isPalindrome(const char st[]) を作成せよ.以下の実行例のように,関数の動作を確認 できるmain 関数も作成すること. <実行例> ./5-4 文字列を入力してください:AKASAKA その文字列は回文です。 % ./5-4 文字列を入力してください:tomato その文字列は回文ではありません。 [3] 環境 [3.1] OS: (Windows/Linux/等々) :linux [3.2] コンパイラ名とバージョン:(gcc 3.4 [3.3] 言語:C [4] 期限: 29日 AM6時まで [5] その他の制限:構造体やポインタは習ってないので使用しないで貰いたいです よろしくお願いします。math関数の存在は習いました。
861 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 15:06:21.32 ] >>860 #include <stdio.h> int isPalindrome(const char st[]) { char *p, *q; for(p = st; *p; p++); for(q = st, p--; q < p; q++, p--) if(*p != *q) return 0; return 1; } int main(void) { char st[256]; printf("文字列を入力してください:"); scanf("%s", st); printf("その文字列は回文で%s。\n", isPalindrome(st) ? "す" : "はありません"); return 0; }
862 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 15:17:20.10 ] >>859 アホ過ぎるw
863 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 16:12:11.13 ] >>715 お礼が遅くなりすみませんでした。 課題を手伝っていただき、ありがとうございました。
864 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 16:35:06.57 ] [1] 授業単元:リスト構造 [2] 問題文(含コード&リンク): codepad.org/UPx3cq6J 例えば、学籍番号として 181 など 存在しない学生の番号を入力して実行すると、 エラーを生じてプログラムが停止してしまうリンク先のコードは不完全である。 そこで、存在しない学生の番号を入力した場合には、 「その番号の学生は、いません。」のエラーメッセージを表示するように、プログラムを改良せよ。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:VC2008 [3.3] 言語:C [4] 期限:12/3まで [5] その他の制限:リンク先のコードを元に改良してください
865 名前:832 mailto:sage [2011/11/28(月) 16:36:43.38 ] >>860 ideone.com/ITdbw
866 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 16:48:46.87 ] >>864 ideone.com/4wI68
867 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:20:23.97 ] iPhoneなどスマートフォンアプリ記述の標準言語はJavaやなんといっても Objective-C このマイナーだったプログラミング言語もようやく市民権を得た観があります。 今後Objective-Cを用いた課題も出ることでしょう。 このスレもObjective-Cに対応しなければならないかもしれません。 大丈夫でしょうか?>>QZさん
868 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:32:48.80 ] [1] 授業単元:プログラミング実習 [2] 問題文(含コード&リンク):リンク先上部に問題文があります。 ideone.com/YYmfZ [3] 環境 [3.1] OS:Linux [3.2]コンパイラ:gcc [3.3] 言語:C [4] 期限: 2011年12月2日0:00まで [5] その他の制限: 再帰法を使うこと、途中までプログラミングを行ったのですが 再帰法が今一つ分からずデバッグできません。誤り箇所を訂正する形でお願いします。
869 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:32:58.28 ] >>867 専用スレあるから。
870 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:34:51.26 ] >>868 int Max(i,j,Max) このMaxはポインタでないとだめなんじゃない? 最大値を返却するように変えてもいいと思うけど。
871 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:36:02.11 ] あと、関数名と変数名がかぶってるのもエラーの一つ
872 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 20:07:50.22 ] >>870 >>871 ありがとうございます。ポインタは忘れてしまったので 返却する方法でプログラミングしました。 無事に完成しました。ありがとうございました。
873 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 20:40:10.41 ] ももちゃん
874 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 20:45:32.95 ] >>862 うーん、今でも掛け算より足し算のほーが、楽なんじゃないかと思ってしまうんですけれども‥‥‥。 まあ、r! または (n-r)! まで計算して、その結果を取り置いておき、続きを n! まで計算する、ていうのがまっとうなんでしょうね。
875 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 20:54:08.57 ] [1]プログラミング実習 [2] 表面に色が塗られたサイコロが二つあります それぞれ共に 赤が3面 青が2面 緑が1面 あります 二つのサイコロを同時に振ると色の組み合わせは 1)赤赤 2)赤青 3)赤緑 4)青青 5)青緑 6)緑緑 の6通りありますが 出やすい組み合わせの順に並び替えて出力しなさい [3]C [4]11/30 [5]標準ライブラリのみでコンソールに出力すること
876 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 20:58:37.94 ] >>874 これだけ馬鹿にされても自分が正しい、間違っているのは相手の方、と決めつけて いる辺りが本物の馬鹿だと思うね
877 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 21:00:38.64 ] >>874 > しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる この省き方をしろって言ってると思うよ。
878 名前:よろしくお願いします mailto:sage [2011/11/28(月) 21:16:36.02 ] [1] C言語演習 [2] キーボードから8回、11から18までの数字を読み取り、得られた5つの数字を 大きい順に表示して改行するプログラムを書きなさい。 ただし、以下のコードの空白を埋めるようにしなさい #include <stdio.h> int readNumber(){ char data[32],*p; int m; do{p=fgets(data,32);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18)); return m; } int main(void){ int x; この部分にコードを追加して,要求を満たすようにすること return 0; } [3-1] Mac OSX(Snow leopard) [3-2]Gcc 4.6 [3-3]C言語 [4] 12/1まで
879 名前:878 mailto:sage [2011/11/28(月) 21:17:46.72 ] 訂正です ×得られた5つの数字を ●得られた8つの数字を
880 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 21:19:37.48 ] >>877 いつの間にか人の手柄を自分の手柄のように横取りしてしまうのも Qの自己愛の特徴です
881 名前:878 mailto:sage [2011/11/28(月) 21:22:11.64 ] すみません。 再度訂正させてください ×do{p=fgets(data,32);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18)); ○do{p=fgets(data,32,stdin);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18)); 他にも間違って写している部分があるかも知れませんがよろしくお願いします
882 名前:864 mailto:sage [2011/11/28(月) 21:22:32.09 ] [1] 授業単元:リスト構造 [2] 問題文(含コード&リンク): codepad.org/o0fqHYTZ 例えば、学籍番号として 181 など 存在しない学生の番号を入力して実行すると、 エラーを生じてプログラムが停止してしまうリンク先のコードは不完全である。 そこで、存在しない学生の番号を入力した場合には、 「その番号の学生は、いません。」のエラーメッセージを表示するように、プログラムを改良し、 双方向リスト構造 Doubly-linked List を用いて作成せよ。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:VC2008 [3.3] 言語:C [4] 期限:12/3まで [5] その他の制限:リンク先のコードを元に改良してください
883 名前:832 mailto:sage [2011/11/28(月) 22:48:42.43 ] >>882 while( pointer_student && pointer_student->number != in_number ) pointer_student = pointer_student->pointerNext; if(pointer_student) printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name ); else printf("「その番号の学生は、いません。」¥n"); /* if( pointer_student->number == in_number ) { */ /* printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name ); */ /* } else { */ /* while(1) { */ /* pointer_student = pointer_student->pointerNext; */ /* if( pointer_student->number == in_number ) { */ /* printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name ); */ /* break; */ /* } */ /* } */ /* } */
884 名前:デフォルトの名無しさん [2011/11/28(月) 22:51:02.28 ] >>882 Line94 pointer_student = pointer_student->pointerNext; の次に以下を追加 if( ! pointer_student ) { printf( "その番号の学生は居ない\n" ); return 0; }
885 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 23:08:57.39 ] >>874 その、まっとうだと思ってる方法でちょっとコード書いてみて。 割と最近宣言してたように、口数少なく、コードで示す方向で。
886 名前:832 mailto:sage [2011/11/28(月) 23:16:33.32 ] >>878 ideone.com/t0pnr
887 名前: ◆QZaw55cn4c mailto:sage [2011/11/28(月) 23:27:36.26 ] >>882 ideone.com/FzlIy
888 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 23:43:27.35 ] >>887 気持ちは判るけどそこまで書き直しちゃ駄目だろ 次に関数を用いて書き直せって問題が出るかも知れないし
889 名前: ◆QZaw55cn4c mailto:sage [2011/11/28(月) 23:55:07.49 ] >>885 ideone.com/jByzN
890 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:06:36.25 ] >>889 うーん。 中学か高校かもう忘れちゃったけど、 たとえば、 5! / (5 - 2)! を計算する時に (5 * 4 * 3 * 2 * 1) / (3 * 2 * 1) とかいて、 3 * 2 * 1 は分母、分子ともにあるから、取り払って (5 * 4) にする、みたいな記憶はない?
891 名前:デフォルトの名無しさん [2011/11/29(火) 00:07:44.14 ] うまくいかなかったので、わかる方、お手数ですがもう1度お願いします。 問題 一つの行に、n個の “ “(空白)に続いてm個の “*”を順番に出力する関数 void putzs(int n, int m)を作成せよ。 更にこれを用いて no段のピラミッドを描くプログラムを作成せよ。 no=3の場合 - * - *** - ***** よろしくお願いします。
892 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:08:04.78 ] > n!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる この、重複って言うのは、>>890 でいうところの、(3 * 2 * 1)ね。 その工夫を求められてるんだよ。
893 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:11:52.79 ] >>891 >>2 あと何がどううまくいかないのか書けよ
894 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:15:41.33 ] >>892 その簡単な日本語が理解できないのが頭悪いと言われる理由
895 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:19:58.95 ] >>891 #include <stdio.h> void putzs(int n, int m) { while(n--) putchar(' '); while(m--) putchar('*'); } int main(void) { int i, no; scanf("%d", &no); for(i = 1; i <= no; i++) { putzs(no - i, i * 2 - 1); putchar('\n'); } return 0; }
896 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:20:46.72 ] ここは「そんなこともわからねーのか」成分が多すぎる気がするのでなんとなく。 宿題貼った生徒が見て理解できればそれでいいし。
897 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:27:11.20 ] やっと>>859 の問題ができた・・・ codepad.org/hL1rJKQk たぶん合ってると思うけど・・・ 自分の頭の悪さ加減が嫌になってくる・・・
898 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:36:08.88 ] int nCr(int n, int r) { int i, ret = 1; if(n < r * 2) r = n - r; for(i = 1; i <= r; i++, n--) { ret *= n; ret /= i; } return ret; }
899 名前: ◆QZaw55cn4c mailto:sage [2011/11/29(火) 00:37:54.46 ] >>890 >>892 それはすでにしている。プログラム中の f(), g(), h() を使って表現すると、 g(10, 3) = 10 * 9 * 8 f(3) = 3 * 2 * 1 10C7 = h(10, 7) = g(10, 3)/f(3) = (10 * 9 * 8) / (1 * 2 * 3) もっとよく読んでほしい。 >>897 n - r < r のときの工夫が足りない。
900 名前: ◆QZaw55cn4c mailto:sage [2011/11/29(火) 00:41:29.35 ] >>898 途中で ret が小数点含みになる可能性はないのか?
901 名前:デフォルトの名無しさん [2011/11/29(火) 00:43:23.26 ] >>895 ありがとうございます。
902 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:45:16.51 ] 連続したn個の整数の中にはnで割り切れる数が当然含まれる事が理解できないバカっぷり
903 名前: ◆QZaw55cn4c mailto:sage [2011/11/29(火) 00:54:47.45 ] >>902 なるほど理解した。感謝。
904 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:00:50.40 ] ちょっと考えればわかることなのに、本当に頭悪すぎだな
905 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:20:55.33 ] 頭が悪い人に、「頭悪いな」とか言ってやるなよ。 頭が悪い人間でも、頭が悪いなりに一生懸命いきているんだよ。たぶん。 頭悪いとか言われると傷つくんだぞ。 あんまり、頭悪い、頭悪いと言っていじめてやるなよ。
906 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:28:18.39 ] >>875 ideone.com/xOReP
907 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:28:21.12 ] >>875 codepad.org/HvSASYz7
908 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:35:39.54 ] 感覚的に赤青が多そうな気がする
909 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:47:52.25 ] 足して1にならないのに間違ってるって気づかないとかアホすぎる
910 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:52:04.83 ] RR 9 通り RB 12 通り RG 6 通り BB 4 通り BG 4 通り GG 1 通り
911 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 02:09:12.75 ] 本当にアホだった 訂正 >>875 codepad.org/mB8x2PKc
912 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 02:15:09.81 ] >>905 自作自演ウザス こいつは頭が悪いというよりは、人の話を聞く耳を全く持たないと言う方が近いな 自分のやり方を頑なに突き通し、人のアドバイスは全く受けない だから当然新しい進歩も皆無 宿題スレでも題意はもちろん無視して結果だけ正しければそれで良しとする バグを含んでいても前々スレの流れを見ていても分かるように自分にとって都合の悪い 指摘は全部完全無視 こいつが嫌われる理由が分かった
913 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 02:26:16.43 ] >>875 やっつけ仕事だけど #include <stdio.h> int main() { int i,j; int deme[7][2] = {0}; int d[] = {0,0,0,1,1,3}; char c[][3] = {"赤","青","","緑"}; char p[][5] = {"赤赤","赤青","赤緑","青青","青緑","","緑緑"}; for (i=0;i< 7; i++){deme[i][0] = i; deme[i][1] = 0;} for (i=0;i< 6; i++){ for (j=0;j< 6; j++){ int m = d[i]+d[j]; deme[m][1]++; printf("%s%d%s%d\n",c[d[i]],i+1,c[d[j]],j+1); } } for (i=0;i< 6; i++){ for (j=i;j< 7; j++){ if(deme[i][1]<deme[j][1]) { int t = deme[j][1]; deme[j][1] = deme[i][1]; deme[i][1] = t; t = deme[j][0]; deme[j][0] = deme[i][0]; deme[i][0] = t; } } } for (i=0;i< 7; i++){ if (p[deme[i][0]][0] != 0) printf("%s (%2d)\n",p[deme[i][0]],deme[i][1]); } return 0; }
914 名前:839 mailto:sage [2011/11/29(火) 02:29:36.16 ] >>842 遅レスだけど 5分でデバッグなしで作ったんだよ〜 ほかにも考慮する部分あるけど 馬鹿にしないでくれよ〜
915 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 02:33:13.69 ] >>899 よくよんでないんだけど、20C10って117であってんの?
916 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 02:35:42.52 ] オーバーフローしてる
917 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 02:36:42.64 ] なるほど
918 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 02:39:20.87 ] >>914 他にも突っ込みどころはあるけど >#define RAD(r) ((r)/(180*PI)) これはひどすぎるだろw
919 名前:839 mailto:sage [2011/11/29(火) 02:58:27.10 ] >>918 ごめんよ〜ごめんよ〜
920 名前: ◆EiEUm/qHNk mailto:sage [2011/11/29(火) 06:18:53.28 ] ideone.com/OeQkS ideone.com/VPNB0 大変申し訳ないのですが、forやifのあとに { がないのですが、付け足しては貰えないでしょうか、、、
921 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 07:31:56.70 ] それぐらい自分でやれよwww
922 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 07:35:45.55 ] C言語習ってないのかよw
923 名前: ◆QZaw55cn4c mailto:すごい粘着さすがに鬱になる [2011/11/29(火) 07:55:06.55 ] >>912 自演認定ご苦労。 バグは判明した分についてはほぼ訂正を入れるようにしているのだが、抜けがあるのか? >>902 ちょっと考えていたが、例えば、n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。 >>898 のループ各回の割り算の直後の ret は nC1, nC2, nC3 ... になっているのでほぼ自明だが、厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。 ともあれ、>>898 はオーバーフローの心配が少ないいい方法だ。
924 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 08:00:25.58 ] 馬鹿すぐる
925 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 08:07:24.27 ] >例えば、n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。 反例を示してくれ あ、触ったらいけなかったか?
926 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 08:26:55.57 ] (ノ∀`)'`,、'`,、'`,、'`,、'`,、 Qって真性のアホだよな 自分の主張を通すなら間違っている事も正しい事にするのか? 朝鮮人みたいだ
927 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 08:32:49.45 ] 俺が理解できないこと=誰も証明できないこと なんだな、Qの中では
928 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 08:35:02.52 ] >>927 そう、その「自分が世界で一番頭が良くて偉い」という価値観こそが自己愛の 最大特徴なんだよ 傍から見ていると滑稽で仕方がないんだがなwww
929 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 11:53:50.39 ] > その「自分が世界で一番頭が良くて偉い」という価値観 それは有る意味で尊敬に値するぞ、社会を知らないって事は幸せなんだw
930 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 12:24:47.68 ] 裸の王様だよな
931 名前: ◆QZaw55cn4c mailto:sage [2011/11/29(火) 12:33:54.38 ] >>925 反例はないだろう。nC4 は整数であることは経験的に自明だから。それは >>923 の後半でも述べている。 >>902 の記述だけでは >>900 の説明としては足りないのではないか?と考え考えしているだけなのだが。 こういえばよかったか? 「N が 2, 3, 4, のすべてで割り切れるからといって N は 2 * 3 * 4 で割り切れるとは限らない」 nCm が整数であることはどうやって証明すればいいのだろうか? >>926-929 なんでそういう解釈となるのか理解に苦しむ。
932 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 12:33:58.51 ] >例えば、n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。 こんなバカが偉そうな態度とってりゃ、ムカつく人間も出るわなw
933 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 12:35:29.64 ] 「N が 2, 3, 4, のすべてで割り切れる」だと4で割り切れるうちに2で割り切れるのも含まれるからとかバカなこと考えてるんだろうなw
934 名前:878 mailto:sage [2011/11/29(火) 12:40:45.22 ] >>886 ありがとうございました。 変数の追加をすれば良かったのですね。 なかなか思いつかない発想だと思います。
935 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 12:41:57.22 ] Qの主張は現代高校教育の数学において、証明できていない事をもとにした計算方法を教えてるってことになるなw
936 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 12:46:12.84 ] >>724 有難う御座います
937 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 12:46:41.07 ] Qは自分の>>889 のやり方も割り切れると証明されてないと主張してることに気づいているんだろうか
938 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 13:01:41.03 ] >>937 気付いてないだろ Qは真性の馬鹿だから
939 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 13:03:15.44 ] >>931 >>>926-929 >なんでそういう解釈となるのか理解に苦しむ。 そりゃQには理解出来ないだろうよ 人格障害なんだから 理解出来たら今までの厚顔無恥な発言は二度と恥ずかしすぎて出来なくなる
940 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 13:05:00.16 ] おまけに割れ厨を正当化して公言しちゃってるもんな 警察に目を付けられてるかもしれんぞ
941 名前:デフォルトの名無しさん [2011/11/29(火) 13:07:35.91 ] 算数っていうのはある種の人にとっては超能力なんだよ^^ 高校でベクトルと行列と複素数が表裏一体であると教わっても クラスの半数くらいの人間が「何を言っているのだ」と感じるのと一緒 マッサー先生は「プログラマは生涯数学の勉強をしないさい」と書いてたけど 算数の才能のない人はプログラマにはなれず、せいぜいコーダ止まりなんだなと 今更ながらに思うまんこ。
942 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 13:52:12.39 ] 大体nCrの結果が整数じゃないかもしれないって思うのがおかしいんだよ
943 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:01:25.23 ] 高校中退だったりしてw
944 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:02:55.70 ] >>931 >nCm が整数であることはどうやって証明すればいいのだろうか? マジレスすると、証明方法はいろいろあると思うがとりあえず数学的帰納法とか。 k個の積がk!で割り切れるときにk+1個の積が(k+1)!で割り切れることを示せれば良い。
945 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:06:08.52 ] むしろnCrをどう計算したら整数じゃなくなるというんだ?
946 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:07:25.12 ] 背理法でもいいんじゃね? 組み合わせの「数」なんだから少数点以下が付くわけないだろ
947 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:09:35.59 ] しかし無理数×無理数=整数となる場合があるのは美しいよなあ √2×√2=2なんて中学生でも知ってるけど、√2は無理数だからなあ
948 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:09:58.89 ] いまだに民事と刑事を取り違えてるバカがいるな
949 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:13:54.11 ] おっ、Qが釣り餌に食いついてきたようだぞ
950 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:26:23.64 ] ttp://okwave.jp/qa/q2783973.html のANo.2かな。 自力で数学的帰納法に持っていけんかった・・・orz
951 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:28:14.79 ] これとか detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1146105626
952 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:28:45.97 ] detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1161979946 こっちの方が良い
953 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:29:46.40 ] さてQは見事に論破されたわけだが >厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。 馬鹿過ぎて笑える
954 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:30:21.94 ] Qのことだから
955 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:53:13.90 ] >>875 遅レスだが。 ideone.com/Ne3DF
956 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 14:57:29.37 ] >>955 int max=0;
957 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 15:19:16.72 ] Qを嗤うのは目か鼻か nCrが整数か否かは、すんごく深い数学では 自明じゃなかったりするが、Qがそれとは関係無いことは自明 ま、それは兎も角、 >>875 とか>>868 の問題辺りはQはどう解くか見てみたい。
958 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 15:26:26.30 ] >>957 nCrは整数の加算で表せるから整数にしかならんぜ?
959 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 15:26:52.49 ] Qと同レベルのアホがきたw
960 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 15:27:49.88 ] >>959 は>>957 のことな わかるとは思うけど、一応
961 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 15:34:18.68 ] >>960 具体的に整数にならない条件教えれ
962 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 15:40:16.81 ] >>960 ごめ。まちがえた
963 名前:デフォルトの名無しさん [2011/11/29(火) 15:43:35.36 ] 返事遅れてごめん。>665のものです。 いろいろありがとう。プログラムの意味をこれから理解してみます。
964 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 15:48:39.31 ] >>957 あのさあ Q自身が>>923 で >厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。 と言っちゃってるわけなんだけど あなたの目は節穴ですか? >Qがそれとは関係無いことは自明 あなたもQと同程度、あるいはQ以上に馬鹿ですね
965 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 16:41:15.70 ] nCrが整数にしかならないってのは、5個のケーキを0.3人で分けることよりわかりやすいと思うんだけどな。 ただ、>>957 の、すんごく深い数学でどうなってるのかはわからん。 軽めのアンカー希望
966 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 16:54:47.81 ] >>965 尊師に聞いてみるといいかも
967 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 18:45:43.42 ] 題意無視するなら再帰もいらないよね で、何処で整数じゃなくなるんだ? int ncr(int n, int r) { int i,j,result; int *c=(int *)calloc(sizeof(int),n+1); assert(n >= r); c[0]=1; for(i=0;i<=n;i++) for(j=i;j>0;j--) c[j] += c[j-1]; result = c[r]; free(c); return result; }
968 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 19:20:25.78 ] だれか、次スレ立ててくれ
969 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 19:29:03.37 ] 3.3個のりんごから1.4個のりんごをとる場合の組み合わせが必要な数学があるんだろうとおもうよ
970 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 19:32:05.93 ] 次スレたてたよ。 ここちゃんと使い切ってね。 C/C++の宿題片付けます 154代目 hibari.2ch.net/test/read.cgi/tech/1322562648/
971 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 19:43:18.54 ] 初歩的なことすら理解できないアホがベルトランとかチェビシェフとかドヤ顔で口にしてるのが笑えるw
972 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 19:58:43.07 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク):www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4900 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 2011年12月1日 [5] 実装にはスタックを用いてください。 そのスタックはwww.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4901 です。 よろしくお願いします。
973 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 20:48:40.65 ] >>972 これは多倍長計算すればいいのか? >式の長さや式中に現れる整数には制限を設けない。すなわち、どれだけ式の長さが長くても、またどのような整数が出現しても正しく動作するようにすること。
974 名前: ◆QZaw55cn4c mailto:sage [2011/11/29(火) 20:51:09.31 ] >>868 >>957 我流だ。許せ。ideone.com/qdTvv >>952 >>874 を理由にパスカルの三角形を >>859 ideone.com/zrB3A の f2() で使っている。
975 名前: ◆QZaw55cn4c mailto:sage [2011/11/29(火) 20:58:19.85 ] >>868 バグ修正:ideone.com/iGtli
976 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 21:05:54.95 ] >>974 ん?どこに >まあ、r! または (n-r)! まで計算して、その結果を取り置いておき、続きを n! まで計算する、ていうのがまっとうなんでしょうね。 という事をやってんの?単なる再帰に過ぎないじゃん アッカーマン関数でもstd::mapではない連想配列(値を参照してもキーが存在しない場合は デフォルト値を返さない)に途中までの結果を入れると全然速度が違う ついにボケ始めたか