08/07/14 06:56:18
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
【C 関数検索 man on WWW】 URLリンク(www.linux.or.jp)
【過去ログ検索】 URLリンク(chomework.sakura.ne.jp)
【wiki】 URLリンク(www23.atwiki.jp)
C/C++の宿題を片付けます 112代目
スレリンク(tech板)
2:デフォルトの名無しさん
08/07/14 07:14:02
>>1
ありがとうございます。
3:デフォルトの名無しさん
08/07/14 07:14:42
既に回答済みの質問に回答するのは控え、できるだけ未回答のものを解きましょう。
4:デフォルトの名無しさん
08/07/14 07:49:24
[1] 授業単元:プログラミング論Ⅱ
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: borland C++ Compiler 5.5
[3.3] 言語: C
[4] 期限: 2008年7月15日13;00
[5] その他の制限:どうしてもノードについてわからないので、できたらよろしくお願いします。
5:前スレ505
08/07/14 07:51:44
前スレ>>929さん、ありがとうございます!
あと、今日の夕方頃に今までのとは別のをやってみます。
それでまた今回みたいに見ていただくと嬉しいです。
6:デフォルトの名無しさん
08/07/14 07:52:06
基本的にスレ立て人がルールを作りますんで、最近話題の
回答テンプレはルール違反なんで遵守しないようお願いします。
以下の行為のいずれかを行った場合、回答テンプレ遵守行
為と見なされる場合がありますのでご注意下さい。
1)回答レスに回答の品質を書く事。
2)回答レスに外部サイト(アップローダー)に置かれたコードへのリンク
を貼る際に、このレス(スレURL)とソースの間に相互関連づけを行
うこと。
3)コンパイル、コード作成に使用した環境を書く事
4)回答に余計なコメントを入れること。
(ソースに入れるコメントは本スレとの関連情報以外ならおKです)
7:前スレ995 ◆ncKvmqq0Bs
08/07/14 08:00:13
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限: 7/14 14:00
期限を書き間違えていました、すいません
よろしくお願いします
8:デフォルトの名無しさん
08/07/14 08:05:51
>>3
異議あり。せっかく自分もやったのに、数分先に雑なソースを投稿した奴がいて
自分の方がマシだと判断したら容赦なく提出するんで、あしからず。
9:デフォルトの名無しさん
08/07/14 08:07:16
>>7
これでいいですか?
URLリンク(kansai2channeler.hp.infoseek.co.jp)
10:デフォルトの名無しさん
08/07/14 08:26:38
>>8
いいことです。>>6を遵守した上で是非そうして下さい。
11:デフォルトの名無しさん
08/07/14 09:11:08
ここは質問により先に答えるのを競うスレではありませんので、あしからず。
速さを競うなら、別の場所でやってくれ。それも同じ時間にスタートしてな。
12:デフォルトの名無しさん
08/07/14 09:15:31
>>6
やなこった。
13:デフォルトの名無しさん
08/07/14 09:37:23
長い夏休みが終わるのを気長に待つしか無いか
14:デフォルトの名無しさん
08/07/14 10:22:54
スレリンク(tech板:989番)
回答テンプレがあれば、まあ見やすいかなとは思う。けれど、無くても問題ないと思う。
で、回答テンプレを使う人が>>1から連なるテンプレに載ってないんだけどドコ?という
レスが稀にあったように思うので、含めておくが強制はしない程度がいいかなと思ったんだ
…俺も回答テンプレ使ったり使わなかったりなんで適当なんだけどね。主に回答レベルがめんどい
15:デフォルトの名無しさん
08/07/14 10:29:19
本人が初心者レベルに落としたクソースにも負けてくやしいのぅくやしいのぅ
あと、このスレは課題に答えるべきであって、回答者同士で
出来を競うスレじゃありませんので、あしからず。
16:デフォルトの名無しさん
08/07/14 10:35:11
あと、何行だろうと一句だろうと、罵倒は良くないだろ。
何行以上でとか意味不明な指定も要らん。
17:デフォルトの名無しさん
08/07/14 12:23:36
[1] 授業単元: C言語プログラミング
[2] 分数の四則演算を計算するプログラムを作成する[3] 環境
[3.1] OS: Windows
[3.3] 言語・C++
[4] 期限: ([2008年7月15日14:00まで
[5]条件
分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。
計算規則
a|b + c|d = (a*d + b*c) | (b*d)
a|b - c|d = (a*d - b*c) | (b*d)
a|b * c|d = (a*c) | (b*d)
a|b / c|d = (a*d) | (b*c)
計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。
18:デフォルトの名無しさん
08/07/14 12:28:56
前スレ>>977>>945>>554 >>99
ありがとうございました
19: ◆nikSZog9tM
08/07/14 14:51:23
前々スレの>>401で二問聞いたのですが、一問回答が得られなかったのでもう一度聞かせて下さい。
[1] 授業単元:情報技術実験
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
バックトラック系の問題です。
リンク先は、正整数n を入力して、nを正整数の和の形に分割する方法が何通りあるか表示するプログラムです。
ただし、和の順番が異なるだけの分割は同じものとします。
それを、
n: 5
1 1 1 1 1
1 1 1 2
1 1 3
1 2 2
1 4
2 3
5
total number = 7
といったように途中経過を表示させるように修正する課題です。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: C Pad for Borlad
[3.3] 言語: Cのみ
[4] 期限: 2008年7月16日17:00
[5] その他の制限:授業ではポインタはやってないです。。
for if whileといった基礎的なものを使う感じです。
よろしくお願いします。
20:デフォルトの名無しさん
08/07/14 15:30:51
[1]C言語上級
[2]標準入力から入力されたタブもしくはスペースで区切られた単語
の出現回数を多いものの順に出力するプログラムを作りなさい。
単語の記憶方法は配列を使うこと。単語の検索は二分探索を
使うこと。
メモリが足りない場合はその時点で処理を中止するようにすること。
[3] linux/gcc 4/C
[4] 7/20 12:00
stdio.h stdlib.h string.hのみインクルード可のことです。
自分もちょっとやってみましたが挫折しかかってます。
まだ時間は少しあるので、急ぎませんが、どうかよろしくお願いします。
21:20 ◆t11zgaSFtY
08/07/14 15:31:30
トリップ入れ忘れましたので、設定しました。
22:デフォルトの名無しさん
08/07/14 15:47:44
>>19
バックトラックってなると多分再帰関数を使うことになると思うけど、大丈夫?
23:デフォルトの名無しさん
08/07/14 15:53:11
配列で二分探索ってうまいやりかたあるん?
24: ◆nikSZog9tM
08/07/14 15:58:36
>>22
再帰やってるんで大丈夫です!
「使え」とは言われてないんで書きませんでした、ごめんなさい。
25:デフォルトの名無しさん
08/07/14 16:05:00
再起使ったら重複の除去が困難な気
26:デフォルトの名無しさん
08/07/14 16:12:08
>>19 配列は使ってもいいんだよね?
#include <stdio.h>
#define N_MAX 1024
int ResultNum, Result[N_MAX];
int part(int,int,int);
int main(){
int n;
printf("n: ");
scanf("%d",&n);
if(n>N_MAX) return 1;
printf("total number = %d\n", part(n,1,0));
return 0;
}
int part(int total, int min, int result_num){
int i, sub;
int cnt = 0;
if(total == 0){
cnt = 1;
for(i=0;i<result_num;i++)
printf(" %d", Result[i]);
printf("\n");
}else{
for(sub = min; sub <= total; sub++){
Result[result_num]=sub;
cnt += part(total-sub,sub,result_num+1);
}
}
return cnt;
}
27: ◆nikSZog9tM
08/07/14 16:38:48
>>25
んーどうなんでしょう…正直よく分かりません。
この時は授業のタイトルが「バックトラック」で、課題は二つでした。
二問目がNクイーン問題で、これは一問目です。
プログラミングの知識に乏しい上に、授業が上記のようなものだったのでバックトラック系
と明記しましたが、場合によってはバックトラックとは関係ないのかもしれません。
>>26
配列大丈夫です!ありがとうございます!
配列苦手で勉強中なんで、まだ理解できませんが(^_^;)
ありがとうございました。
28:デフォルトの名無しさん
08/07/14 19:33:47
[1] 授業単元:プログラム実習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン:VC6.0
[3.3] 言語: C++
[4] 期限: 早急に…
[5] その他の制限:
二次元関数の問題です。ソースの上部に問題文があります
29:デフォルトの名無しさん
08/07/14 19:51:18
>>20
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tag_word_t{ char *word; int count; } word_t;
typedef struct tag_wordlist_t{ word_t *word; int wordnum; } wordlist_t;
int countcmp(const word_t *a, const word_t *b){return b->count - a->count;}
int wordcmp(const word_t *a, const word_t *b){return strcmp(a->word, b->word);}
void word_add(wordlist_t *wordlist, char *word){
int s, e, m, ret;
for(s = 0, e = wordlist->wordnum - 1; s <= e;){
m = (s + e) / 2;
if((ret = strcmp(wordlist->word[m].word, word)) == 0){wordlist->word[m].count += 1;return;}
if(ret < 0) s = m + 1;
else e = m - 1;
}
if((wordlist->word = realloc(wordlist->word, sizeof(word_t) * (wordlist->wordnum + 1))) == NULL) exit(1);
if((wordlist->word[wordlist->wordnum].word = strdup(word)) == NULL) exit(1);
wordlist->word[wordlist->wordnum].count = 1;
wordlist->wordnum += 1;
qsort(wordlist->word, wordlist->wordnum, sizeof(word_t), wordcmp);
}
int main(void){
wordlist_t wordlist = { NULL, 0 };
char word[256];
int i;
while(scanf("%255s", word) == 1) word_add(&wordlist, word);
qsort(wordlist.word, wordlist.wordnum, sizeof(word_t), countcmp);
for(i = 0; i < wordlist.wordnum; i++) printf("%s : %d\n", wordlist.word[i].word, wordlist.word[i].count);
return 0;
}
30:デフォルトの名無しさん
08/07/14 20:03:18
>>28 1行のみの変更で回答終わり
17line:
// int calendar[rsize][csize];
int (*calendar)[csize] = new int[rsize][csize];
31:デフォルトの名無しさん
08/07/14 20:10:25
>>28 最後にやるdelete忘れた
84line:
delete[] calendar;
return 0;
32:前スレ995 ◆ncKvmqq0Bs
08/07/14 20:21:42
>>9
助かりました
遅くなりましたが、ありがとうございました
33:デフォルトの名無しさん
08/07/14 20:56:44
>>4 07/15 13:00 線形リスト
>>7 07/14 14:00 ソート : >>9
>>17 07/15 14:00 分数の四則演算を計算するプログラム
>>19 07/16 17:00 組み分け : >>19
>>20 07/20 12:00 単語出現数 : >>20
>>28 00/00 00:00 二次元配列の動的確保 : >>30,31
34:20 ◆t11zgaSFtY
08/07/14 21:36:07
>>29
非常に迅速なご回答
ありがとうございました。とりあえず動作を確認しました。
このコードを元にbsearch関数を使うように改造させて
頂いてよろしいでしょうか?
というか、実は、bsearch関数自身の使い方が
良くわからなかったので、ここに質問したんです。
bsearchで見つからなかった場合、配列を拡張し
新しいデータを詰め込むというアイデアは、何となく
わかってて、それらしきコードも書いてたんですが、
テストしてみると、何か良く動きませんでした。
qsort関数を使ってそれを切り抜けるってなんか裏技的で
凄い発想ですね。感心しました。
35:デフォルトの名無しさん
08/07/14 22:27:39
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):(1)まず、0が入力されるまで、正の偶数を繰り返しキーボード入力する。
(2)次に、(1)で入力した数から「大きい方から二番目の偶数」を表示する。
ただし、(1)の繰り返し処理で、奇数や負の数が入力されたときは、その入力を無視してよい。
入力した偶数が二つに満たなかった場合は、(2)において「0」を表示せよ。
[3] 環境
[3.1] OS;macos
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: (2008年7月13日17:00まで]
[5] その他の制限: Cのソースでおねがいします。
何とぞよろしくお願いします。
36:デフォルトの名無しさん
08/07/14 22:28:59
期限間違えました 15日です
37:デフォルトの名無しさん
08/07/14 22:33:03
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):1から999までの整数を入力 その読み方をを表示するプログラムを書け
1から999でない場合エラーを表示せよ
[3] 環境
[3.1] OS;macos
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: (2008年7月15日17:00まで]
[5] その他の制限: Cのソースでおねがいします。
何とぞよろしくお願いします。 printfの所は略してもらって結構です。
38:デフォルトの名無しさん
08/07/14 22:43:47
>>37
日本語でok?
39:デフォルトの名無しさん
08/07/14 22:52:15
>>37
#include<stdio.h>
int main(void){
char yomi[][10][13]={
{"", "いち", "に", "さん", "よん", "ご", "ろく", "なな", "はち", "きゅう"},
{"", "じゅう", "にじゅう", "さんじゅう", "よんじゅう", "ごじゅう", "ろくじゅう", "ななじゅう", "はちじゅう", "きゅうじゅう"},
{"", "ひゃく", "にひゃく", "さんびゃく", "よんひゃく", "ごひゃく", "ろっぴゃく", "ななひゃく", "はっぴゃく", "きゅうひゃく"}
};
int num=0, unit100, unit10, unit1;
printf("1 から 999 までの整数を入力してください : ");
scanf("%d", &num);
if(num<1 || num>999){
printf("エラー\n");
return 1;
}
unit100=num/100;
unit10=(num/10)%10;
unit1=num%10;
printf("%s%s%s\n", yomi[2][unit100], yomi[1][unit10], yomi[0][unit1]);
return 0;
}
40:デフォルトの名無しさん
08/07/14 22:54:20
>>37
#include <stdio.h>
int main(void)
{
int n, c, d;
char *num[] = {"", "いち","に","さん","よん","ご","ろく","なな","はち","きゅう"};
scanf("%d", &n);
if(n < 1 || 999 < n) return printf("error");
c = n / 100;
n %= 100;
switch(c) {
case 6:printf("ろっぴゃく"); break;
case 8:printf("はっぴゃく"); break;
case 3:printf("さんびゃく"); break;
case 2:case 5:case 4:case 7:case 9:
printf("%s", num[c]);
case 1:printf("ひゃく"); break;
}
d = n / 10;
n %= 10;
if(d) {
if(d > 1) printf("%s", num[d]);
printf("じゅう");
}
printf("%s", num[n]);
return 0;
}
41:デフォルトの名無しさん
08/07/14 22:54:35
>>39 早速ありがとうございます。助かりました
42:デフォルトの名無しさん
08/07/14 22:56:18
>>37
#include <stdio.h>
void show(int n){
const char n[][10]={"ぜろ!","いち!","に!","さぁん","し!","ご!","ろぉく","しち!","はち!","きゅぅぅ"};
<print文なので省略しました>
}
int main(){
int n;
scanf("%d",&n);
show(n/100);show( (n - n / 100 * 100) / 10 ) ; show(n % 10);
return 0;
}
43:デフォルトの名無しさん
08/07/14 23:00:48
>>40 >>42
回答ありがとうございます。参考にします
44:デフォルトの名無しさん
08/07/15 00:07:26
[1] 授業単元:プログラム入門
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:あさってまで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします
45:前スレ505
08/07/15 00:27:17
[1] 授業単元:C++
[2] 問題文(含コード&リンク):試験問題の例を実行結果を見ながら、
自分なりに作ってたのですが、敵が表示されなかったりしたので困ってます。
ここに自分で作ったやつが置いてあります。
URLリンク(www.dotup.org)
これが試験問題の例の実行結果です。ハムスター画像はないので、他のを代用して使ってます。
URLリンク(www.dotup.org)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: VisualC++2005かVisualC++2008
[3.3] 言語:C++
[4] 期限: [2008年7月15日午前7:00まででお願いします。
[5] その他の制限:何かあったら言って下さい。
46:デフォルトの名無しさん
08/07/15 01:03:54
[1]C
[2]三値の中央値を求める以下の関数を作成せよ。
int med3(int a,int b,int c);
[3]LINUX
C
[4]今週中でお願いします
よろしくお願いします
47:デフォルトの名無しさん
08/07/15 01:18:48
>>46
void swap(int *a, int *b){
int c;
c=*a;
*a=*b;
*b=c;
}
int med3(int a, int b, int c){
if(a<b) swap(&a, &b);
if(a<c) swap(&a, &c);
if(b<c) swap(&b, &c);
return b;
}
48:デフォルトの名無しさん
08/07/15 01:41:20
ひどいな
49:デフォルトの名無しさん
08/07/15 01:42:17
int med3(int a, int b, int c)
{
return a>b ? a>c ? c>b ? c : b : a : b>c ? c>a ? c : a : b;
}
50:デフォルトの名無しさん
08/07/15 01:58:25
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC
[3.3] 言語: C
[4] 期限: 2008/7/17/0:00
よろしくおねがいします
51:デフォルトの名無しさん
08/07/15 02:44:20
[1] 授業単元:C++
[2] 問題文(含コード&リンク):基本交換法と挿入法の関数化
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VisualStudio2005
[3.3] 言語: C++
[4] 期限: 2008/7/15/12:00
ここでははじめての書き込みです よろしくお願いします。
52:デフォルトの名無しさん
08/07/15 03:16:09
>>51
ソートの話でしょうか。基本交換法とはなんでしょうか。(wikipedia をみましたがわかりませんでした。)
問題について、もう少し情報をいただけませんでしょうか。
53:デフォルトの名無しさん
08/07/15 03:17:33
バブルソート
54:デフォルトの名無しさん
08/07/15 03:19:45
バブルソートは、ソートのアルゴリズムの一つ。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう。
バブルソート - Wikipedia
挿入ソート(インサーションソート)は、ソートのアルゴリズムの一つ。平均計算時間・最悪計算時間がともにO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用いられる。安定な内部ソート。基本挿入法ともいう。
挿入ソート - Wikipedia
55:デフォルトの名無しさん
08/07/15 03:27:34
[1] 授業単元:プログラミング2
[2] 問題文(含コード&リンク):
アルファベットと数字からなる文字列 str と文字 c を引数として受け取り,文字列 str から文字 c をすべて削除する返す関数 void del_chr(char *str, char c) を定義し,動作を確認するプログラム(kadai11_3.c)を作成せよ.
strを別の配列にコピーして利用すればよい.配列の添え字アクセスを利用してもよい.
関数名:del_chr
引数 :char *str, char c
返却値:なし
機能 :文字列 str から文字 c をすべて削除
main関数のテンプレートを示す.
int main(void)
{
char c;
char str[100];
char *ptr;
printf("変換前: ");
gets(str);
printf("削除文字: ");
scanf("%c", &c);
del_chr(str, c);
printf("変換後: %s\n", str);
return 0;
}
[3] 環境
[3.1] OS: Win Vista
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 2008/07/15 14時まで
[5] その他の制限: ポインタまで
56:デフォルトの名無しさん
08/07/15 03:40:23
>>48
いや、>>47 ならちゃんと動作しますよ。反例はどんな場合ですか?
57:デフォルトの名無しさん
08/07/15 03:46:19
>>15
だれが決めたのですか?回答者同士で出来を競うのは問題ないと思いますが?
58:デフォルトの名無しさん
08/07/15 03:55:56
[1] 授業単元:プログラミングⅡ
[2]
問題文:URLリンク(www.dotup.org)
実行例:URLリンク(www.dotup.org)
ベースのコード:URLリンク(www.dotup.org)
[3] 環境
[3.1] OS:WindowsVista
[3.2] コンパイラ名とバージョン:VisualStudio2005
[3.3] 言語:C++
[4] 期限: 本日 7月15日18:00まで
[5] その他の制限:URLリンク(www.dotup.org)
にある内容までは一通り習っています。
以前もここで何度か助けてもらいましたが、
これが最後になると思いますので、どうかよろしくお願いします。
(特に後半が全然わかりません)
59:デフォルトの名無しさん
08/07/15 03:56:21
>>57
決めたんじゃなくてそんな決まりはないって話だろ・・・
どんだけ意味が理解できないゆとりだよ?w
>>読め。競いたければ勝手に個人でやってろ。
競争心むき出しで、パクリだろとか言われても、はぁ?
って思われているのは、分かりきった答えだからなんだよw
60:デフォルトの名無しさん
08/07/15 04:02:50
>>1とスレタイ
C/C++の ”宿題を片付けます”
> 気に入らない質問やその他や発言はスルーの方向で。
どこにも回答者同士で出来を争うといった趣旨の内容はなく
質問者に答えるのが一番の目的だと思うんだが?
だから決めたんじゃなくてそんな決まりはない、ということだよ。
路上で勝手に他の車と競争しているくらい、恥ずかしい行為だよ。
何一人で他人に負けたとか思って悔しい思いをしているの?ってねw
マナーを守って運転できない、加速できるなら出来るだけする奴は
危険だし迷惑。そういうこと。適切なソースが出せないなら、それはそれで
他人から指摘される場合もあるってことだよ、ワトソン君。
>>35 は前スレで解決済みでは?
61:デフォルトの名無しさん
08/07/15 04:32:34
>>59
よりよい回答が発生するのであれば、競争は大いに結構。というのが現代流なのでは?
ゆとりなのは、競争をしらないあなたでしょう。
62:デフォルトの名無しさん
08/07/15 04:36:03
>>60
>どこにも回答者同士で出来を争うといった趣旨の内容はなく
どこにも回答者同士で出来を競うなといった趣旨の内容はありませんが。
結果としていい回答が発生するのであれば、競争してもかまわないと思いますが、いかが?
あと車のたとえは意味不明。
63:デフォルトの名無しさん
08/07/15 04:37:14
えぇ、どこにも回答者同士で競い合うというった趣旨のスレではありません。
勝手に自意識過剰厨が、俺の方が出来が良いぜ、後出しじゃんけんは
必ず負けにしたいんだろ?w 内容じゃなくて早く書けるかを競うにしても無駄。
過去の課題のコピペで済むものも普通に存在しているし。
一人で見えない敵と戦ってろ
64:デフォルトの名無しさん
08/07/15 04:46:29
>>63
日本語でOK
65:デフォルトの名無しさん
08/07/15 05:10:58
自動スクリプト回してますね
66:デフォルトの名無しさん
08/07/15 05:20:34
先出し後出し中出しでもめるくらいなら、もう定石のある
ありきたりなパターンのものはテンプレ化して、それを
提示するなり、必要に応じてそのスタイルの関数を用いて出すとか。
それを競い合っても無駄だがねw
67:デフォルトの名無しさん
08/07/15 05:24:17
>>66
中だしでもめるようなら手をつけなければいいのですが、(回答)初心者には難しいのでしょうね。
68:デフォルトの名無しさん
08/07/15 05:25:20
>>65
自動スクリプトで対応可ですからね。
69:デフォルトの名無しさん
08/07/15 05:33:13
>>35 をお願いします。期限は今日なんで…
70:デフォルトの名無しさん
08/07/15 05:44:16
>>35 >>69
スレリンク(tech板:586番)
#include<iostream>
void swap(int *a, int *b){
int c;
c=*a; *a=*b; *b=c;
}
int main(void){
int max1=0, max2=0, num;
while(std::cin >> num){
if(num==0) break;
if(num<0 || num%2==1) continue;
if(num>max2) max2=num;
if(max1<max2) swap(&max1, &max2);
}
std::cout << max2 << std::endl;
return 0;
}
私自身はチェックしていません。
71:デフォルトの名無しさん
08/07/15 05:54:53
>>70
[3.3] 言語: C
72:デフォルトの名無しさん
08/07/15 06:08:05
>>35 >>69
#include <stdio.h>
void swap(int *a, int *b) {
int c;
c=*a; *a=*b; *b=c;
}
int main() {
int max1 = 0, max2 = 0, num;
while(scanf("%d", &num) == 1){
if(num == 0) break;
if(num < 0 || num % 2 == 1) continue;
if(num > max2) max2 = num;
if(max1 < max2) swap(&max1, &max2);
}
printf("%d\n", max2);
return 0;
}
>>71 thanks.
73:デフォルトの名無しさん
08/07/15 06:21:03
宿題に答えられたら答える人が答える、出来ない人が出来なかったことに
気を落とすスレでもなければ、回答したことに自己満足したのを
アピールするスレでもありませんので、お間違えのないようお願いします。
74:デフォルトの名無しさん
08/07/15 06:21:43
ありがとうございます
75:デフォルトの名無しさん
08/07/15 06:21:57
かまってちゃんが自己アピールするスレでもないんですけどね。
76:デフォルトの名無しさん
08/07/15 07:27:10
>>6を参考に
回答に余計なコメントを入れず、簡潔にコードだけ。
出来ればアンカーも付けずに、うpローダーに
ノーリンクな形で著作権フリーな形で書き込んで
URLだけ本スレに貼って下さるようお願いします。
77:45
08/07/15 07:39:23
誰か>>45やってくれませんか?
自機の移動までは出来たのですが、ずっと右に進んだりすると消えてしまうので、消えないように表示がしたいです。
敵の跳ね返りもコンパイルは出来るのに、何故か表示されない…。
78:デフォルトの名無しさん
08/07/15 07:46:12
>>77
期限切れのものは無駄だから作らない
79:デフォルトの名無しさん
08/07/15 07:48:45
>>77
つーか、Ex09から雑魚1匹だけ抜き出して動かせばいいんじゃないの?
参考までに。あのコードはC++分かってないと書けないようになってるんで、
(クラスの継承やらオーバーライドやら使ってるんで)ここで中途半端なコード出すと
「ああ、、、誰かのパクったんだな」ってばれるんでそこらへんよろしく♪
80:45
08/07/15 07:48:52
>>78
期限は今日の12時までに変更するので、お願いします。
81:45
08/07/15 07:55:45
>>78
Ex09だと敵雑魚が複数居るから、1匹だけ表示する方法が分かりません。
とりあえず自分なりにやったけど表示されず…。
82:45
08/07/15 07:56:34
すみません、>>81は>>79さんへのレスです。
83:デフォルトの名無しさん
08/07/15 08:26:30
だれか>>4をやってくれませんか??
難しいかと思いますが、期限が13:00までなので、わかる人がいればよろしくお願いします。
84:デフォルトの名無しさん
08/07/15 08:27:38
[1] 授業単元:プログラミング言語基礎
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: borland C++ Compiler 5.5.1
[3.3] 言語: C
[4] 期限: [2008年07月16日12:30まで]
[5] その他の制限: 特になし
今年からCを習い始めた初心者です、よろしくお願いします。
85:デフォルトの名無しさん
08/07/15 09:03:26
なんか、最近のいざこざでやる気が失せた。自分がやっても
誰かがやってたら、先に出した方がいれば後出しに何か言われるわ
そんなんでちょっと面倒で時間が掛かりそうだと、もうやる気が失せるわ。
ちょっと他人の回答について、黙ってて欲しい。まぁ、そんなんだから
最近は催促された後に、誰もやらないなら自分がやるかって
風潮になっているんだろうけどね。
86:デフォルトの名無しさん
08/07/15 09:05:01
>>84
これでいいですか。
1)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
2)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
87:デフォルトの名無しさん
08/07/15 09:23:42
>>85
質問テンプレで質問あげたら再度催促しない限り、回答を
貰えないといルールにすればいい。
催促は問題よっても異なるが、質問をあげてから最速で3時間以上は
してはならないことにする。
それまでに答えた回答者はフライングで、皆でバッシング
催促されたら、原則として最も早く回答した人が質問者との通信権を持ち
ソースの授与とソースに対する質問が終わるまで、他の回答者は
その質問者にアクセスすることが出来ないことにする。
その後、別の回答者、もしくは同じ回答者が質問者にアクセスす
る場合は、質問者を呼び出すこと。応答が無い限り、質問者宛という
形でソースコードを置き逃げするようなことをしない。
あと回答者同士で、ソースコードをやりとりするのはタブーかな。
やはり。
要するに、相手がオンライン状態であることを確認し、相手が自分の
コードを受け取る認識にあることを確認した上でソースを渡す方式すれ
ばいいだけ。
88:デフォルトの名無しさん
08/07/15 09:27:26
長文うぜー
89:デフォルトの名無しさん
08/07/15 09:34:10
>>50
数式が解けない
f'(t)=? //
f(0)=0
f''(t)=mg-kf(t)-aη/hf'(t)
90:デフォルトの名無しさん
08/07/15 09:34:48
f''(t)=mg-kf(t)-(aη/h)f'(t)
91:デフォルトの名無しさん
08/07/15 09:38:45
>>51
void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; }
void bubblesort(int *a, int size)
{
int i, j;
for(i=size-1; i>0; i--) for(j=0; j<i; j++) if(a[j] > a[j+1]) swap(a+j, a+j+1);
}
void insertionsort(int *a, int size)
{
int i, j;
for(i=1; i<size; i++) for(j=i; j>0 && a[j] < a[j-1];j--) swap(a+j, a+j-1);
}
92:デフォルトの名無しさん
08/07/15 09:54:02
>>88
短文しか書けない奴は実は単文は書けないな
93:デフォルトの名無しさん
08/07/15 10:07:17
>>88
大卒のための卒論にはありきたりな文章を真似るにしても
短文じゃ無理だから、お前みたいな大学も卒業していない
知能レベルの低い奴が何を言っても説得力がないよw
94:デフォルトの名無しさん
08/07/15 10:09:30
>>93
中文が一番うざい
95:デフォルトの名無しさん
08/07/15 10:09:58
>>88
読む気がないんだろ?だったら読まなくて良いからw
どうせ読解力、国語力のないお前じゃそういった低レベルの短文での
罵倒レスしか出来ないんだろうけどさw
96:デフォルトの名無しさん
08/07/15 10:10:35
>>94
だからお前個人の感想なんて要らないってw
お前の存在そのものがうぜー、このスレには必要ない
どうせお前が汚いソースを先走って出している低脳だから
必死に抵抗してんだろ?w
97:デフォルトの名無しさん
08/07/15 10:19:48
>>87
高卒?。中卒か?
もしかしたら小卒かも知れねーな。
大卒とか院卒だとしても、この回答者の心理を無視した
ルールは何だよw
相手がネットに張り付いて待っていよが居まいがコードが
出来たらいち早く置き土産みたく貼付けて楽しんでるんだよ。
コンパイルすら通らなくてもいい。とにかく形さえ出来てれば
いいんだ。
もすこし、実態を知ってからカキコしろや
98:デフォルトの名無しさん
08/07/15 10:20:15
あぁ、なんだやっぱり 大卒未満 か、悪い。
99:デフォルトの名無しさん
08/07/15 10:23:31
98の自己反省文でした。
100:デフォルトの名無しさん
08/07/15 10:27:02
[1] 授業単元:プログラミング論 I
[2] 問題文(含コード&リンク):
fib(1) = fib(2) = 1
fib(i) = fib(i - 1) + fib(i - 2) i は3以上の整数時、
fib(i) を以下のプログラムで計算する時、fib(i) を計算するのに加算が何回行われるか、
fib(i) を使って示せ。
さらに、このプログラムより加算回数が少ないプログラムをCで実装せよ。
int fib(int i){
if(i <=2){ return 1;}
int answer = fib(i-1) + fib(i-2);
return answer;
}
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc3.4
[3.3] 言語: C
[4] 期限: 2008年7月17日
[5] その他の制限: 特にありません。
よろしくお願いします。
101:デフォルトの名無しさん
08/07/15 10:30:29
とりあえず100は12:00まで回答禁止ってどーだ?
12:00以降100が再度お願いしますと言って来たら
その時点で回答
期限は明後日だし、明日中に回答が貰えれば十分な筈だ
102:デフォルトの名無しさん
08/07/15 10:35:45
ここでいちいち名指し、個人宛て、アンカーをつけてレスしてないのに
反発レスをする奴は、自分に見に覚えのある基地外ってことだろ?
分かりやすいな、簡単に餌のない釣り糸に食いつく野郎って。
お前がいなくなれば、このスレは安泰するんだが、分かるかね?
103:45
08/07/15 10:47:03
>>79
一匹だけ抜き出す方法教えてくれませんか?
自機はできたので大丈夫そうです。
104:デフォルトの名無しさん
08/07/15 10:52:49
>>103
この間の君かw
void elCreate(void)
というところの
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40);
Zako[1] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",2,200, 0,5, 2,40,40);
Zako[2] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",6, 0, 80,5, 2,40,40);
Zako[3] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",5,200, 80,5, 2,40,40);
というのが敵クラスを生成して画像を当てはめてるところ。
void MainScreen(void)
というところの
for(int i=0;i<4;i++){
Zako[i]->Draw();
}
というのが敵クラスのDrawを呼び出して移動処理+描画をさせてる。
やっぱりクラス部分ではまったか・・・
途中でやってた人がクラスで作ってきたがそれまでがそんなのできそうな気配が
なかったのでいいのかな~?と心配はしてたんだがw
105:45
08/07/15 11:04:59
>>103
つまり…
for(int i=0;i<4;i++){
Zako[i]->Draw();
}
を
for(int i=0;i<1;i++){
Zako[i]->Draw();
}
にすれば良いのですか?
106:デフォルトの名無しさん
08/07/15 11:06:33
>>105
それでもいいけど1個しか使わないなら
Zako[0]->Draw();
だけでいいかな
まあ本当は配列にする必要すらないんだけどね
107:45
08/07/15 11:15:44
>>106
ありがとうございます。無事にできました!
あと、影は使わないので消す事できましたが、
下の 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40の部分は使わないので消しても平気でしょうか?
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40);
Zako[1] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",2,200, 0,5, 2,40,40);
Zako[2] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",6, 0, 80,5, 2,40,40);
Zako[3] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",5,200, 80,5, 2,40,40);
Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 0, 0,1,11,60,60);
Bocty[1] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 60, 0,1,11,60,60);
Bocty[2] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3,120, 0,1,11,60,60);
Bocty[3] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3,180, 0,1,11,60,60);
Bocty[4] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 60,360,1, 1,60,60);
108:デフォルトの名無しさん
08/07/15 11:24:15
>>107
新しい方のお題がさっぱりわからないんだけど
Ex09のお題でいうところの自分で操作するキャラクターと跳ね回ってる敵の両方で影を使わないので
あればクラスの
class Chara{
<中略>
Chara(int _w,int _h,char *imgname,int _draw_type,char *kagename,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0)
{
を
Chara(int _w,int _h,char *imgname,int _draw_type,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0)
{
として
続く
109:デフォルトの名無しさん
08/07/15 11:25:29
>>108の続き
class PlayerChara : public Chara
{
public:
PlayerChara(int _w,int _h,char *imgname,int _draw_type,char *kagename,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0) :
Chara(_w,_h,imgname,_draw_type,kagename,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
を
class PlayerChara : public Chara
{
public:
PlayerChara(int _w,int _h,char *imgname,int _draw_type,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0) :
Chara(_w,_h,imgname,_draw_type,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
とすれば
続く
110:デフォルトの名無しさん
08/07/15 11:27:47
>>109の続き
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40);
の"bmp/kage2.bmp"は指定しなくてOKだし
Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 0, 0,1,11,60,60);
の"bmp/kage.bmp"は指定しなくてOK
でも自分で操作するほうだけ影を残す場合は継承?してるっぽいのでちょっといじりかた変わると思う。
C++あまり詳しくないのであれなんだけどさ・・・^^;
111:51
08/07/15 11:31:07
>>91
ありがとうございます
無事できました
112:デフォルトの名無しさん
08/07/15 11:37:17
URLリンク(ja.wikipedia.org)
113:デフォルトの名無しさん
08/07/15 11:47:18
ヒント:挿入ソートは比較対象となる値を記憶しておく変数を使い
比較中は押し出すだけで、最後に対象の位置へその値を入れるため
スワップの必要が無い。
114:45
08/07/15 11:52:55
>>108
>>109
これ全部やった後、>>110のようにやって。
これにしました。
Zako[0] = new Chara(200, 80,"bmp/teki.bmp",1,3,0,0,5,2,40,40);
Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,0,0,1,11,60,60);
Bocty[1] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,60,0,1,11,60,60);
Bocty[2] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,120,0,1,11,60,60);
Bocty[3] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,180,0,1,11,60,60);
Bocty[4] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,60,360,1,1,60,60);
そうしたら
cpp(73) : error C2065: 'kagename' : 定義されていない識別子です。
って出たんですけど、影関係全部消去した方が良いのですか?
115:デフォルトの名無しさん
08/07/15 11:57:07
>>114
>>109
のこれ忘れてる?
Chara(_w,_h,imgname,_draw_type,kagename,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
↓
Chara(_w,_h,imgname,_draw_type,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
116:デフォルトの名無しさん
08/07/15 12:15:02
すいませんが>>55をお願いします
117:45
08/07/15 12:29:19
>>115
ありがとうございます!できました!
敵をこれ↓に変えて、跳ね返るときに音鳴らすのはどうやってやるんですか?
URLリンク(www.dotup.org)
118:デフォルトの名無しさん
08/07/15 12:35:25
>>60
いや、macになったよ
119:デフォルトの名無しさん
08/07/15 12:35:59
>>117
画像のサイズが同じならファイル名同じにして入れ替えるだけだろ
120:デフォルトの名無しさん
08/07/15 12:36:12
>>118
コンパイラと言語は同じでは?
121:デフォルトの名無しさん
08/07/15 12:37:32
>>17を誰かお願いします。
122:115
08/07/15 12:40:04
>>119
いや違う
void Draw()
{
if(draw_type == 0){
cw = w;
cx = 0;
ch = h;
cy = 0;
}else{
cw = div_w;
cx = start_x + (cw * (img_id % (div_x)) );
ch = div_h;
cy = start_y + (ch * (img_id / div_x) );
}
この部分で与えられた画像が1画像1キャラか1画像の指定開始位置から縦方向にn個あるか
しか現在処理できないようになってるので横方向にn個並んでる際の処理がいる
123:115
08/07/15 12:41:35
ってなんで他人が設計した得意でもないC++の解説をやってるんだ俺はorz
124:115
08/07/15 12:43:25
あ、敵が横だな。
いけるのかな?
125:デフォルトの名無しさん
08/07/15 12:52:54
>>55 >>116
URLリンク(kansai2channeler.hp.infoseek.co.jp)
126:115
08/07/15 13:01:30
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,3, 0, 0,10, 1,40,40);
引数1,2 任意の座標にしてね。
引数3 今回表示したいbmpのファイル名称に
引数4 1でOKかな?
引数5 キャラクターのアニメーション用コマの切り替えタイミング?3だと1/60*3で切り替えかな?
引数6,7 画像の開始位置、今回の画像は1画像に1キャラの複数コマしかないので0,0で
引数7,8 横方向に10個、縦方向に1個分しかないので10,1で
引数9,10 1キャラの縦横サイズが40x40ドットなので40,40で
127:115
08/07/15 13:03:12
>>126の続き
サウンド系のお話
class Chara の
virtual void Move()
{
if( (x > 640-cw) || (x < 0) ) {
dx = -dx;
x = x + dx;
}
if( (y > 480-ch) || (y < 0) ) {
dy = -dy;
y = y + dy;
}
x = x + dx;
y = y + dy;
}
続く
128:115
08/07/15 13:04:12
>>127の続き
virtual void Move()
{
int soundflg = 0;
if( (x > 640-cw) || (x < 0) ) {
dx = -dx;
x = x + dx;
soundflg = 1;
}
if( (y > 480-ch) || (y < 0) ) {
dy = -dy;
y = y + dy;
soundflg = 1;
}
if (soundflg == 1)
{
//鳴らしたい音の処理
}
x = x + dx;
y = y + dy;
}
とでもすればOKかな?
elのサウンド系はよくわからん
129:デフォルトの名無しさん
08/07/15 13:06:33
>>1
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
130:115
08/07/15 13:09:11
ああ、すまん
131:デフォルトの名無しさん
08/07/15 13:15:43
>>55
void del_chr(char *str, char c){
char *s,*d;
s = d = str;
do{
if(*s != c) *d++ = *s;
}while(*s++);
}
132:131
08/07/15 13:17:07
かぶった。
リロードしてなかったorz
133:デフォルトの名無しさん
08/07/15 13:17:46
>>120
別の学校で同じ課題が出たのかな。
先生も課題考えるのめどいんだろうなー
134:115
08/07/15 13:18:56
>>133
実は先生も課題用として動く物をこのすれの住人に作らせてると
俺は常々思ってる。
135:デフォルトの名無しさん
08/07/15 13:20:54
そんな先生がいたらちょっとした質問であたふたしそうだw
136:デフォルトの名無しさん
08/07/15 13:23:12
>>125,131
ありがとうございます
…そっか、do文か
137:デフォルトの名無しさん
08/07/15 13:27:14
>>134
う~~ん・・・同じ学校の別の生徒と思われるかもしれんが、もしかすると
講師が課題作りをしたは良いが、模範解答をどうしようか考えて
ここを利用している可能性もあるかもね・・・その構図を思い浮かべて、
ちょっとワラタw っつか、俺利用されたっ!?
138:デフォルトの名無しさん
08/07/15 13:28:35
学生臭いスレですね
139:デフォルトの名無しさん
08/07/15 13:29:56
>>131
うおっ、その手があったか。先にレスしたけど、それパクらせてもらうw
140:115
08/07/15 13:31:37
現実にそれっぽいのがあったんだよ。
週末にここで質問された内容が週明けに再度復活とかさ・・・・
141:デフォルトの名無しさん
08/07/15 13:33:36
>>35
スレリンク(tech板:723番)
スレリンク(tech板:725番)
スレリンク(tech板:757番)
スレリンク(tech板:760番)
142:デフォルトの名無しさん
08/07/15 13:35:09
>>140
なるほど、確かに。講師が模範解答の依頼、それを次の授業の後に
ここで質問した人が、既出のソースをそのまま提出して
お前、あのスレを使ったな?っとバレて単位がもらえないなんて
ことが、どこかの学校であるかも・・・そんな構図を思い浮かべて
ますます吹いたw
143:デフォルトの名無しさん
08/07/15 13:37:52
>>141 のソースに、2 2 0 と入力した場合について指摘がされているが
それをどう解釈するか?確かにこの場合、2番目も1番目も同じと
解釈するなら、2でも問題なし。まぁ、同じでも偶数は2つ入力されている
わけだから、これでも問題の趣旨としては条件を満たしていると思われる。
144:デフォルトの名無しさん
08/07/15 13:41:31
学生だって土日は外で遊ぶこともあるべ
145:デフォルトの名無しさん
08/07/15 13:52:55
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
次の説明を読んで、プログラムを作成しなさい。
小数で入力される気温のデータを5℃単位の整数に丸めたい。
キーボードからdouble型変数kに気温を入力し、
丸めた数値はint型変数gに求め、gを画面に出力する。
ただし入力データに負の気温はないものとする。
また必要なら、
計算途中の中間結果を格納するint型変数wなど、
適宜変数を用意すること。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C++
[4] 期限:
[5] その他の制限: 繰り返しや分岐を使わず、簡単な計算で
146:デフォルトの名無しさん
08/07/15 13:53:54
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
キーボードから100点満点のテストの点数を入力し(-1で終了)、
10点ごとの人数を int型の配列 count[11]に数えるプログラムを
作成せよ。 テストは100点満点とし、それ以外の入力はエラーとし
て無視する。ただし -1 はデータの終了を表すものとする。 点数
の入力が終了したら、度数分布を画面に出力して終了する。出力は
人数と,*(アスタリスク)によるグラフとする。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C++
[4] 期限:
[5] その他の制限:
147:デフォルトの名無しさん
08/07/15 13:54:37
>>128
ありがとうございます!無事鳴りました。
自機も移動する時鳴らしたいのですが、同じようにやるんですか?
148:デフォルトの名無しさん
08/07/15 13:55:09
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
次の処理を行うプログラムを作成し実行結果を確認しなさい。
int型の配列a[5]、int型へのポインタp1, p2を宣言する
配列名aで表示される値を画面に出力する
配列a[5]のすべての要素のアドレスを出力する
ポインタp1にa[0]のアドレス、ポインタp2にa[4]のアドレスを格納する
p1 - p2を計算し出力する
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C++
[4] 期限:
[5] その他の制限:
3問」ありますが、よろしくお願いします。
149:115
08/07/15 14:17:45
URLリンク(kansai2channeler.hp.infoseek.co.jp)
150:115
08/07/15 14:18:16
>>149は>>147に
151:115
08/07/15 14:27:29
すまん、フラグを立てる際間違えてた
if(key_lt == HOLD_KEY || key_rt == HOLD_KEY) {
if( tx >= 0 && tx + cw <= 640){
px = tx;
soundflg1 = 1;
} else {
soundflg2 = 1;
}
}
if(key_up == HOLD_KEY || key_dn == HOLD_KEY) {
if( ty >= 0 && ty + ch <= 480){
py = ty;
soundflg1 = 1;
} else {
soundflg2 = 1;
}
}
152:デフォルトの名無しさん
08/07/15 14:33:36
[1] 授業単元: C言語プログラミング
[2] 分数の四則演算を計算するプログラムを作成する
[3] 環境
[3.1] OS: Windows
[3.3] 言語・C++
[4] 期限: ([2008年7月21日14:00まで
[5]条件
分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。
計算規則
a|b + c|d = (a*d + b*c) | (b*d)
a|b - c|d = (a*d - b*c) | (b*d)
a|b * c|d = (a*c) | (b*d)
a|b / c|d = (a*d) | (b*c)
計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。
1.分母がゼロの入力エラーに対しては、再入力するよう促す。
2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。
3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。
-2147483648 ~ 2147483647
153:115
08/07/15 14:42:15
でキー押しっぱなしだとうるせーよ対策バージョンはこれ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
154:デフォルトの名無しさん
08/07/15 14:45:19
>>115
やさしいね
155:デフォルトの名無しさん
08/07/15 14:46:32
>>154
こういう題材じゃなければぶっちしてるw
156:デフォルトの名無しさん
08/07/15 15:13:59
>>153
ありがとうございます!できました。
最後に今までのをユーザー関数群でまとめたいのですが、
どうすれば良いでしょう?
157:115
08/07/15 15:18:03
うーん
クラスになってるからユーザー関数にするような箇所がないかも?
大半の機能はelライブラリでやってるし・・・
C++得意な方よろしこorz
158:デフォルトの名無しさん
08/07/15 15:23:14
>>156
一度自分で完成させたソースを上げて、見てもらったほうがいいよ。
159:デフォルトの名無しさん
08/07/15 15:33:00
[1] 授業単元:
C
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
Microsoft Visual Studio 2008
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
基本ソートのcity.txtは問題文の一番下です。
お願いします。
160:デフォルトの名無しさん
08/07/15 15:35:53
>>158
分かりました。
その前に自機と敵を下のに変えるには、
どこをどのように変更すれば良いのですか?
自機
URLリンク(www.dotup.org)
敵
URLリンク(www.dotup.org)
今までのソース
URLリンク(www.dotup.org)
161:デフォルトの名無しさん
08/07/15 15:36:46
>>35 Thanks, Part112>>760
#include <stdio.h>
int main(void) {
int m1=0, m2=0, n;
while( scanf("%d",&n) ) {
if(n == 0) break;
if(n%2 == 1) continue;
/*
* if(n==m1) continue;
* if(n >m2) m2=n;
* if(m1<m2) swap(&m1, &m2); */
if(n>m2) {
if(n>m1) { m2=m1; m1=n;}
else if(n==m1) ;
else m2=n;
}
}
printf("%d \n",m2);
return 0;
}
162:デフォルトの名無しさん
08/07/15 15:39:39
>>145
#include <iostream>
int main(void){
double k;
int g;
std::cout << "気温を入力:";
std::cin >> k;
g = k / 2.5;
g += g % 2;
g = g / 2 * 5;
std::cout << "気温は約" << g << "℃です。" << std::endl;
return 0;
}
163:115
08/07/15 15:42:52
>>160
その敵のほうのさ、白いのっていまどきマスクパターンっていわないよねw
あくまで敵が何か発動中はその白塗りになると思っていいよね?
164:デフォルトの名無しさん
08/07/15 15:47:31
>>163
はい。そうです。
165:デフォルトの名無しさん
08/07/15 15:48:50
>>163
跳ね返りの時、白く点滅できれば…。
166:デフォルトの名無しさん
08/07/15 15:52:06
>>35
URLリンク(kansai2channeler.hp.infoseek.co.jp)
指摘のあった、一番大きい値が2回入力された場合に対処してみた。
167:デフォルトの名無しさん
08/07/15 15:58:04
>>152
適当に
URLリンク(kansai2channeler.hp.infoseek.co.jp)
168:161
08/07/15 16:01:52
scanf の戻り値はエラーなら0か-1
169:58
08/07/15 16:04:08
すみません
どなたか>>58をお願いできませんか?
170:デフォルトの名無しさん
08/07/15 16:07:23
>>146
#include <iostream>
int main(void){
int count[11];
int n;
for(int i = 0;i < 11;i++) count[i] = 0;
while(1){
std::cout << "点数入力:";
std::cin >> n;
if(n == -1) break;
if(0 <= n && n <= 100) count[n/10]++;
}
for(int i = 0;i < 10;i++){
std::cout << std::endl << i * 10 << "~" << i * 10 + 9 << "(" << count[i] << "名)\t|";
while(count[i]-- > 0) std::cout << "*";
}
std::cout << std::endl << "100(" << count[10] << "名)\t|";
while(count[10]-- > 0) std::cout << "*";
return 0;
}
171:デフォルトの名無しさん
08/07/15 16:09:06
>>148
#include <iostream>
int main(void){
int a[5],*p1,*p2;
std::cout << "a=" << a << std::endl;
for(int i = 0;i < 5;i++){
std::cout << "a[" << i << "]のアドレス:" << &a[i] << std::endl;
}
p1 = &a[0];
p2 = &a[4];
std::cout << "p1 - p2 (&a[0] - &a[4]) = " << p1 - p2 << std::endl;
return 0;
}
172:115
08/07/15 17:04:35
>>163
URLリンク(kansai2channeler.hp.infoseek.co.jp)
173:115
08/07/15 17:05:06
>>163じゃねえ>>165だ
174:デフォルトの名無しさん
08/07/15 17:10:56
[1] 授業単元:プログラミング第一
[2] 問題文(含コード&リンク):
構造体bintree_nodeを次のように定義する。
typedef struct bintree_node{
int value;
struct bintree_node *lt,*rt;
} *bintree;
このとき、次の条件を満たす関数void delgraph(bintree t)を作成せよ。
・tからたどることのできる節点をすべてfreeによって消去する
・tに合流点・ループがあっても必ず停止し、かつどの節点にもfreeが2回以上適用されないようにする
[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まで] または [無期限] のいずれか)
7/16 12:00
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
以前、似たような問題をこちらで聞いた時のプログラム(木構造に合流点やループがないかどうか調べる)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
に付け足していただけるとうれしいです。
175:デフォルトの名無しさん
08/07/15 17:11:05
PlayerChara(60,660
この数字がおかしいな
176:デフォルトの名無しさん
08/07/15 17:42:27
>>89
m(dz^2/dt^2)-an/h(dz/dt)-kz=0
177:デフォルトの名無しさん
08/07/15 17:48:23
>>100ですが、
回答はご用意頂けたでしょうか?
178:デフォルトの名無しさん
08/07/15 18:00:38
>>174
その元のコードだとbintreeはmallocを使わず実装してるので
この課題には流用しずらい。
それに付け足すまでもなく自明に実装できる。
void delgraph(bintree tree){
static bintree_node dummy;
if(!tree || tree->lt == &dummy)return;
bintree lt = tree->lt,rt=tree->rt;
tree->lt = &dummy;
delgraph(lt);
delgraph(rt);
free(tree);
}
ようするに一度巡回したノードにはltにdummy突っ込んでおくだけ。
削除するんだから値を勝手に書き換えても問題ないだろう。
179:デフォルトの名無しさん
08/07/15 18:17:51
0の値が格納された整数変数 pos_area を使って bst_sorted_output(root,A,&pos_area)を実行することにより、
2分探索木に格納されている整数データを配列Aへ小さい順に整列して出力する関数bst_sorted_output(Node *node, int A, int *pos)をC言語を用いてコーティングせよ。
ただし、変数*pos(実体はpos_area)は配列Aにおける次の格納位置を示すのに使うものとする。
180:デフォルトの名無しさん
08/07/15 18:20:21
>>177
#include<stdio.h>
#include<stdlib.h>
int fib(int i){
static int count;
int answer;
if(i==0){ int ret=count;count=0;return ret; }
if(i <=2){ return 1;}
answer = fib(i-1) + fib(i-2); // 3回加算
count+=4; // 1回加算 計4回
return answer;
}
int fib2(int i){
static int count;
int n, fib_n_0=1, fib_n_1=1, fib_n_2=1;
if(i==0){ int ret=count;count=0;return ret; }
for(n=3;n<=i;n++){ // 1回加算
fib_n_2=fib_n_1+fib_n_0; // 1回加算
fib_n_0=fib_n_1;
fib_n_1=fib_n_2;
count+=3; // 1回加算 計3回
}
return fib_n_2;
}
int main(int argc, char *argv[]){
int fib_n=20;
printf("%d ", fib(fib_n));
printf(" %d\n", fib(0));
printf("%d ", fib2(fib_n));
printf(" %d\n", fib2(0));
return 0;
}
181:174
08/07/15 18:52:33
>>178
回答ありがとうございます。
いただいたのをもとにプログラムを書いてみたんですが、うまく削除できてないみたいなんです・・・
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これを実行すると@を5回表示するんですが、bintree ~ is deleted.のほうは表示されなくて。
申し訳ありませんがもう1度見ていただけますか。
182:デフォルトの名無しさん
08/07/15 18:56:27
>>181
削除は出来ている。
ただ、ローカル変数のta0とかの値は削除したからって自動でNULLにならない。
単にbintree ~ is deleted.の部分のif文がおかしいだけ。
183:174
08/07/15 19:10:38
>>181
調べてみたら、確かにfreeした後の領域はNULLではなくて、
何があるかわからないということが書いてありました。
そうすると、削除したかどうかってどうやって調べればいいんでしょう・・・。
184:デフォルトの名無しさん
08/07/15 19:13:47
>>35 なのですが、関数を使わずにか、
#include <stdio.h>
void swap(int *a, int *b) {
int c;
c=*a; *a=*b; *b=c;
}
int main() {
int max1 = 0, max2 = 0, num;
while(scanf("%d", &num) == 1){
if(num == 0) break;
if(num < 0 || num % 2 == 1) continue;
if(num > max2) max2 = num;
if(max1 < max2) swap(&max1, &max2);
}
printf("%d\n", max2);
return 0;
}
*aやcontinue、&max1を使わずに出来ないでしょうか?
何度も申し訳ありません。
185:デフォルトの名無しさん
08/07/15 19:18:37
>>184
このスレ内に汝の欲するものは既にある
186:デフォルトの名無しさん
08/07/15 19:19:55
空白文字の個数を保ったまま、文字列を単語単位で処理をしたいんですが
どのように記述するのが良いのでしょうか
例えば次の文字列があり、単語の先頭にあるaだけ大文字にしたいです
_aba__dea__aga__ (_は空白)
_Aba__dea__Aga__ (こうなってほしい)
stringstreamでパースして、後で結合する方法を思いつきましたが、この方法だと空白は消えてしまいました。
地道に1文字ずつみて、str[i]==0 || (str[i-1]==' ' && str[i]!=' ')
こういった判定をする以外に良い方法ってありますか?
187:デフォルトの名無しさん
08/07/15 19:24:39
UDP:相手先のオンライン、着信確認をせずに送ること
TCP:相手先がオンラインであること、着信確認を取った上で送ること
という理解でいいでしょうか?
188:デフォルトの名無しさん
08/07/15 19:31:55
>>186
こういうことをしたいのかな?
それともaだけを大文字にするのかな?
#include<iostream>
#include<string>
#include<cctype>
int main(void){
std::string foo=" aba dea aga ";
std::cout << foo << std::endl;
for(int i=0,next_toupper_flag=1;i<foo.size();i++){
if(next_toupper_flag) foo[i]=toupper(foo[i]); // 書き換えてるけどこれっておk?
if(isspace(foo[i])) next_toupper_flag=1;
else next_toupper_flag=0;
}
std::cout << foo << std::endl;
}
189:デフォルトの名無しさん
08/07/15 19:37:21
>>186
while (*str)
{
while (*str == ' ') str++;
if (*str == 0) break;
else if (*str == 'a') *str = 'A';
while (*str && *str != ' ') str++;
}
190:デフォルトの名無しさん
08/07/15 19:37:29
うpローダー使おうよ
191:デフォルトの名無しさん
08/07/15 19:49:53
複数レスにならない限り過去ログに残るほうがうれしい
質問者側としては検索で出てくるのはまずいかもしれないが…
変数名変えれば多分大丈夫さw
192:デフォルトの名無しさん
08/07/15 19:51:40
[1] 授業単元:C言語
[2] 問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windowsxp
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限:7月18日
お願いします
193:デフォルトの名無しさん
08/07/15 20:05:21
>>192
URLリンク(kansai2channeler.hp.infoseek.co.jp)
194:デフォルトの名無しさん
08/07/15 20:06:24
すいませんがお願いします。
[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク)
以下のようなdouble型配列がある。配列の全要素の合計と平均を求める
プログラムをポインタを使用して作成しなさい。
[配列の定義]
double date[5]={10.8,20.3,30.6,40.4,50.5}
[実行結果]
配列の内容
date[]=10.800000,20.300000,30.600000,40.400000,50.500000
合計=152.600000
平均=30.520000
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:今週いっぱいまで
[5] その他の制限: (シンプルにおねがいします)
195:デフォルトの名無しさん
08/07/15 20:07:51
>>193どうもです!!
196:デフォルトの名無しさん
08/07/15 20:35:23
>>194
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]){
double date[5]={10.8,20.3,30.6,40.4,50.5}, *p=date, sum, ave;
int i;
printf("date[]=%.6f", sum=*p++);
for(i=1;i<5;i++,p++){
printf(",%.6f", *p);
sum+=*p;
}
ave=sum/5;
printf("\n合計=%.6f\n", sum);
printf("平均=%.6f\n", ave);
return 0;
}
197:デフォルトの名無しさん
08/07/15 20:36:13
>>184
やっぱりわからないです…
198:デフォルトの名無しさん
08/07/15 20:47:23
[1] 授業単元: Cプログラミング
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] 言語:C
[4] 期限:7月17日
お願いします。
199:194
08/07/15 20:48:48
>>196
すごい、完璧に動きました。
ありがとうございます!
200:デフォルトの名無しさん
08/07/15 20:50:55
完璧に動く > 完動 > 感動した!
201:デフォルトの名無しさん
08/07/15 21:06:53
>>194 シンプル >
#include <stdio.h>
#define COUNT 5
double date[5]={10.8,20.3,30.6,40.4,50.5};
void main(void)
{
int i;
double *p=date, sum=0.0, ave;
printf(" 配列の内容\n date[]=");
for(i=0; i<COUNT; i++, p++) {
sum += *p;
printf("%f", *p);
if(i < COUNT-1) printf(",");
}
ave = sum / COUNT;
printf("\n 合計=%f\n 平均=%f\n", sum, ave);
}
202:デフォルトの名無しさん
08/07/15 21:09:30
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン:VC6.0
[3.3] 言語: C++
[4] 期限: 至急
[5] その他の制限:問題文をソースの上に載せています。よろしくおねがいします
203:デフォルトの名無しさん
08/07/15 21:09:34
>>198
URLリンク(kansai2channeler.hp.infoseek.co.jp)
204:デフォルトの名無しさん
08/07/15 21:11:27
動作は完璧かもしれないが、出題内容のdateはdataに変えるべきだと思った。
205:デフォルトの名無しさん
08/07/15 21:12:53
>>198
URLリンク(kansai2channeler.hp.infoseek.co.jp)
206:デフォルトの名無しさん
08/07/15 21:20:39
どうか>>50をお願いします!!
207:デフォルトの名無しさん
08/07/15 21:21:22
[1] 授業単元:数値計算
[2] 問題文(含コード&リンク):
y' = x +y
y(0) = 0
の厳密解を求めるプログラムを作って☆
[3] 環境
[3.1] OS:mac os x leopard
[3.2] コンパイラ名とバージョン:gcc.4.0.1
[3.3] 言語: C
[4] 期限: 至急
[5] その他の制限:printfもfprintfもしなくて結構です。ええ、そうです。私ができないのは積分なのです…orz
すいませんすいませんすいませんすいませんすいません…。公式分かってるけど、計算ミスが多すぎて何が何だかなのです><
208:186
08/07/15 21:26:37
>>188
ありがとうございます。
next_toupper_flagで単語の先頭(書き換えるべき箇所)を保持してるわけですね
書き換えもOKだったので助かりました。
>>189
ポインタ苦手なんですが、何とか理解できました。
最初、全てのaを置換しているのかと思いましたが
最後のwhileで先頭以外を読み飛ばしてるんですね
209:デフォルトの名無しさん
08/07/15 21:41:29
>>184ですが
関数使わずにか* & continueを使わない方法ないですか?
図々しいとは思いますが、今日中なので頼みます
210:デフォルトの名無しさん
08/07/15 21:46:25
>>209
>>166 でダメなら諦めるしかない
211:デフォルトの名無しさん
08/07/15 21:55:52
>>107
>>110
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,NULL,3, 0, 0,5, 2,40,40);
にすればいいだけなのに(´;ω;`)
>>126
引数4は
0-背景
1- パターン1 → パターン2 → …… → パターンN → パターン1→ ……
2- パターン1 → パターン2 → …… → パターンN → パターンN-1 → パターンN-2 → …… → パターン1 → ……
212:デフォルトの名無しさん
08/07/15 21:58:06
>>210
アドバイスありがとうございます。
213:198
08/07/15 22:02:15
>>205
ありがとうございます!
初めて見る単語の理解に努めます・・・
214:デフォルトの名無しさん
08/07/15 22:12:06
[1] 授業単元: Cプログラミング演習
[2] 問題文
20次元の2つのベクトル余弦cos(θ)を求めよ。
ベクトルの要素はそれぞれ、ユーザーが入力すること。ベクトル要素は
double型とすること。
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: Linux
[3.3] 言語: (C言語)
[4] 期限:7/16
[5] その他の制限: 特になし
215:デフォルトの名無しさん
08/07/15 22:42:36
>>4 07/15 13:00 線形リスト
>>17 07/15 14:00 分数の四則演算を計算するプログラム
>>35 07/15 17:00 キーボード入力と表示 : >>72, >>141, >>161, >>166
>>37 07/15 17:00 数字の読み方 : >>39, >>40, >>42?
>>44 07/17 --:-- 4択3種
>>45 07/15 07:00 ゲーム? : >>108->110 その他アドバイスは多数
>>46 07/18 --:-- メディアン : >>47, >>49
>>50 07/17 00:00 減衰振動
>>51 07/15 12:00 ソーティング:基本交換法と挿入法 : >>91
>>55 07/15 14:00 文字列中の特定文字を削除 : >>125, >>131
>>58 07/15 18:00 木構造を用いた数式の処理
>>84 07/16 12:30 自由落下・BMI : >>86
216:デフォルトの名無しさん
08/07/15 22:44:03
>>100 07/17 --:-- フェボナチ数列 : >>180
>>145 --/-- --:-- 5ごとに丸め >>162
>>146 --/-- --:-- 数字入力と度数分布表示 : >>170
>>148 --/-- --:-- ポインタ演算 : >>171
>>152 07/21 14:00 = >>17 : >>167
>>159 07/16 --:-- 複素数演算・ソーティング
>>174 07/16 12:00 領域開放 : >>178?
>>179 --/-- --:-- 2文木->配列
>>186? : >>188, >>189
217:デフォルトの名無しさん
08/07/15 22:44:33
>>192 07/18 --:-- ? : >>193
>>194 07/18 --:-- 配列の全要素の合計と平均 : >>196, >>201
>>198 07/17 --:-- 大文字小文字3題 : >>203, >>206
>>202 --/-- --:-- (ごめんなさい、よくわからないです。)
>>207 --/-- --:-- 微分方程式の解析解
>>214 07/16 --:-- 20次元の2つのベクトル余弦
218:84
08/07/15 22:45:01
>>86
ありがとうございます!
まさかこんなに早く答えていただけるとは・・・助かりました。
見たことある単語がいくつもあったので自分にも理解できそうです。
219:デフォルトの名無しさん
08/07/15 22:49:39
>>214 20次元の場合の計算方法はこれでいいのか?
#include<stdio.h>
#include<math.h>
#define EPS (1.0e-20)
typedef struct tag_vector20d_t{
double num[20];
}vector20d_t;
double vector20d_size(const vector20d_t *vector20d){
int i; double x2=0.0;
for(i=0;i<20;i++) x2+=vector20d->num[i]*vector20d->num[i];
return sqrt(x2);
}
double vector20d_inner_product(const vector20d_t *a, const vector20d_t *b){
int i; double ret=0.0;
for(i=0;i<20;i++) ret+=a->num[i]*b->num[i];
return ret;
}
double vector20d_cos(const vector20d_t *a, const vector20d_t *b){
double size_a, size_b;
size_a=vector20d_size(a);
size_b=vector20d_size(b);
if(size_a<EPS || size_b<EPS) return -10.0;
return vector20d_inner_product(a, b)/(size_a*size_b);
}
int main(void){
int i; vector20d_t a, b;
for(i=0;i<20;i++) scanf("%lf", &(a.num[i]));
for(i=0;i<20;i++) scanf("%lf", &(b.num[i]));
printf(" %f\n", vector20d_cos(&a, &b));
return 0;
}
220:デフォルトの名無しさん
08/07/15 23:09:22
>>100
ありがとは?
>>596
過去ログ嫁
221:デフォルトの名無しさん
08/07/15 23:13:59
>>201
ループの中に無駄な分岐を入れるのはバカ
222:デフォルトの名無しさん
08/07/15 23:16:34
>>221
どのくらい早くなりますか?
223:174
08/07/15 23:27:22
追記です。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
でta1のltをta4にしたとき(合流点があるとき)、@を1つ出力したあとAbortedと出て強制終了してしまいます。
(↑ta4をfreeしたあとta3でta4にアクセスしようとするから?)
他にも、ta3のrtをta2にするとSegmentation Errorとなってしまいます。
ループのときは正しく動いているようなので、上の2つのようなときに正しく動けばいいんですが・・・
よろしくお願いします。(引き続き>>183も答えていただけると幸いです)
224:デフォルトの名無しさん
08/07/15 23:27:27
>>201
このばあいほとんど分岐が起こらないから、きにする必要なし。
225:デフォルトの名無しさん
08/07/15 23:39:35
分岐結果の分布がどうとかではなくて毎回判定処理が動作することを懸念してるんで無いの?
今回の場合は大差ないし、そういうのは必要に応じてやればいいと思うけど。
226:デフォルトの名無しさん
08/07/15 23:45:30
なんでもループにまとめたり、短く書くことがいいことだと思う時期があんだよな。
227:デフォルトの名無しさん
08/07/16 00:14:21
>>223
あーそれは俺のバグだなぁ。
たしかにfreeを実行するタイミングが早すぎた。
修正してみた。あんまり自明なアルゴリズムじゃなくなってしょんぼり。
void delgraph2(bintree tree,bintree*rest){
static bintree_node dummy;
if(tree && tree->lt != &dummy)
{
bintree lt = tree->lt , rt = tree->rt;
tree->lt = &dummy;
tree->rt = *rest;
*rest = tree;
delgraph2(lt,rest);
delgraph2(rt,rest);
}
}
void delgraph(bintree tree){
bintree rest = NULL;
delgraph2(tree,&rest);
while(rest){
bintree self=rest;
rest = rest->rt;
free(self);
}
}
228:デフォルトの名無しさん
08/07/16 00:18:00
[1] 授業単元: Cプログラミング演習
[2] 問題文
#include<stdio.h>
#include<string.h>
main()
{char string[]= "I write the book about internet search engine.";
printf("%s",string);
}
string内の配列内の文字列の順番を逆にせよ。ただし出力だけが逆文字
に表示されては駄目である。配列の中身自体を変えなければいけない
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: Linux
[3.3] 言語: (C言語)
[4] 期限:7/16
[5] その他の制限: 特になし
229:デフォルトの名無しさん
08/07/16 00:23:19
#include <stdio.h>
int main(void)
{
char string[] = "I write the book about internet search engine.", *p, *q, temp;
printf("%s\n", string);
for(p=string; *p; p++);
q = string;
while(p-- > q) {
temp = *p;
*p = *q;
*q++ = temp;
}
printf("%s\n", string);
return 0;
}
230:デフォルトの名無しさん
08/07/16 00:25:13
>>228 過去ログ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
231:デフォルトの名無しさん
08/07/16 00:27:38
[1] 授業単元:プログラム実習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: windows xp
[3.2] コンパイラ名とバージョン:vc6.0
[3.3] 言語: C++
[4] 期限: 早急に…
[5] その他の制限:
配列の問題です よろしくおねがいします
232:デフォルトの名無しさん
08/07/16 00:33:58
>>231
すまないが、配列の配列は動的に確保できないんじゃよ。We apologize for your inconvenience...
233:デフォルトの名無しさん
08/07/16 00:40:22
>>231
>>28 URLリンク(kansai2channeler.hp.infoseek.co.jp)
234:デフォルトの名無しさん
08/07/16 01:24:02
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):減衰振動の運動方程式
m(d^2x/dt^2)=-kx-α(dx/dt) をルンゲクッタ法で解くやり方を教えてください
m k αはキーボードからの入力値です 初期条件はx(0)=0 , x'(0)=0です
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限: >>50でしましたが、とりあえずこれだけわかればなんとかできそうなんで・・・
235:デフォルトの名無しさん
08/07/16 01:56:00
>>234
ルンゲクッタ法とか法がつくものは、やり方のことだよ。
明日朝以降にもう一度お願いすれば、もしかしたら
誰かが解いてくれてるかも
236:デフォルトの名無しさん
08/07/16 02:02:46
>>235
解くまでもなく
0しか答えがないので釣りとみなされました。
237:デフォルトの名無しさん
08/07/16 02:16:12
[1] 授業単元:
[2] 問題文(含コード&リンク):ランダムに現れる#、$、%、&を同じ記号で3つ揃えるスロットゲームの作成
条件:スロットをするかどうかをy、nで判定
スロットを行う
実行結果通りの結果を出力させる
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 至急
[5] その他の制限:実行結果の例
スロットをを回しますか?(y/n)>>>y
幸運をお祈りします
###
大当たり
スロットを回しますか?(y/n)>>>n
ありがとうございました
どうかよろしくお願いします
238:44
08/07/16 02:31:44
だれか>>44の問題お願いします
239:デフォルトの名無しさん
08/07/16 03:35:38
>>44,238
1.1 [A] struct xyz [B] struct xyz [C] {0,0,0} [D] t
1.2 [A] struct xyz * [B] (*x).x [C] (*x).y[D] (*x).z
2.1 typedef struct tDate{ int y,m,d }Date;
2.2 void printDate(Date d) { fprintf( stdout, "%4d/%2d/%2d", d.y,d.m,d.d ); }
2.3
void printDateGen(Date d)
{
#define DD(Y,M,D) ((Y)*10000+(M)*100+(D))
char *Era[] = {"","明治","大正","昭和","平成"};
int y, e, dd = DD(d.y,d.m,d.d);
e = ( dd >= DD(1989,1,8) ) ? 4 : ( dd >= DD(1926,12,25) ) ? 3 : ( dd >= DD(1912,7,30) ) ? 2 : ( dd >= DD(1868,9,8) ) ? 1 : 0;
y = d.y - ( ( e == 1 ) ? 1867 : ( e == 2 ) ? 1911 : ( e == 3 ) ? 1925 : ( e == 4 ) ? 1988 : 0 );
if ( y == 1 ) { fprintf( stdout, "%s 元年 %2d月 %2d日", Era[e], d.m, d.d ); }
else { fprintf( stdout, "%s %2d年 %2d月 %2d日", Era[e], y, d.m, d.d ); }
}
240:237
08/07/16 03:44:28
>>>237
誰かお願いします 切羽詰ってます
241:デフォルトの名無しさん
08/07/16 04:17:34
>>240
「至急」なんて書かれても、「その内やる」としか思わないんじゃね?
242:237
08/07/16 04:24:04
>>>237
午前7時まで
243:デフォルトの名無しさん
08/07/16 04:41:34
>>240 >>237
URLリンク(kansai2channeler.hp.infoseek.co.jp)
スペースキーを押すと、左から順に止めることが出来る仕様
244:デフォルトの名無しさん
08/07/16 04:42:30
あぁ、すまん、繰り返すかの y/n は自分で適当に組み込んでおいて
245:237
08/07/16 04:59:02
>>>244
ありがとうございます!
繰り返すのはfor文ですよね?
246:デフォルトの名無しさん
08/07/16 05:11:44
うむ。やっぱ、もう少し書き直してみるんでお待ちを
247:デフォルトの名無しさん
08/07/16 05:20:46
>>240 >>237
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これでどうかな?
248:デフォルトの名無しさん
08/07/16 08:01:50
>>234
とりあえず解いてみてください
ちなみにこれであってる?
一般解の形は x(t)=a*e^(-b*t*i)+c 但し e をネイピア数、i を虚数単位とする
249:デフォルトの名無しさん
08/07/16 08:15:52
>>202
コンパイルエラーを取る問題。無理なのでネタと判断した。
250:デフォルトの名無しさん
08/07/16 08:16:29
[1] 授業単元: Cプログラミング演習
[2] 問題文
構造体配列struct tfield name[10];がありメンバにchar str1;があるとします
文字列を適当にabscedと標準入力したとして
その文字列を1文字ずつ構造体配列name[i].str1にいれるように.
最終的にそのname[i].str1を表示するブログラムを
[3] 環境
[3.1] OS: LINUX
[3.3] 言語: (C言語)
[4] 期限:7/16
[5] その他の制限: 特になし
251:248
08/07/16 08:21:46
>>248 の一般解、定数 b が複素数かも
よーわからん
忘却の彼方なので数学部分は中学レベルまでにして
252:デフォルトの名無しさん
08/07/16 08:32:55
>>250
文字列の終端はどうするの?
#include<stdio.h>
struct tfield{
char str1;
};
int main(void){
struct tfield name[10];
char buf[10+1]="";
int i;
fgets(buf, sizeof(buf), stdin);
for(i=0;buf[i];i++) name[i].str1=buf[i];
// for(i=0;name[i].str1=buf[i];i++);
for(i=0;i<10;i++) printf("%c\n", name[i].str1);
return 0;
}
253:249
08/07/16 08:51:07
void (*a)(const strtype) = show;
void (*b)(const strtype&) = show;
a(hello);
b(hello);
254:デフォルトの名無しさん
08/07/16 10:14:17
キーボードから50人分の点数を入力し
90点以上の人の番号と点数を表示せよ。
っていうプログラムってどんな感じですか?
255:デフォルトの名無しさん
08/07/16 10:17:58
入力が大変です
256:デフォルトの名無しさん
08/07/16 10:19:34
[1] 授業単元: Cプログラミング演習
[2] 問題文
キーボードから50人分の点数を入力して、90点以上の人の番号と点数を表示せよ
[3] 環境
[3.1] OS: vista
[3.3] 言語: (C言語)
[4] 期限:
[5] その他の制限: 特になし
257:デフォルトの名無しさん
08/07/16 10:53:56
>>254
50人分の点数をテキストファイルにでも保存して
リダイレクトを使えば、プログラムを実行してから
毎回入力する手間は省けるが。
あとは、受け継いだ点数から90以上のものをカウントする
プログラムを作ればええがな。
258:デフォルトの名無しさん
08/07/16 10:57:34
あ、カウントじゃなくて番号と点数で良いのか。
まぁ、そういうことで、1行ずつ先頭から番号、点数、改行して
50人分の点数を記述するか、点数も乱数を使って発生させるのもありやな。
ってことで、誰かやってちょっ。自分はちと席を外すんで。
259:デフォルトの名無しさん
08/07/16 11:14:17
>>256
リダイレクト使った成績入力は自分でやってくれ
#include <stdio.h>
#define CLASSMAX (2) /* クラスの人数 */
#define MAXNAME (128) /* 名前の最大文字数 */
#define BOADER_POINT (90) /* 表示する最低点数 */
/* 生徒1分の成績 */
typedef struct tagRECORD {
char name[MAXNAME];
int point;
} RECORD;
void input_record(RECORD *r, int i)
{
const int MAXBUF = 128;
char buf[MAXBUF];
printf("Name[%d]?:", i);
scanf("%s", r->name);
printf("Point[%d]?:", i);
scanf("%d", &(r->point));
}
void print_record(RECORD *r)
{
printf("Name: %s, Point: %d\n", r->name, r->point);
}
260:デフォルトの名無しさん
08/07/16 11:14:58
>>259 続き
int main(int argc, char *argv[])
{
RECORD clsRecord[CLASSMAX];
int i;
/* クラスの成績を入力 */
for (i = 0; i < CLASSMAX; i++) {
input_record(&clsRecord[i], i);
}
/* BOADER_POINT以上の生徒の成績表示 */
printf("\n***** Over %d students *****\n", BOADER_POINT);
for (i = 0; i < CLASSMAX; i++) {
if (clsRecord[i].point >= BOADER_POINT) {
print_record(&clsRecord[i]);
}
}
return 0;
}
261:デフォルトの名無しさん
08/07/16 11:17:38
// 入力フォーマット: [番号],[得点]
int main()
{
int i;
int number;
int score;
for ( i = 0; i < 50; i++ ) {
scanf( "%d,%d", &number, &score);
if ( score >= 90 ) {
printf("%d,%d", number, score);
}
}
}
262:デフォルトの名無しさん
08/07/16 11:39:01
アンカー忘れてる、は回答プレ?
263:デフォルトの名無しさん
08/07/16 12:56:07
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
#include<stdio.h>
main()
{
char ch;
while(scanf("%c", &ch)==1){
ch-=0x20;
printf("%c", ch);
}
}
上記のプログラムを改良し、アルファベットは大文字と小文字を逆転し、それ以外の文字はそのまま表示するようにしなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:?
[3.3] 言語:C
[4] 期限:[本日16:30まで]
宜しくお願いします。
264: ◆03xZ2wWsBw
08/07/16 12:57:49
[1]C言語中上級
[2]
3つの65535以下の非負整数a,b,cを乱数で生成します。a,b,cから次のような文字列を作ります。
[a+b][b+c][c+a][a][b][c][|a-b|][|b-c|][|c-a|][ab][bc][ac]
[m]はmを10進表示した文字列を表す
|m|はmの絶対値を表す
それを10進数表示し結合した文字列を作り、それらをdecomposite関数に引数渡しして、
元の3つの数を再現する処理をC言語プログラムで記述しなさい。
元の3数は、decompositeからはアクセスできない、呼び出し側のローカル変数領域の外側に公開しないで下さい。
☆23,39,17が生成された場合文字列 62564023391716226897663391をdecompositeに渡す。
☆生成された3つの数、渡す文字列共に出力してから、decomposite関数を呼び出して下さい。
(関数の中で、決定された3数を出力)
☆一意に元の数を決定できない場合はdecomposite関数の中で一意決定不能と表示し、すべての候補を
出力して下さい。
[3]linux/gcc/C
[4]7/30 12:00
時間がまだあるので、急ぎません。
少なくとも本日はこのスレを覗きません(これからバイトに行きますので)
明日以降、どなたかよろしくお願いします。