- 1 名前:デフォルトの名無しさん [2007/07/15(日) 22:31:51 ]
- あなたが解けない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++の宿題を片付けます 92代目 pc11.2ch.net/test/read.cgi/tech/1183511364/
- 132 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:40:48 ]
- [1] 授業単元:情報基礎
[2] 問題文: ・1から9までの数字を一回ずつ使った9桁の数字を小町数という。 自乗した数が小町数となるような自然数をすべて求めるプログラムを作成し その数と小町数の両方を出力せよ [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: (明日まで ) [5] その他の制限: 無し C言語習いたてで、期限ぎりぎりまでがんばったんですけどダメでした どなたかよろしくお願いします。
- 133 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:52:56 ]
- 昔のスレに同じ質問あった気がするな
- 134 名前:22 mailto:sage [2007/07/16(月) 23:54:32 ]
- >>25
ありがとうございます。 なんですが、元々のソースを追記修正して今まできたので 一応そのような形でって事になってます。 制限なしと書いていましたが、現在のソースを やっと作れるか作れないかぐらいのレベルなので >>25さんのだとまだちょっとわからないことがいろいろとあります。 勉強してみます。ありがとうございました。
- 135 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 00:08:28 ]
- >>132
#include <stdio.h> #include <string.h> int check(unsigned long n) { char f[10] = { '0' }; for (n = n * n; n > 0; n /= 10) f[n % 10] = '1'; return memcmp(f, "0111111111", 10) == 0; } int main(void) { unsigned long n; /* * 最小小町数 123456789, sqrt(123456789) = 11111.11... * 最大小町数 987654321, sqrt(987654321) = 31246.96... */ for (n = 11111; n < 31428; ++n) if (check(n)) printf("%lu * %lu = %lu\n", n, n, n * n); return 0; }
- 136 名前:135 mailto:sage [2007/07/17(火) 00:11:09 ]
- あ、コメント間違ってら
sqrt(987654321) = 31426.96... ね、正しくは。
- 137 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 00:18:27 ]
- >>136
わざわざありがとうございます! 今できる環境にないので明日大学で試してみます
- 138 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 01:10:25 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4649.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:本日(17日)まで [5] その他の制限:無し よろしくお願いします。
- 139 名前:デフォルトの名無しさん [2007/07/17(火) 01:50:51 ]
- >>108
ありがとうございます。 終了条件の部分大変参考になりました。
- 140 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 03:38:07 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):迷路の作成(探索) 2次元配列を用いて迷路をつくりSTARTからGOALまでの経路を視覚的にわかるように出力せよ。 (例)壁1 通路0 START8 GOAL9 データ 1 1 1 1 1 1 1 1 1 1 1 9 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 8 1 1 1 1 1 1 1 1 1 1 1
- 141 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 03:38:42 ]
- 続きです
出力結果 ********** *G+++* * * ****+* * * *++*** * * *+** * * ++* *** **+** * * * ++* * ** * *+++++S* ********** [3] 環境 [3.1] OS:Mac [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:本日(17日)まで [5] その他の制限:無し 現在奮闘中ですがなかなかできませんorz よろしくお願いします。
- 142 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 04:26:02 ]
- >>142
#include <stdio.h> #define X 10 #define Y 10 int map[X][Y]={ {1,1,1,1,1,1,1,1,1,1}, {1,9,0,0,0,1,0,1,0,1}, {1,1,1,1,0,1,0,0,0,1},{1,0,1,0,0,1,1,1,0,1}, {1,0,1,0,1,1,0,0,0,1},{1,0,0,0,1,0,0,1,1,1}, {1,1,0,1,1,0,1,0,0,1},{1,0,0,0,1,0,1,0,1,1}, {1,0,1,0,0,0,0,0,8,1},{1,1,1,1,1,1,1,1,1,1}}; char expr[]=" *+34567SG"; int next(int x, int y) { if (map[x][y] == 0) map[x][y] = 2; if (map[x-1][y] == 9 || map[x-1][y] == 0 && next(x-1, y)) return 1; if (map[x][y-1] == 9 || map[x][y-1] == 0 && next(x, y-1)) return 1; if (map[x+1][y] == 9 || map[x+1][y] == 0 && next(x+1, y)) return 1; if (map[x][y+1] == 9 || map[x][y+1] == 0 && next(x, y+1)) return 1; if (map[x][y] == 2) map[x][y] = 0; return 0; } int main() { int x, y, r=0; for (x=0; x<X; x++) for (y=0; y<Y; y++) if (map[x][y] == 8) next(x, y); for (x=0; x<X; x++) { for (y=0; y<Y; y++) putchar(expr[map[x][y]]); putchar('\n'); } return 0; }
- 143 名前:142 mailto:sage [2007/07/17(火) 04:30:54 ]
- 安価ミスた.orz
- 144 名前:デフォルトの名無しさん [2007/07/17(火) 04:46:27 ]
- ja.wikipedia.org/w/index.php?title=%E8%83%BD%E7%99%BB%E3%81%8B%E3%82%8F%E3%81%84%E3%81%84%E3%82%88%E8%83%BD%E7%99%BB&redirect=no
- 145 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 08:50:03 ]
- >>138
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4650.txt
- 146 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 09:22:08 ]
- >>112
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ char num[128], name[128], adr[128], tel[128]; }Data; int main(int argc, char *argv[]) { Data x[10]; FILE *fp; int i = 0, j; char buf[1024], *p, search[128]; if(argc < 2) fprintf(stderr, "usage : %s string\n", argv[0]), exit(1); if((fp = fopen(argv[1], "r")) == NULL) perror(argv[1]), exit(2); while(fgets(buf, sizeof(buf), fp) != NULL){ printf("num : "), scanf("%s", x[i].num); if((p = strtok(buf, ",")) != NULL) sscanf(p, "%s", x[i].name); if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].adr); if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].tel); i++; } for(j = 0; j < i; j++) printf("%s %s\n", x[j].num, x[j].name); printf("search : "), scanf("%s", search); for(j = 0; j < i; j++) if(!strcmp(search, x[j].num)) printf("%s %s %s\n", x[j].name, x[j].adr, x[j].tel); return 0; }
- 147 名前:デフォルトの名無しさん [2007/07/17(火) 11:28:50 ]
- [1] 授業単元:IT入門B1
[2] 問題文:繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 (1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに入力した複素数すべての積を出力するプログラムを作成せよ. なお,ユーザが入力する回数に制限はないものとする. stdio.hの他にstdlib.hをインクルードしておく必要がある. [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限:2007年7月30日 [5] その他の制限: 特になし 参考プログラムです→www-it.sci.waseda.ac.jp/ITB1/class1/list.c よろしくお願いします。
- 148 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 11:38:25 ]
- >>147
検索して死ね
- 149 名前:デフォルトの名無しさん [2007/07/17(火) 11:39:39 ]
- [1]授業単元:プログラミング技術III
[2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4651.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ: gcc [3.3] 言語: C [4] 期限:7/18まで [5] その他の制限:特になし よろしくお願いします
- 150 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:09:50 ]
- [1]授業単元:ゲームV
[2]問題文:数独(wiki参照ja.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC)解読プログラム [3] 環境 [3.1] OS: Linux [3.2] コンパイラ: gcc [3.3] 言語: C [4] 期限:7/20 [5] その他の制限:関数は2つ以下、#include <stdio.h>のみを使用すること 宜しくお願いします
- 151 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:22:11 ]
- >>150
www.techfinesse.com/game/sudoku_solver.php こんなのがあるようだぞ その制限には引っかかるようだがなw
- 152 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:30:55 ]
- [1] データ構造論
[2]treeprintのプログラムを参考にして木をカッコ表記で表示するプログラムを作り、コマンド X で動作するようにせよ。 /* treeprint() : 2分探索木を根から順にすべて表示する(1行10個毎) */ int num; /* 1行のデータ個数を制御するための変数。*/ void treeprint(void) { num= 0; /* 木の根ノードからサブ関数trprintを用いてプリント開始。*/ trprint(start->right); } int trprint(TNODE *p) /* trprint(p) : p の2分木を再帰的にプリント。*/ { if(p != end){ /* p が終端ノードでないならば */ trprint(p->left); /* pの左部分木を再帰的にプリント。 */ printf("%5d%c",p->key, (++num % 10) ? ' ':'\n'); /* pのkey値を表示。 */ trprint(p->right); /* pの右部分木を再帰的にプリント。 */ } } [3.1] Linux [3.2] gcc 3.4 VC 6.0等 [3.3] C言語 [4] 2007年07月18日12:00まで] [5] プログラムの中のtreeprintだけ問題文の載せています よろしくお願いします
- 153 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:33:01 ]
- >>149
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4652.c
- 154 名前: ◆Il0WZuGYWw mailto:sage [2007/07/17(火) 14:47:00 ]
- >>150
bsdのportsの中に入ってるお
- 155 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 15:36:03 ]
- >>150
何の工夫も無い力技だが一応やってみた。 出回っているソースは確実にこれよりはマシだろう。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4656.txt
- 156 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 16:23:42 ]
- あ、あ、ぼるじょあのほうにカキコしてしまった……
こっちのほうがいいのかな?マルチは怒られますよね?よければ誰かぼるじょあスレ見てください〜〜
- 157 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:15:37 ]
- >>142
遅い時間にも関わらず回答ありがとうございます。 確かに動作できました。 しかしながら関数を3つ作ってとけとのことでしたorz すみませんがお時間がありましたら回答おねがいします。 問題は>>140-141です よろしくお願いします<(__)>
- 158 名前:c言語初心者 [2007/07/17(火) 20:00:23 ]
- 授業名:プログラミング1
プリントを渡されてやってこいとのことでした。 問題1 サイコロを10000回投げたとき、1から6までのそれぞれの目が 何回ずつ出たか調べるプログラムを作成せよ #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int main(void) { int i, j,spot, f[ ?(1) ]; srand(0); for (j = 1;j <= 6;j++){ f[j] = 0; } for( i = 1;i <= 10000; i++){ spot = (int)(6 * uniformrand()) + 1; [ ?(2) ] } return 0; } です。どうかよろしくお願いします。
- 159 名前:デフォルトの名無しさん [2007/07/17(火) 20:01:52 ]
- C++です
距離の単位にyかmが入力されるともう片方の単位に変換するプログラムです。 ただし、距離を変換する部分は、関数transを定義し、main関数で呼び出すこと。 距離の数値を入れた後に動かなくなるんですが、何が違うのか教えてほしいです。。 よろしくお願いします #include <iostream> using namespace std; double trans(char a,double b) { double c; cin>>a; cin>>b; if(a='y') { c=b*0.914; return c; } else if(a='m') { c=b/0.914; return c; } }
- 160 名前:デフォルトの名無しさん [2007/07/17(火) 20:02:55 ]
- 続き
int main() { char a; double b; cout<<"meter or yard -->"; cin>>a; while(a!='E') { cout<<"input data -->"; cin>>b; { if(a='y') { cout<<b<<" yard --> "<<trans(a,b)<<" meter"; } else if(a='m') { cout<<b<<" meter --> "<<trans(a,b)<<" yard"; } cout<<"meter or yard -->"; cin>>a; } } return 0;
- 161 名前:デフォルトの名無しさん [2007/07/17(火) 20:04:35 ]
- a=='y' にしろ
- 162 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:05:45 ]
- >>158
結果の出力は要らないのか?
- 163 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:05:48 ]
- >>158
#include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int main(void) { int i, j,spot, f[7]; srand(0); for (j = 1;j <= 6;j++){ f[j] = 0; } for( i = 1;i <= 10000; i++){ spot = (int)(6 * uniformrand()) + 1; f[spot]++; } for(i=1; i<=6; i++) { printf("%d %d \n",i,f[i]); } return 0; }
- 164 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:06:15 ]
- >158
(1)7 (2)f[spot]++;
- 165 名前:c言語初心者 [2007/07/17(火) 20:07:34 ]
- たぶん(1),(2)にあてはまるものをいれてこいってことだと思います。
よろしくおねがいします。。
- 166 名前:デフォルトの名無しさん [2007/07/17(火) 20:10:40 ]
- >161
改善されませんでした・・・
- 167 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:14:50 ]
- >>159
>>161 に加えて trans(a,b)で余計に a, b を入力させようとしてるから. 引数で渡してんだから,そこで入力させてどうする.
- 168 名前:c言語初心者 [2007/07/17(火) 20:27:54 ]
- ありがとうございました
講義名:プログラミング1 プリントを渡されてやってこいとのことでした。よろしくおねがいします 1,2,・・・13の中から5個の数をランダムに選び出すプログラムを作成せよ #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int a[13]; void RandomPermutation(int n) { 例題2と同じ } int main(void) { int i; RandomPermutation(13); for (i = 0;i < (1)? ; i++){ printf("%4d \n", (2)? ); } return 0; } です。(1)(2)の部分をお願いします。『例題2と同じ』という場所は 問題の横に横に例題2というのが乗っていました。だけど、自分はどこからどこまでが例題2 と同じ部分なのかがわからないです。例題2の部分がいるならそれも打ちます。よろしくお願いします。
- 169 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:37:44 ]
- (1)13
(2)a[i]
- 170 名前:デフォルトの名無しさん [2007/07/17(火) 20:41:31 ]
- [1] 授業単元:C言語演習
[2] 問題文: テキストファイルを読み込みたとえばテキストファイルに 3+4= 5*6= ...etc(これは他のその他の数式、etcと直接出力しない) と書かれていたら画面に 3+4=7 5*6=30 ...etc と出力せよ。 [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C言語) [4] 期限: 7月19日
- 171 名前:c言語初心者 [2007/07/17(火) 20:46:29 ]
- 講義名:プログラミング1 プリントを渡されてやってこいとのことでした。よろしくおねがいします
よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、 ただし、トランプにはジョーカーは含まれないものとする。 #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int a[ (1)? ]; void RandomPermutation(int n) { 例題2と同じ } int main(void) { int i; RandomPermutation( (1)? ); for(i = 0; i < 5; i++){ if( (2)? ){ printf("ハート% 4d \n", n (3)? ); }else if ( (4)? ){ printf("ダイア% 4d \n", n (5)? ); }else if ( (6)? ){ printf("クラブ% 4d \n", n (7)? ); }else{ printf("ハート% 4d \n", n (8)? ); } return 0; } 問2もありがとうございました。(1)から(8)までをよろしくお願いします
- 172 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:47:34 ]
- >>170
演算の種類は?
- 173 名前:デフォルトの名無しさん [2007/07/17(火) 21:06:43 ]
- >>172
足し算、引き算、割り算、掛け算です。説明不足ですいません。
- 174 名前:スモーク [2007/07/17(火) 21:23:34 ]
- こんばんわ。すみません、今度は説明を書いたのでよろしくお願いします。
「1」課題:C言語でコードを記述して実行する。 「2」内容:多分岐型のコードを使って整数型の変数a・b と、文字型の変数e を用意し、 キーボードから2つの数値と1つの演算子を入力して、その計算結果cを出力するプログラムを作る。 というもの。さらに、実行される計算は和・差・積・商・剰余の5種類とし、 演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で、 表現されるものとする。 演算子にそれ以外の記号が入力された場合は、 エラーメッセージを表示する。 また0による除算の回避も含めるものです。 「3」OS:WINDOWS XP SP2。 「4」バージョン:Visual Studio 2005。 「5」期限:今週の金曜まで。 「6」 コンパイラのバージョン: gcc。 これでおねがいします。
- 175 名前:デフォルトの名無しさん [2007/07/17(火) 21:23:47 ]
- [1] 授業単元: CG入門
[2] 問題文 縦横400ピクセルのスクリーン上に3次元空間の3角形が複数個、投影される。 この3角形についてそれぞれ @スクリーン上の頂点:(x1,y1)(x2,y2)(x3,y3) A頂点のZ値(視点から3次元空間までの距離):Z1,Z2,Z3 B三角形の色:(r,g,b)-均一色 が標準入力から与えられるとき、Z−バッファ法に基づいてスクリーン上に三角形を描き 最終結果をppm画像として出力するプログラムを作成せよ。 *必要なデータは標準入力から入力するものとし、かつ複数のB角形に対応させる事 (B角形個数は予め与えてもよい) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual studio. [3.3] 言語: C [4] 期限: 2007年7月19日 11:00まで この手のプログラムはスレ違いかもしれないと思いつつも、C言語で書いて来いとのことなので 書き込ませて頂きました。何卒、よろしくお願いします。
- 176 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:25:47 ]
- >>170
できた。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4657.txt
- 177 名前:デフォルトの名無しさん [2007/07/17(火) 21:28:47 ]
- [1] 授業単元: C言語
[2] 問題文(含コード&リンク): 線形探索 次の表は、平成19年のお年玉付き年賀葉書の当選番号である。 1等 157788、457190 2等 5161、7093、7485、9614 3等 64、79 手元に届いた年賀状の抽選番号をキーボードから入力し、 当選したかどうかチェックして結果を表示するプログラムを作成する。 当選番号(の下2桁)は、キーの配列に初期値として格納する キーボードから2桁の数字を入力してターゲットに格納し、線形探索を行う。 探索結果を画面に出力する。当選した場合は何等が当たったか、も出力すること。 【発展】 余力のある人は、下2桁に限らず、全桁を初期値として格納し、当選のチェックを実行するプログラムを作成してみること。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: VB [3.3] 言語: C [4] 期限: 明日まで [5] その他の制限: 習ったのは 配列 if-else文 繰り返し ポインタ 線形探索と基礎知識 です。[発展]の方でお願いします。
- 178 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:37:38 ]
- >>174
>>170と同じ人か? %演算子の分追加、変数名微修正と コマンドライン引数を指定するとそのファイルから、 指定しないと標準入力から読み取るようにした。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4658.txt
- 179 名前: ◆y43pIoOHKo mailto:sage [2007/07/17(火) 21:39:12 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 自分の名前をローマ字でキーボードで入力し、文字数を表示させる関数、名前を逆順にする関数を 各自それぞれ定義しプログラムを組みなさい。結果の表示はmainで行い、姓と名の間は1文字 空白を入れること。ただし、変数が文字型、ポインタ型のみの場合の2つに分けてプログラムを組みなさい。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語:C++ [4] 期限: 2007年07月18日10:00まで] [5] その他の制限:できれば、do-while文及びfor文を使用してお願いします。
- 180 名前:デフォルトの名無しさん [2007/07/17(火) 21:41:12 ]
- >>176さん、ありがとうございます。
けどまた説明不足でした…。小数の場合も含みます…。 >>170追加例 ファイル内 1.5+1.5= 3*5= 1.5+2= 出力 1.5+1.5=3 3*5=15 1.5+2=3 何度も説明不足ですいません…。この小数と整数を区別して出力するのが むずかしいです。よかったらお願いします。
- 181 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:45:15 ]
- >>180
説明し忘れが無いか一度確認したほうがいいと思うよ 小数点以下は切り捨てるとかそういう細かい部分も説明すべきだと思う
- 182 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:45:22 ]
- >>180
aとbの型をdoubleにして、 fscanfの%dを%lfに、 printfの%dを%gにすればおk
- 183 名前:デフォルトの名無しさん [2007/07/17(火) 21:50:56 ]
- 170です。
>>182さんありがとうございます!!これで完成しました!! みなさんありがとうございました。%gとは便利な…。
- 184 名前:デフォルトの名無しさん [2007/07/17(火) 21:52:10 ]
- そんな事より、今日うちに犬が死んだ。老衰だった
- 185 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:53:27 ]
- >>34>>37
遅くなりましたがありがとうございました。
- 186 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:01:04 ]
- [1] 授業単元: ソフトウェアシステム
[2] 問題文(含コード&リンク): 以下の円周率を2000桁もとめるプログラムを できるだけ高速に計算できるように改良せよ。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4659.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:分かりません [3.3] 言語: C [4] 期限: 2007年7月18日12:00まで [5] その他の制限: マイコン。配布プロラムはマチンの公式を使っている。 若干スレ違いかもしれないですが、よろしくお願いします。
- 187 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:05:38 ]
- >>186
マイコンかWindowsかどっちなんだ。つかマイコンだろうな。 どんな石だか知らんが、これコンパイルして動かせる環境持ってる奴 いないんじゃないか。
- 188 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:07:21 ]
- >>175
よくわからんが、おもむろにCreateWindow()で窓を開く コンソールアプリをつくれということだろうか。
- 189 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:09:28 ]
- >>187
Windows上で開発してるってことだろ、多分 せめてどんなマイコンを使ってるかわからないと難しいな・・・
- 190 名前:デフォルトの名無しさん [2007/07/17(火) 22:17:30 ]
- ○×ゲーム
Linuxのプロンプト上でplay com/man対戦、先攻/後攻を選べる
- 191 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:20:53 ]
- 最近三目並べはやってんのかyo
- 192 名前:175 [2007/07/17(火) 22:37:33 ]
- >>188
アプリと言いますか、コマンドプロンプトで必要な入力を入れていくと それを適当なソフトで忠実に再現したppm画像に出してくれるものです。 同じ事言ってたらすいませんorz できれば骨組みだけでも(流れ的な)考えていただけると幸いですm(__)m
- 193 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:40:26 ]
- >>186です
>>187 >>189 説明不足ですいません。 答えになってないかいもしれないですが、この付属のV850基板を使っています。 ttp://www.cqpub.co.jp/interface/contents/2007/200705.htm
- 194 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:42:40 ]
- V850基板なら手元にあるぜ
でもまだソフトインスコしてない・・・
- 195 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:43:16 ]
- >>192
いや、スクリーンに描画しろとか書いてあるからさ。 それを見なかったことにして、PPM画像ファイルを出力するだけなら、 標準Cの範囲のプログラムで出来る話だが、400*400の画面に 描画しろってんなら、窓開いてGUIスレッド起動してって話になるだろう。
- 196 名前:190 ◆Oa0JSQvro2 [2007/07/17(火) 23:14:27 ]
- 追記です。
期限は木曜夜でお願いします。 よろしくおねがいしますm(__)m
- 197 名前:175 [2007/07/17(火) 23:14:34 ]
- >>195
なるほどそういう事でしたか… 特に制限などは言われていないので(Cのみとは言われてません) このスレの趣旨に沿っていないかもと思ったのです。 できれば400X400は後に考えますので、ファイル出力の部分をお願いします。
- 198 名前:デフォルトの名無しさん [2007/07/17(火) 23:36:49 ]
- [1] 授業単元: C言語
[2] 問題文(含コード&リンク): 練習13-2(気象情報) インターネットを利用して出身地の観測開始から現在までの 気象情報を入手し,各年の月別平均気温データを作成する. 作成したファイルから気象データを読み込んで, (1)平均気温が最も低い年月と最も高い年月を探索して 両者の年月と気温をディスプレイに出力する (2)年間平均気温を計算し,高い年から順に 年と年間平均気温をファイルに出力する プログラムを作成しなさい. 気象庁HP(www.jma.go.jp/jma/index.html)参照 [3] 環境 [3.1] OS: Windows [3.2] [3.3] 言語:C言語 [4] 期限: 2007年 7月18日の朝 [5] その他の制限: 出身地は神戸でお願いします
- 199 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:38:00 ]
- >>196
>>1のテンプレを漏れなく書け。
- 200 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:45:39 ]
- × 資料なし(欠測) 統計値を求める期間内の観測結果が全て求められなかった場合。
は、どうあつかうんだ?
- 201 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 02:31:07 ]
- [1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク): longが定義されている数の最大値LONGMAXをもとめろ。 例えば、i=1 を2倍していき、LONGMAXの最大値を求める。 別にこの方法でなくてもいい。各自にまかせる。 ちなみに LONGMAXはおよそ2147483647である。 余裕があるものはdouble などもやることが望ましい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc2.95-3) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: (2007年07月25日23:59まで) [5] その他の制限:無制限 さぐりで下のようなところまでは書きました。 #include <stdio.h> #define LONGMAX 2147483647 int main(void) { long int i,i2; /*これは0 ... の無限ループ for(i=1;i<LONGMAX;i*=2) printf("%d ",i); */ for(i=1;;i2=i,i*=2){ printf("%d ",i); if(i<i2){ printf("%d is LONGMAX\n",i); break; }}} までできましたが、値が少し違い微妙です。 それと、コメントカットしたらなぜ無限ループになるのでしょうか? これにかなり悩みました。
- 202 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:17:08 ]
- >>201
無限ループの最初の方で止めれば分かるけど 1,2,4,8…1073741828 の次から0になってるはず。 で、その理由は出力される数を2進表現してみれば分かるはず。キーは32ビット。 後半での出力は…少しの違いなのか? --- #include <stdio.h> int main(void) { unsigned long max = -1; printf("Unsigned MAX:%ud\n", max); printf("Signed MAX:%d\n", max >> 1); return 0; } ----
- 203 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:37:53 ]
- >>201
2倍していき・・・verで書いてみた #include <stdio.h> #include <math.h> int main(void) { int i=0; long n, tmp; while( (tmp = pow(2, i)-1) >= 0 ){ n = tmp; i++; } printf("LONG MAX : %d\n", n); return(0); }
- 204 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:54:03 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4660.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:不明 [3.3] 言語:C [4] 期限:7/19まで [5] その他の制限:課題@はwhile文、Aは両方とも構造体、Bは全てポインタと構造体の単元です @とAは自分が考えたソースを添えてみたので、どこが悪いのかだけでも教えていただけると幸いです どうかご教授の程お願いします
- 205 名前:デフォルトの名無しさん [2007/07/18(水) 07:36:23 ]
- 授業単元:プログラミング
問題文(含コード&リンク): 環境 OS:Windows xp コンパイラ名とバージョン:ボーランド 言語:C 期限: その他の制限: テーマ:標準関数の利用 問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい 使用する標準関数:isalpha()など 実行画面 文字列入力==>A12H&jfTy8uZ3# 英字:AHjfTyuZ その他:12&83# 問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい 使用する標準関数:strncmp(),strcpy(),strlen()など 実行画面 文字列入力(m1)==>ABCDEFAADABC 削除文字列(m2)==>ABC 結果文字列(m1):DEFAD 注意:配列の使用はm1,m2のみとする
- 206 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 07:56:14 ]
- >>204
よく見てないけど @ =< じゃなくて <= isdigit() -> isdigit(moji) printf("hogehoge %d"); -> printf("hogehoge %d",); (カンマ) A × while(buff = getchar()!="0 0 0"){ whileのなかのsscanfのbufferなんてない × printf("%4s%4f%4s,stu[j].name,stu[j]height,stu.[j]blood");}
- 207 名前:206 mailto:sage [2007/07/18(水) 07:57:21 ]
- あー
printf("hogehoge %d"fuga); -> printf("hogehoge %d",fuga); (カンマ) に訂正です
- 208 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 08:10:29 ]
- >>186
ttp://www.sra.co.jp/people/miyata/algorithm/multprec.txt たぶんこれと同じなんやろうけど、どうやったら速くできるんだろう。
- 209 名前:デフォルトの名無しさん [2007/07/18(水) 08:34:24 ]
- >>177
奮闘中ですが、できませんorz お願いします!
- 210 名前:190 ◆Oa0JSQvro2 [2007/07/18(水) 09:12:44 ]
- [1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: [3.3] 言語:C [4] 期限: 今週金曜夜 [5] その他の制限: 特になし
- 211 名前:デフォルトの名無しさん [2007/07/18(水) 10:09:46 ]
- [1] プログラミング基礎
[2] 検討及び考察」の指示に従って求めた, S/N=3.0 [dB]のときの a. 誤差[%],b. 誤り検出率[%] の数値(有効数字3桁以上) および実験 2. のために作成したシミュレーションプログラムを使って報告せよ。 詳しいことは次のアドレスに書いてあります。 itohws03.ee.noda.tus.ac.jp/~matsuda/programming/final/programming.pdf [3.1] Unix [3.2] gcc [3.3] c [4] 7月27日(金) [5] 私の学籍番号の下三桁は080です。
- 212 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 10:14:23 ]
- どうせその学籍番号は他人のものだろ?
- 213 名前:デフォルトの名無しさん [2007/07/18(水) 10:41:19 ]
- >>177
VBではなくVSです
- 214 名前:c言語初心者 [2007/07/18(水) 10:56:39 ]
- 講義名:プログラミング1 … プリントを渡されてやってこいとのことでした。よろしくおねがいします
問3、よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、ただし、トランプにはジョーカーは含まれないものとする。 #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int a[ (1)? ]; void RandomPermutation(int n)
- 215 名前:c言語初心者 [2007/07/18(水) 10:57:29 ]
- 『続き』
{ 例題2と同じ } int main(void) { int i; RandomPermutation( (1)? ); for(i = 0; i < 5; i++){ if( (2)? ){ printf("ハート% 4d \n", n (3)? ); }else if ( (4)? ){ printf("ダイア% 4d \n", n (5)? ); }else if ( (6)? ){ printf("クラブ% 4d \n", n (7)? ); }else{ printf("ハート% 4d \n", n (8)? ); } return 0; } 例題2と同じというところは、プリントの横に例題2というのがあったんですが、どこかどこまでが例題2と同じなのかがわかりませんでした。そこが必要であれば例題2を打つんでよろしくお願いします。(1)から(8)までを回答としてよろしくねがいします。
- 216 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:07:22 ]
- >>209
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4661.c
- 217 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:19:47 ]
- >>215
四の五の言わないで全部書き出しな
- 218 名前:デフォルトの名無しさん [2007/07/18(水) 11:21:57 ]
- >>175
ですがどうにもうまく三角形が描けませんorz ファイル出力までで結構ですので、どなたかなにとぞお願いしますm(__)m
- 219 名前:c言語初心者 [2007/07/18(水) 11:39:59 ]
- >>215
0,1,2, … 、99をランダムに並べる #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1)) int a[100]
- 220 名前:c言語初心者 [2007/07/18(水) 11:40:29 ]
- 続き
void RandomPermutaion(int n) { int i, j, z; for (i = 0; i < n; i++) { a[i] = i; } for(j = n - 1; j > 0; j--) { i = (int)(j * uniformrend()); z = a[i]; a[i] = a[j]; a[j] =z; } } int main() { int n, i; n = 100; RandmPermutation(n); for (i = 0; i < n; i++){ printf("%4d", a[i]); } printf("/n"); return 0; } が例題2です。よろしくお願いします
- 221 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:56:24 ]
- >>220
できたぞ つか printf("ハート% 4d \n", n (3)? ); とか printf("ダイア% 4d \n", n (5)? ); って、問題間違ってないか?
- 222 名前:c言語初心者 [2007/07/18(水) 12:00:14 ]
- 間違ってました。申し訳ありません。
printf("ハート% 4d \n", (3)? ); printf("ダイア% 4d \n", (5)? ); です。 よろしくお願いします。
- 223 名前:デフォルトの名無しさん [2007/07/18(水) 12:07:51 ]
- [1] 授業単元: C
[2] 問題文(含コード&リンク):単純選択法 大きさ20の配列keyを用意し、キーボードから値を入力する。 この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。 ただし、ソートの途中経過を画面に出力すること。 また、最後に比較回数を画面に出力すること。 【ヒント】 配列の大きさの指定 #define SIZE 20 単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する 途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。 比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。 発展 以下の機能を持つ関数を作成し、利用する形にコードを修正しなさい。 配列要素の入力を行う input_array 配列要素の出力を行う output_array 単純選択法によるソート select_sort [3] 環境 [3.1] OS: WindowXP [3.2] コンパイラ名とバージョン:VS2005 [3.3] 言語: C [4] 期限: いつでも [5] その他の制限:なし
- 224 名前:デフォルトの名無しさん [2007/07/18(水) 12:09:04 ]
- >>223
発展までは書いてみました #include<stdio.h> #define SIZE 20 void kadai28() { int key[SIZE]; int i, j, p, cnt = 0, w; for(i = 0; i < SIZE; i++) scanf("%d", &key[i]); for(j = 0; j < SIZE; j++) printf("%3d", key[j]); printf("\n"); for(i = 0; i < SIZE; i++){ p = i; for(j = i+1;j < SIZE;j++){ if(key[j] < key[p]) p = j; cnt++; } w = key[p]; key[p] = key[i]; key[i] = w; for(j = 0; j < SIZE; j++) printf("%3d", key[j]); printf("\n"); } printf("cnt = %d\n", cnt); return; } 発展の方お願いしますー
- 225 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:10:49 ]
- [1] プログラム基礎復習
[2] charのみを使用し小数点以下100桁まで計算できる計算機を作る(中学程度) [3] 環境 [3.1] Windows2000プロ [3.2] gcc [3.3] C [4]7/20 [5]main以外の関数を作ってはいけない お願いします。さっぱりなので・・・
- 226 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:13:08 ]
- >>225
「+」「-」「*」「/」「√」位かな?
- 227 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:15:15 ]
- >>222
じゃ、パーツだけ教えるよ n a[i]/13==0 a[i]/13==1 a[i]/13==2 a[i]%13 a[i]%13 a[i]%13 a[i]%13 または n a[i]&3==0 a[i]&3==1 a[i]&3==2 a[i]/4 a[i]/4 a[i]/4 a[i]/4 好きなほうを使ってくれ
- 228 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:15:26 ]
- >>226
お願いできますか? charだと256までしか出来ないので積や商がさっぱりで・・・
- 229 名前:c言語初心者 [2007/07/18(水) 12:20:22 ]
- >>221さん。
頼んでおいて申し訳ないのですが、>>214の回答をよろしくお願いします。
- 230 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:20:25 ]
- >>225
小数点以下でcharってprintf出力で表示される答えが100桁でいいんだよね?
- 231 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:24:54 ]
- >>229
>>227にヒントを書いたんだけど、不服?
- 232 名前:225です mailto:sage [2007/07/18(水) 12:28:13 ]
- >>214さん
問題文の意味がよく分からないんですけど ジョーカーは1枚ですよね? それでランダムで5枚引くと・・・・
|

|