- 1 名前:デフォルトの名無しさん [2008/12/31(水) 08:02:03 BE:378684285-PLT(43140)]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題を片付けます 120代目 pc11.2ch.net/test/read.cgi/tech/1229424329/
- 199 名前:197 ◆brUNnJvSqY [2009/01/05(月) 01:10:31 ]
- >>197
訂正 [1] 授業単元:プログラム [2] 問題文(含コード&リンク): 【文字データの入力と出力】 Visual Studioを用いてConsoleApplicationを作成せよ。 以下の条件を満たすものを作成する事。 最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。 登録数は任意に決定出来、10名を超えた場合は再入力させる事。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: visualC++2005 [3.3] 言語:C [4] 期限: 2009年1月5日6時まで [5] その他の制限: 構造体を習い始めた程度の能力
- 200 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:15:44 ]
- >>198
#include <stdio.h> int main() { printf("sum { 1, 3, ... , 99 } = %d\n", 50 * (1 + 99) / 2); printf("sum { 2, 4, ... , 100 } = %d\n", 50 * (2 + 100) / 2); return 0; }
- 201 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:53:41 ]
- >>199
/* ちょっと気持ち悪く書いてみたよ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define ENTER_MAX 10 #define NAME_LEN 256 #define AGE_LEN 4 #define BUFF_SIZE (NAME_LEN + AGE_LEN + 1) int main(void) { char table[ENTER_MAX][BUFF_SIZE]; char buff[BUFF_SIZE]; int n; int i; do { printf("登録数 (1 から %d) >> ", ENTER_MAX); } while ((n = atoi(fgets(buff, BUFF_SIZE, stdin))) > ENTER_MAX); for (i = 0; i < n; ++i) { int len; printf("名前 >> "); fgets(table[i], NAME_LEN, stdin); len = strlen(table[i]); printf("年齢 >> "); fgets(&table[i][len + 1], AGE_LEN, stdin); table[i][len - 1] = ','; table[i][len] = ' '; } for (i = 0; i < n; ++i) printf("%s", table[i]); return 0; }
- 202 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:09:03 ]
- >>186
親切な解答、ありがとうございました。1はまた考えてみます。 失礼しました。
- 203 名前:197 ◆brUNnJvSqY mailto:sage [2009/01/05(月) 02:12:10 ]
- >>201
ありがとうございます。 fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? という、エラーが出てしまいます。回避法はありますでしょうか? 出来れば、初心者に毛が生えた程度のプログラムで作っていただけると有りがたいです。
- 204 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:13:16 ]
- >>203
#include <stdafx.h> をソースの頭に書け あと氏ね
- 205 名前:デフォルトの名無しさん [2009/01/05(月) 02:32:12 ]
-
[1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8523.txt [3] 環境 [3.1] OS: win [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限: 朝まで [5] その他の制限: よろしくお願いします
- 206 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:47:14 ]
- >>205
/* 意味が良くわからないけどこういうことかな */ #include <stdio.h> #define N 1024 const char const *str = "#include <stdio.h>\n\nint main() {\nint k, c, n, i;int l;int m = 0;\n\ \tfor (k = 0; k < 3; k ++) {\n\t\tfor (n = l = 0;\n\t\t\ (c = getchar()) != '\\n';l++) {\n\t\t\tif (l == 0 && c == '-') {\n\t\t\tprintf(\"Error!!負の数\\n\");\ \n\t\treturn 1;\n\t}\n\tif (l < 8) {\n\t\tif (c < '0' || c > '9') {\n\ \t\tprintf(\"Error!!数字文字以外の入力\\n\");\n\treturn 1;\n}\n\ \tn = n * 10 + c - '0';\n\t}\n}\n\tif (l == 0) {\n\tprintf\ (\"Error!!改行のみの入力\\n\");\nreturn 1;\n}\n\tm += n;\n\t}\n\ \tprintf(\"合計は%d\\n\", m);\nreturn 0;\n}\n"; int main(void) { int x[N], i; for (i = 0; str[i]; ++i) x[i] = str[i]; return 0; }
- 207 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:23:15 ]
- ちょ、そのクワイン的発想は何w
- 208 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:36:17 ]
- 字義通りだと、こうだろ?
むしろ、他の解釈を聞かせて欲しい。
- 209 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:42:07 ]
- ビルド済みのバイナリかソースのどちらかだろうとは考えた
- 210 名前:C初心者 [2009/01/05(月) 11:00:16 ]
- >>196
すいません、リンク先に行けなくて見れてないです。
- 211 名前:デフォルトの名無しさん [2009/01/05(月) 12:52:12 ]
- [1] 授業単元: c
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8524.txt [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限:夕方 [5] その他の制限: よろしくです
- 212 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:00:26 ]
- >>211
何周目だよ。死ねよ。
- 213 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:16:18 ]
- >>1
> 気に入らない質問やその他や発言はスルーの方向で。 も読めない基地外って何?別にお前個人を指定、特定して答えろなんて 誰も言って無いし、答えられない低レベル役立たずのクズになんて頼んでもいないだろ。
- 214 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:21:06 ]
- スレタイも読めないようだな。ここで丸投げの宿題が書き込まれるのは
分かりきっていることなのに、自分が気に入らないとファビョって 訳も分からないクレームをつける奴って何?そんなんだから 一生、成功しないままこの世を去るんだろ?w そういうのって簡単に言うと「負け組み、社会の底辺」って言うんだぜ? ほれ、お前と同じ世代、同じ学校に通っていたけど自分が見下していたあいつ、 今何をしてる?少なくともお前以上の出世はしただろうねw お前はいつまでも、こんなスレで引きこもりながら陰湿なレスをし続けるだけ。 人生終わってら。
- 215 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:44:35 ]
- >>211
/* たぶん大丈夫だと思う */ #include <stdio.h> #include <stdlib.h> #include <math.h> #define L 3 #define N 8 #define M (N * sizeof(int)) int main(void) { int *x[L], total = 0, i; for (i = 0; i < L; ++i) { int n; x[i] = (int *)malloc(M); printf(" input number >> "); if ((n = atoi(fgets((char *)(x[i]), M, stdin))) > (int)pow(10, N)) printf("%d\n", n %= (int)(pow(10, N))); if (n < 0 || (n == 0 && x[i][0] != '0')) { fprintf(stderr, "Error!\n"); return 1; } total += n; } printf("answer = %d\n", total); return 0; }
- 216 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:45:57 ]
- 下から9行目の
printf("%d\n", n %= (int)(pow(10, N))); は n %= (int)(pow(10, N)); に直して。
- 217 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:17:06 ]
- >>211
#include <stdio.h> int input() { char c;int a = 0;int cnt = 0; while(1) { c = getchar(); if(c == '\n') break; if('0'<=c && c<='9') a = a*10 + c-'0'; else cnt=9; cnt++; } if(cnt==0 || cnt>=9) return -1; else return a; } // int main(void) { int a[3],i; printf("8桁までの整数を3つ入力してね\n"); for(i=0;i<3;i++) { a[i] = input(); if(a[i]<0) { fprintf(stderr,"Error : 8桁までの整数を入力してくださいませ\n"); return -1; } } printf("合計 %d + %d + %d = %d\n",a[0],a[1],a[2],a[0]+a[1]+a[2]); return 0; }
- 218 名前:デフォルトの名無しさん [2009/01/05(月) 14:19:49 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8525.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Stdio 2005 [3.3] 言語: C [4] 期限: 1/5 21:00 よろしくお願いします。
- 219 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:29:53 ]
- [1] 文字列の格納、比較
[2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8527.zip (設問もzipに入っています。) このプログラムをポインタとstrchr関数を使わない形に書き換えていただけないでしょうか。 あと、コメントアウトでややこしいところ、ループの箇所等に説明をつけていただけるとありがたいです。 [3] 環境 [3.1] WinXP [3.2] Borland C++ Compiler 5.5 [3.3] 言語:C言語 [4] 期限:[2008年1月15日00:00まで] [5] 原則的にgoto 文は使用しない。 do while ループに関してはできるかぎり使用せず、while に統一する。 ※キーボードからの入力は、scanf 関数およびgets 関数を使用せず、getchar 関数または、 fgets 関数を使用すること。
- 220 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:33:13 ]
- >>213
- 221 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 17:03:15 ]
- >>219
しね
- 222 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 18:22:05 ]
- >>218
こんな感じでいかが? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8528.txt
- 223 名前:デフォルトの名無しさん [2009/01/05(月) 19:26:03 ]
- >>211
もう前スレで解答してあるはずだが
- 224 名前:218 [2009/01/05(月) 20:03:05 ]
- >>222
自分のミスで問題に一部書き忘れをしてしまいましたが、ここまでしていただければ十分です ありがとうございました
- 225 名前:デフォルトの名無しさん [2009/01/05(月) 22:33:58 ]
- [1] 授業単元: 計算機工学
[2] 問題文(含コード&リンク): 下記 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 2009年01月15日19:00まで [5] その他の制限: なし ■問題 指定した部品数で建てられる家の最大面積を求めるプログラムを作成して下さい。 窓、ドア、壁の3タイプの部品があり、部品の長さは2m。 次のルールを満たさなくてはいけません。 1)1面にはドアは1つまで 2)家には少なくとも1つのドアが必要 3)ドアの両脇は壁部品でなくてはならない 4)窓の両脇は壁部品でなくてはならない 5)家は四角型 6)部品はそれぞれ50個が上限 int MaxArea(int NumWall,int NumWin,int NumDoor) このように各部品の数を指定し、面積を返す関数を作ってください。 例) MaxArea(8,0,1) = 12 --- | | -D-
- 226 名前:デフォルトの名無しさん [2009/01/05(月) 23:14:44 ]
- 文字型配列を、"OKINAWA"を初期値として宣言し、文字列を
反転させて、"AWANIKO"と出力するプログラムを作りなさい。
- 227 名前:デフォルトの名無しさん [2009/01/05(月) 23:25:18 ]
- >>226
char str[]="OKINAWA"; reverse(str); printf("%s",str);
- 228 名前:226 mailto:sage [2009/01/05(月) 23:32:05 ]
- 自己解決しました。
- 229 名前:デフォルトの名無しさん [2009/01/05(月) 23:35:47 ]
- >>226
for使っての解き方誰かわかりますか?
- 230 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:38:45 ]
- >>225
Google Code Jam 2004のHousePartyってヤツだな。
- 231 名前:デフォルトの名無しさん [2009/01/05(月) 23:44:51 ]
- >>229
reverse(char *str) { int i; for(i=0; i<len(str)/2; i++) { char c=str[i]; str[i]=str[len(str)-i-1]; str[len(str)-i-1]=c;} }
- 232 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:48:51 ]
- [1]授業単元:C言語
[2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8531.txt [3]環境 [3.1]OS:windows XP [3.2]コンパイラ名: visualC++2005 [3.3]言語:C [4]期限:2009年1月6日午前8時 [5]特になし。
- 233 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:16:37 ]
- >>232
for(int i=0; i <= 100 ; i++ )if( i * ( i + 1 ) / 2 >= N ) { printf("%d\n",i); break;} while( i * ( i + 1 ) / 2 < N ) { i++; }
- 234 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:17:14 ]
- whileの方の初期化忘れたw
- 235 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:18:23 ]
- >>232
#include<stdio.h> int main() { int i=0, n; scanf("%d", &n); while ((n-=++i)>0) /* または for(;(n-=++i)>0;) */ if (i==100) {printf("100まで加算してもだめだった\n"); return 0;} printf("%dまで加算すればおk\n", i); return 0; }
- 236 名前:デフォルトの名無しさん [2009/01/06(火) 00:19:31 ]
- >>232
int func_for(int n) { int i;for(i=1;i<=100;i++) if(i*i+i >= 2*n) return i; return -1; } int func_while(int n) { int i=0; while(++i<=100) if(i*i+i >= 2*n) return i; return -1; } main() { int i,ans;scanf("%d",&i);ans = func_for(i);if(ans>=0) printf("answer = %d\n",ans); else printf("not found\n"); }
- 237 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:09:51 ]
- >>225
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8532.txt 一応、例題の計算結果には合致するようだが、理屈は分からん。
- 238 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:11:59 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8533.txt [3] 環境 [3.1] OS:windows XP [3.2] コンパイラ名とバージョン:visual C++ 2008 Express Edition [3.3] 言語:C言語 [4] 期限:1月9日 [5] その他の制限:特にありません。 よろしくお願いします。
- 239 名前:デフォルトの名無しさん [2009/01/06(火) 02:18:23 ]
- [1]プログラミング
[2]int 型(符号つき32 ビット整数)および、unsigned int 型(符号なし32 ビット整数)のそれぞれの最大の素数を求めよ。 [3]環境 [3.1] OS:WindowsXP [3.2] コンパイラ名bcc [3.3] 言語:C言語 [4]特になしですが早めで。 [5]制限:エラトステネスを用いずに素数を求める。 どうか、よろしくお願いします。
- 240 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 03:38:59 ]
- >>239
>>177あたりでどう?
- 241 名前:デフォルトの名無しさん [2009/01/06(火) 04:40:34 ]
- >>240
みのがしてました。ありがとうございますです。
- 242 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 08:19:55 ]
- スイマセン、どなたか>>200の
(99+1)/2 の処理の意図を教えて頂けないでしょうか・・後から質問でスイマセン。
- 243 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 08:32:30 ]
- >>242
等差数列の和=項数*(初項+末項)/2
- 244 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 08:44:07 ]
- >>239 >>182 辺りが良いでおじゃるよ?
- 245 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 09:03:46 ]
- >>238
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8534.txt
- 246 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 10:03:14 ]
- >>242
ttp://www.kwansei.ac.jp/hs/z90010/sugakua/suuretu/tousasum/tousasum.htm
- 247 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:31:15 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):氏名と年齢を扱うプログラムを作りたい。これらのデータはリスト構造を用いて管理したいので、 1.リスト構造の要素となる構造体の型宣言を行え 2.上記構造体によって構築されたリスト構造の適切な箇所に新しい要素を追加する関数を作成せよ なお、以下の点も守ること ・リスト構造は単方向リストとすること ・リスト構造のデータは年齢順に並ぶようにすること ・リスト構造はポインタ変数rootから始まるようにすること ・関数は新しい要素を受け取って、それをリスト構造に追加する形式にすること ・変数rootはグローバル変数とし、関数に渡さなくてもよい [3] 環境 [3.1] OS:windows XP [3.2] コンパイラ名とバージョン:visualC++2005 [3.3] 言語:C/C++ [4] 期限:1月7日12:00まで [5] その他の制限:特になし よろしくお願いします。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:38:29 ]
- 麻呂のクソースを改変するでおじゃるよ
- 249 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 15:05:44 ]
- [1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8535.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC2005 [3.3] 言語:C++ [4] 期限:2009/1/8 23:00まで [5] その他の制限:for,if等基本的なものを使う。strは禁止。 それではよろしくお願いします。
- 250 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 15:08:14 ]
- >strは禁止。
str〜系関数のこと? 最初std::stringかと思ったが・・・
- 251 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 16:35:41 ]
- [1] 授業単元:プログラミング
[2] 問題文 Step 1. float型配列の先頭アドレスを受け取り,その配列内から最大の値を探して, それを関数値として戻す関数 float max(float data[], int n) を定義せよ.ここで,nは配列data[]に入っている有効なデータの数(有効な配列要素は,0〜n-1)である. またデータに負の値はないものとする. Step 2. main()関数内で,要素数100程度のfloat型配列を宣言し,課題11-2で作成したデータ入力関数のinput()関数を再利用してデータを配列に入力するようにプログラムする. 次に,Step1で作成した関数をmain()関数内呼び出して最大値を表示せよ. [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン:VC2008 [3.3] 言語:C++ [4] 期限:2009/1/8 23:00まで [5] その他の制限 特になし よろしくお願いします
- 252 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 17:01:44 ]
- >>251
問題文も読まずに丸投げとは・・・
- 253 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 17:08:38 ]
- まだスレタイも読めない奴がいるのか
- 254 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 17:12:52 ]
- [1] 授業単元:プログラミング演習U
[2] 問題文: 以下の仕様で収支残高管理プログラムを作成せよ.ただし,残高処理の関数を独自で定義すること. その際,ファイルポインタについてはグローバル変数として宣言しても良い. 初期状態を除いてプログラム実行時に既存の残高額のファイル(balance.txt)を読み込む. ファイルが存在する場合に限り,balance.txt)を読み込む処理をすれば良い. 各処理を選択するメニュー画面を残高額とともに表示する.可能であれば,残高は桁区切りカンマを用いて表示すること. 終了時にその時点の残高額をファイル(balance.txt)に書き込む. ヒント:最初にbalance.txtを読み込みモードで開いて読み込んだ後は,即座にファイルを閉じ,最後の書き込み時に,改めて書き込みモードで開いて同名のファイルに書き込みをすれば良い. また,ファイルからの金額の読み込みにはfscanfを,書き込みにはfprintfを使用すると良い.
- 255 名前:254 mailto:sage [2009/01/06(火) 17:15:48 ]
- >>254続き
[実行例] ***** 収支残高管理 ***** 残高は \0 です. [1] 収入 [2] 支出 [99] 終了 処理を選択してください:1 収入金額:12345 ***** 収支残高管理 ***** 残高は \12,345 です. [1] 収入 [2] 支出 [99] 終了
- 256 名前:254 mailto:sage [2009/01/06(火) 17:16:27 ]
- >>255続き
処理を選択してください:2 支出金額:20000 ***** 収支残高管理 ***** 残高は \-7,655 (赤字)です. [1] 収入 [2] 支出 [99] 終了 処理を選択してください:99 終了します. [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:Microsoft Visual Studio.Net 2003 [3.3] 言語:C++ [4] 期限:2009年1月8日 [5] その他の制限:特になし よろしくお願いします。
- 257 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 17:21:54 ]
- >>253
- 258 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 17:38:13 ]
- >>251
#include<iostream> #include<algorithm> float max(float data[], int n){ if(n<=0) return -1.0; return *std::max_element(data, data+n); } int input(float data[], int data_num_max){ int data_num; for(data_num=0;data_num<data_num_max;){ float value; if(!(std::cin >> value)) break; data[data_num++]=value; } return data_num; } int main(void){ float data[100]; int data_num, data_num_max=sizeof(data)/sizeof(data[0]); data_num=input(data, data_num_max); std::cout << max(data, data_num) << std::endl; return 0; }
- 259 名前:デフォルトの名無しさん [2009/01/06(火) 18:26:57 ]
- [1] 授業単元: プログラミング入門演習
[2] 問題文(含コード&リンク): 複数の整数のうち、指定した数で割り切れる整数の個数を求めるプログラムを作成せよ。 入力に関して キーボードから入力する整数の個数を入力し(最大で128に対応すること)改行する。 次に指した数の整数をスペース1つずつ開けて1行で入力し、改行する。 最後に1つ整数を入力し、改行する。この最後に入力した値で割り切れるかどうか 判定する。この一連の入力時,例題や解答例のような入力を保す文字等は決して表示 しないこと。 出力に関して 割り切れる整数の個数を数値のみ(+改行)を出力する。指定した数値・改行以外の 文字等の出力は一切行わないこと。 [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン:Visual Stdio 2008 [3.3] 言語:C言語 [4] 期限: 1/8 12:00 [5] その他の制限:C言語の基礎を習っています。 よろしくお願いします
- 260 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 19:07:31 ]
- >>250
説明不足でごめんなさい strlen関数のことです #include <stdio.h> void main(){ char moji[100]; int i=0,x; printf("文字列を入力:"); gets(moji); printf("\n\n"); while(moji[i] != '\0'){ i; i++; } x=i+1; printf("文字列の長さ=%d",x); printf("\n\n"); } という求め方を習ったのですが、strlen関数は習っていないので・・・
- 261 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 19:38:19 ]
- >>260
C++?
- 262 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 19:46:33 ]
- >>243
>>246 ありがとうございました 助かりましたw
- 263 名前:つばめ [2009/01/06(火) 20:35:24 ]
- 分からない問題があります。
正の整数nを入力し、nの約数の和を表示するプログラムを作る問題です。 初心者なので、宜しくお願いします。
- 264 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 20:40:56 ]
- 一つの整数の約数って・・・・1からnまで全部足せばいいのか?w
- 265 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 20:52:19 ]
- >>263
#include <stdio.h> int sum(int n){ return n == 0 ? 0 : n + sum(n - 1); } int main(int n){ return scanf("%d", &n), printf("%d\n", sum(n)); }
- 266 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 20:55:10 ]
- 約数の意味がわからないアホがここで何してんの?
- 267 名前:265 mailto:sage [2009/01/06(火) 20:56:12 ]
- アッー
>>264に騙された
- 268 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:00:21 ]
- >>263
#include <stdio.h> int main(void) { int i, n, sum; scanf("%d", &n); for(i=1,sum=n; i<n; i++) if(!(n%i)) sum += i; printf("%d", sum); return 0; }
- 269 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:14:41 ]
- >>259
#include<stdio.h> int main(void){ int data[128], data_num; int i, div; scanf("%d", &data_num); for(i=0;i<data_num;i++) scanf("%d", &data[i]); scanf("%d", &div); for(i=0;i<data_num;i++) if(data[i]%div==0) printf("%d\n", data[i]); return 0; }
- 270 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:17:12 ]
- 表示するのは個数だろ
- 271 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:27:20 ]
- >>261
返事遅くなって毎度毎度すいません・・・ C++です
- 272 名前:つばめ [2009/01/06(火) 21:31:50 ]
- 質問回答ありがとうございます。
C++ではなく、C言語の方です。
- 273 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:38:08 ]
- >>270
このツンデレが!
- 274 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:39:56 ]
- なんでもツンデレ言うアホにはうんざりだ
- 275 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:43:58 ]
- じゃあ世話焼きで俺のことが大好きな妹で
- 276 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:59:37 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8536.txt [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: visualc++2005 [3.3] 言語:C [4] 期限:2009年1月7日AM7時 よろしくお願いします
- 277 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 22:06:46 ]
- [1] 授業単元: 情報処理応用
[2] 問題文(含コード&リンク): DirectShowを用いてtest.aviなどファイルから再生している動画をout.aviなど別ファイルとして保存する [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: VC++2008 [3.3] 言語: C++ [4] 期限: 1月7日 [5] その他の制限: スレ違いかもしれませんができればお願いします
- 278 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 22:08:05 ]
- >>276
#include <stdio.h> int main(void) { int i, j = 0; while (j < 2 && scanf("%d", &i) != EOF) { if (i < 0) { puts("negative value"); j++; } else { j = 0; printf("%d\n", 2*i); } } return 0; }
- 279 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 22:12:58 ]
- [1] 授業単元:アルゴリズムの基礎および演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8518.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年1月10日12:00まで [5] その他の制限:特にありません。 よろしくお願いします。
- 280 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 22:26:15 ]
- >>279
1. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8540.txt 2. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8543.txt
- 281 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:07:11 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8538.txt [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: visualc++2005 [3.3] 言語:C [4] 期限:2009年1月7日AM9時 よろしくお願いします
- 282 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:10:01 ]
- >>279
3. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8544.txt 4. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8545.txt
- 283 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:29:31 ]
- >>281
pc11.2ch.net/test/read.cgi/tech/1229424329/601
- 284 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:57:36 ]
- >>283
これを利用しろということですか?
- 285 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:04:29 ]
- >>278
ありがとうございます ちなみにfor文の方はどうなっているのでしょうか?
- 286 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:11:58 ]
- [1] 授業単元:C言語
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8546.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:09年1月7日24:00まで [5] その他の制限:丸投げですいません。基礎的な関数のみでよろしくお願いします。
- 287 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:14:42 ]
- >>285
#include <stdio.h> int main(void) { int i, j = 0; for (;j < 2 && scanf("%d", &i) != EOF;) { if (i < 0) { puts("negative value"); j++; } else { j = 0; printf("%d\n", 2*i); } } return 0; } こんな感じでどうかな
- 288 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:03:59 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8547.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC++2008 [3.3] 言語: C [4] 期限: 1月7日 [5] その他の制限: 特になし よろしくお願いします
- 289 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:10:06 ]
- >>288
課題7-3がないと無理
- 290 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:17:22 ]
- >>289
無視してかまわないです 追記 データ入力数は最大のmax個に達するか,負値が入力されるまでデータ入力を繰り返すものとする
- 291 名前:デフォルトの名無しさん [2009/01/07(水) 01:21:38 ]
- [1] 授業単元:計算機工学
[2] 問題文(含コード&リンク):下記 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC++2008 [3.3] 言語: C [4] 期限: 1月15日 [5] その他の制限: 特になし ■ 検索問題 データ数10万 ランダムな対象を1万回検索する 先頭から検索すると平均で1000秒かかった 高速化するにはどうしたらよいか ソートされてる場合とされてない場合のそれぞれについて答えよ
- 292 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:26:38 ]
- >>291
ソートされてない場合 まずソートする、 このとき オーダーが n log になるようなまともなソートを使う これを二分探索する ソートされてる場合 二分探索する
- 293 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:27:09 ]
- オーダーは n * log (n) ね
- 294 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:28:24 ]
- >>286
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8548.txt
- 295 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:31:32 ]
- >>288
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8549.txt
- 296 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:42:34 ]
- >>291
それは本当にプログラミングの課題なのか? 考察ではなく実際に試したとしたら、116日ほどかかった計算になるんだが
- 297 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:42:55 ]
- >>295
ありがとうございます
- 298 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:54:29 ]
- >>249
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8552.txt
- 299 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 02:31:06 ]
- [1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク): キーボードから入力した整数と小数(それぞれ1つずつ)を乗算した結果を表示するプログラムを、 ポインタによる間接参照演算子を用いて作成せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:1月7日24時 [5] その他の制限: 入力、乗算、表示部分全てでポインタを用いる よろしくお願いします。
|

|