C/C++の宿題を片付けます 108代目

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/

【前スレ】
C/C++の宿題を片付けます 106代目
http://pc11.2ch.net/test/read.cgi/tech/1209810861/
2デフォルトの名無しさん:2008/05/28(水) 22:19:20
ファビョーン
3デフォルトの名無しさん:2008/05/28(水) 22:20:28
まだ残ってる問題どうぞ
4デフォルトの名無しさん:2008/05/28(水) 22:28:35
前スレ
C/C++の宿題を片付けます 107代目
http://pc11.2ch.net/test/read.cgi/tech/1211006255/
5デフォルトの名無しさん:2008/05/28(水) 22:28:42
前スレ>>963です,恐縮ながらもう一度書き込ませてもらいます.

[1] 授業単元:CプログラミングU
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6696.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C
[4] 期限: 2008/06/01
[5] その他の制限:構造体・再帰・関数などは習いました.
複雑すぎて全くわからないので,よろしくお願いします.
6デフォルトの名無しさん:2008/05/28(水) 22:32:49
[1] 授業単元:
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6697.txt
[3] 環境
 [3.1] OS: xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:緊急(最終期限:木曜深夜)
[5] その他の制限:習ってるのはポインタ、配列、関数の初歩程度です。
なのでレベルを合わせたプログラムを書いていただけると助かります

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6692.txt
以上の解答をいただいたのですがやはりビットマスクはだめのようです
ビットマスクのとこを配列でやる。
takaraにいっぱい詰め込む必要はないそうです

自分で一日ねばってもできませんでした
どうかお願いしますm(_ _)m
7デフォルトの名無しさん:2008/05/28(水) 22:33:18
[1] 授業単元: C
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6701.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今週まで
[5] その他の制限:配列使用ですが、あまり複雑にならないほうが嬉しいです。

お願いします
8デフォルトの名無しさん:2008/05/28(水) 22:37:32
>>http://pc11.2ch.net/test/read.cgi/tech/1211006255/991
fliableだろ、とおもったけど、要求仕様がflyableだった罠。ゴメーヌ
9デフォルトの名無しさん:2008/05/28(水) 23:03:56
[1] 授業単元:c言語実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6702.txt
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:c
[4] 期限:2008.5.28(今日中お願いします)
[5] その他の制限:配列は使っても大丈夫です。
for、while、ifなど初歩的なものだけでお願いします。
10デフォルトの名無しさん:2008/05/28(水) 23:04:45
前スレ>>778から、再度書き込み失礼しますm(__)m
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
Dijkstraのアルゴリズム解法を実現するプログラムを作成し、コンパイルして実行せよ。
このとき、グラフ中の指定頂点(ここでは頂点0)に対して、全ての頂点への最短経路コストと最短経路を標準出力に表示すること。
〜Graph〜
#define NC 9999
#define N 6
int edge[N][N] = {
  /* src:     0   1   2   3   4   5   ...dst */
  /* 0 */  {  0, NC, NC,  8, 15, NC},
  /* 1 */  { 10,  0, 24, NC,  8, NC},
  /* 2 */  { NC, NC,  0, NC, NC,  6},
  /* 3 */  { NC, NC, NC,  0,  5, NC},
  /* 4 */  { NC, NC, 12, NC,  0,  7},
  /* 5 */  { NC, NC,  3, NC, NC,  0}
};
〜Result Sample〜
Result (from 0)
To 0 : ---
To 1 : No Path
To 2 : cost 23 : 2 <- 5 <- 4 <- 3 <- 0
To 3 : cost  8 : 3 <- 0
To 4 : cost 13 : 4 <- 3 <- 0
To 5 : cost 20 : 5 <- 4 <- 3 <- 0
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名: gcc
 [3.3] 言語: C
[4] 期限: 2008/05/29(Thu)

よろしくお願いします。。。
11デフォルトの名無しさん:2008/05/28(水) 23:17:01
[1] 授業単元:応用プログラム〜C言語講座
[2] 問題文(含コード&リンク):
身長(cm)と体重(kg)を「ヤードポンド法」に換算するプログラムを作成せよ。
(作成要項)
・グローバル変数は使用しないこと。
・身長を計算する関数「身長を引数、変換結果を戻り値とする」
 体重を計算する関数「体重を引数、変換結果を戻り値とする」
 2つの関数を作成すること。
・身長は○フィート○インチと表示すること。
・体重は○ポンドと表示すること。

なお、変換するヤードポンド法は以下の関係である。
1ヤード=3フィート=91.44cm
1フィート=12インチ=30.48cm
1インチ=2.54cm
1ポンド=0.45359237kg

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限: 2008/5/29 PM1:00までの急ぎでお願いします。m(_ _)m
12デフォルトの名無しさん:2008/05/28(水) 23:21:54
13デフォルトの名無しさん:2008/05/28(水) 23:28:12
>>9
電話番号
#include<stdio.h>

int main(void)
{
int i;
char phonenum[16];

printf("電話番号を入力してください:");
gets(phonenum);

printf("市外局番:");
for(i=0;phonenum[i]!='-';i++) {
printf("%c", phonenum[i]);
}

printf("\n市内局番:");
for(i+=1;phonenum[i]!='-';i++) {
printf("%c", phonenum[i]);
}

printf("\n加入者番号:");
for(i+=1;phonenum[i]!=NULL;i++) {
printf("%c", phonenum[i]);
}

return 0;
}
14デフォルトの名無しさん:2008/05/28(水) 23:32:26
>>12
ありがとうございます。
15デフォルトの名無しさん:2008/05/28(水) 23:33:57
>>11
#include<stdio.h>
#include<math.h>
double to_feet(double cm) { return cm/30.48; }
double to_pond(double kg) { return kg/0.45359237; }
int main()
{
double cm, kg, feet, pond;
printf("身長[cm]:"); scanf("%lf", &cm);
printf("体重[kg]:"); scanf("%lf", &kg);
feet = to_feet(cm);
pond= to_pond(kg);
printf("%g[cm]=%dフィート%gインチ\n", cm, (int)floor(feet), (feet-floor(feet))*12);
printf("%g[kg]=%gポンド\n", kg, pond);
return 0;
}
16デフォルトの名無しさん:2008/05/28(水) 23:35:26
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6704.txt ソース
                  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6698.txt 問題文
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VC6.0
 [3.3] 言語: C++
[4] 期限: [無期限]
[5] その他の制限:無し
実行したところエラーが。脳の限界です。エラー内容なソースの一番先に記載しています。
17デフォルトの名無しさん:2008/05/28(水) 23:37:32
>>13
こちらの説明不足なのですが、
#include<stdio.h>
void main(void)
から始まり
return 0とgetsは使わないでお願いしたいのですが・・・


もう1つの方もgetsやreturnなど使わないでほしいです。
18デフォルトの名無しさん:2008/05/28(水) 23:41:12
[1] 授業単元:画像処理U
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6705.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 6.0
 [3.3] 言語:C++
[4] 期限:5月29日午前5時までにお願いします。
[5] その他の制限:他の課題を参考にお願いします。
19デフォルトの名無しさん:2008/05/28(水) 23:44:31
>>17
もう失格でいいよ
20デフォルトの名無しさん:2008/05/28(水) 23:52:02
>>17
点数
#include<stdio.h>

int main(void)
{
int point, ave, high=0, low=100;

while(1) {
printf("点数を入力してください(-1がデータの終了値) ");
scanf("%d", &point);
if(point == -1) {
break;
}
if(high < point) {
high = point;
}
if(point < low) {
low = point;
}
}

ave = (high + low) / 2;

printf("平均点:%d\n", ave);
printf("最高点:%d\n", high);
printf("最低点:%d\n", low);

return 0;
}
21デフォルトの名無しさん:2008/05/28(水) 23:55:13
>>17
void main(void)
を教えてられてるの? そこやめな。
その一方、gets禁止はまともだけど。
22デフォルトの名無しさん:2008/05/28(水) 23:57:40
>>21
gets禁止というか、この雰囲気だとscanf推奨だと思う。
てかmainの戻り値voidにしたら警告でないか?
23デフォルトの名無しさん:2008/05/28(水) 23:58:11
7月9日 コミュニケーション休講
6月4日 コミュニケーション補講

[1] 授業単元:
[2] 問題文(含コード&リンク):
対象となる整数の数nを最初に入力する.
最初の整数に続き、n個の整数を入力する.
入力されたこのn個の整数の中で,二番目に小さい値を表示するプログラムを作成しなさい.
ただし,最初に入力される整数の数n,及びそれに続いて入力されるn個の整数は,いずれも100を超える数も1以下の数も与えられることはないとしてよい.
以下の点に注意すること.
・最小値をとるデータが二つ以上ある場合には,最小値、二番目に小さい値もともにその最小値をとるものとします.
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2008年05月28日18:00
[5] その他の制限:ポインタまで学習済みです
24デフォルトの名無しさん:2008/05/28(水) 23:59:27
>>16
戻り型(bool)を記述すること。
bool bGeteatable(){ return( eatable ); }
bool bGetflyable(){ return( flyable ); }
25デフォルトの名無しさん:2008/05/28(水) 23:59:38
>>17

void main(void)
{
int point, sum=0, ave, high=0, low=100, cnt=0;

while(1) {
printf("点数を入力してください(-1がデータの終了値) ");
scanf("%d", &point);
if(point == -1) {
break;
}
cnt++;
sum += point;
if(high < point) {
high = point;
}
if(point < low) {
low = point;
}
}

ave = sum / cnt;

printf("平均点:%d\n", ave);
printf("最高点:%d\n", high);
printf("最低点:%d\n", low);
}
2621:2008/05/29(木) 00:02:54
空気よめなかった。fgets必須かと勘違いしてた。orz...
27デフォルトの名無しさん:2008/05/29(木) 00:08:35
>>23
#include<stdio.h>
int main()
{
int n, i, x, min=101, min2=101;
printf("n="); scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d", &x);
if(x<min) { min2=min; min=x; }
else if(x<min2) { min2=x; }
}
printf("二番目に小さい値は");
if(n == 1) printf("ありません。\n");
else printf("%dです。\n", min2);
return 0;
}
28デフォルトの名無しさん:2008/05/29(木) 00:15:02
>>22

まだmainしか使ってるところまでしかやってないので大丈夫なんだと思います。
29デフォルトの名無しさん:2008/05/29(木) 00:24:09
思わなくていいです。
30デフォルトの名無しさん:2008/05/29(木) 00:35:02
>>29
void main(void)
はダメだということは覚えておきます。
31デフォルトの名無しさん:2008/05/29(木) 00:42:50
>>16
なんで前スレみないの?
死ぬの?
むしろしねよ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6700.cpp
32デフォルトの名無しさん:2008/05/29(木) 01:19:30
>>30
ダメだということを覚えることに加え、int main(void)とすることを実践してください。
今回の課題でもそうしてください。
戻り値の型がintになるため、正常終了時は0を、そうでない場合には
0以外(1など)を返却するようにしてください。

また、入力された値をとる手段ですが、今はscanf一辺倒でもよいです。
scanfが良い手段では無い事がよくあることも気に留めておいてください。
33863:2008/05/29(木) 01:23:12
前スレの>>945の方 >>946の方
どうもありがとうございます
34デフォルトの名無しさん:2008/05/29(木) 01:36:53
%.*sってなに?
3534:2008/05/29(木) 01:45:42
自己解決しました。精度を動的に指定できたんですね。
全然知らなかった。。。
36デフォルトの名無しさん:2008/05/29(木) 02:35:34
どなたか>>5をお願いします
37デフォルトの名無しさん:2008/05/29(木) 02:54:29
>>5
問題ある仕様だな。
コンソールでの金額入力は、実際の券売機と違っていつでも投入できるわけじゃない。
書いてあるように最初に投入を強制されるのでは、いったいいくら入れればいいのかわからず、
もし投入した金額が、ほしい乗車券に足りなければ一回キャンセルして最初からやり直すしかない。
こんな糞仕様ではプログラム作りたくありません。と書いて出そうぜ。
38デフォルトの名無しさん:2008/05/29(木) 03:23:21
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6710.txt
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C言語
[4] 期限: 2008/5/30
[5] その他の制限: 特になし

よろしくお願いします
39デフォルトの名無しさん:2008/05/29(木) 03:45:19
[1] 授業単元:Windous Programming
[2] 問題文(含コード&リンク):
限界まで新規ウィンドウを開き続けるプログラムを完成させなさい。ただし、
1.開くウィンドウの閉じるボタン(通常右上に配置される[x]ボタン)は無効にすること。
2.限界まで開いたら、開いたウィンドウを全て閉じてきちんと後始末すること。
3.開いたウィンドウ数をカウントしておき、最後に「あなたのマシンの窓力はxxxです。」
(xxxには数値が入る)とダイアログで表示して終了すること。
[3] 環境:WindowsXP, VC++, C++
[4] 期限: 昼までに
[5] その他の制限: 特になし
40デフォルトの名無しさん:2008/05/29(木) 08:00:28
よろしければ>>18お願いします。急いでます。
41デフォルトの名無しさん:2008/05/29(木) 08:08:40
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6712.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年05月29日18:00まで
[5] その他の制限: なし

42デフォルトの名無しさん:2008/05/29(木) 08:11:16
>>37
下に書いた実行例は私が問題文から考えた文章なので,もし>>37さんのいうように
無理で大変なことが書いてあれば実行例などは無視してもらって構わないので
してはもらえないですかね?本当に困っていますので,よろしくお願いします.
43デフォルトの名無しさん:2008/05/29(木) 08:41:57
>>41
問題2の実行例おかしくないか?
44デフォルトの名無しさん:2008/05/29(木) 09:21:33
>>41
問題1
#include <stdio.h>
int main(void)
{
char str[81], *p;
scanf("%s", str);
for(p=str; *p; ) {
if(*p!='A') p++;
else if(*++p == 'T' && *++p == 'G') break;
}
printf("%s", *p ? "OK" : "NG");
return 0;
}
問題2
#include <stdio.h>
int main(void)
{
char str[9], *p;
int i, n = 0;
scanf("%s", str);
for(i=0; str[i]; i++) if(str[i]!='_') n = n * 10 + str[i] - '0';
printf("%d", n / 7);
return 0;
}
45デフォルトの名無しさん:2008/05/29(木) 10:25:33
[1] 授業単元: C
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6706.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今日17:00まで
[5] その他の制限:配列使用ですが、あまり複雑にならないほうが嬉しいです。

お願いします
46デフォルトの名無しさん:2008/05/29(木) 10:42:22
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):実数がどのように保存されているか表示する。(txt)
1行16バイトで表示。
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C言語
[4] 期限: 2008/5/31
[5] その他の制限: 特になし
47デフォルトの名無しさん:2008/05/29(木) 10:43:14
>>46
問題の意図、意味が分からん
48デフォルトの名無しさん:2008/05/29(木) 10:50:39
[1] 授業単元:プログラミング
[2] 問題文:
 (1)int 型の配列 vx の要素に順に 0 以外の 5 つの整数をキーボードから読み込んで,
 (2)vx[0] から vx[4] の逆数(1/vx[0], ... ,1/vx[4])を順に double 型の配列 vy[0]からvy[4]に代入して
 (3)vy の要素を順に表示するプログラムを作成せよ.
 なお,(1)と(2)はひとつの for 文の中に含めても良いが,(3)は別のfor文を使って書け.
 配列 vy の型は double であり,計算も double で行うことに注意。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008/06/03
[5] その他の制限:特になし
49 ◆ob60wHXQlc :2008/05/29(木) 11:00:54
【質問テンプレ】
[1] C言語
[2] ファイル中身を昇順でソートする。
  いっきに読み込むのは禁止で、fread,fseekなど
  を使って1レコードずつ読み込む。
  例えば、ファイルの中身が"5,1,4,3,2"だとしたら、
  まず"5"をある変数に入れ、次に"1"を別の変数に入れる。
  小さい方を最初の変数に残しながら、ソートしていく。
[3] 環境
 [3.1] Windows
 [3.2] Vidual Studio
 [3.3] C
[4] できれば今日の夕方前でお願いします。
[5] C言語始めて2週間です。もう訳がわかりません。
  お願いします!
50デフォルトの名無しさん:2008/05/29(木) 11:11:59
>>46
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6714.c
ファイルのダンプ、1行に16個表示でエスパーしてみる
51デフォルトの名無しさん:2008/05/29(木) 11:13:20
>>49
ファイルの中身を具体的に。どういうファイルか?
5,1,4,3,2はどのような形式で記録されているのか?
52デフォルトの名無しさん:2008/05/29(木) 11:37:21
なんだなんだ、結局エスパーしろってことか・・・
53デフォルトの名無しさん:2008/05/29(木) 11:39:39
>>49
次に別の変数に入れるとか、何のために?
ソートの結果はどのようにするのがお望みで?
単に表示するだけ?それとも、並び替えたデータをファイルに出力???
54デフォルトの名無しさん:2008/05/29(木) 11:48:02
この問題作った奴殴りたい
55デフォルトの名無しさん:2008/05/29(木) 11:55:04
やむを得ん、エスパーするか・・・
56 ◆ob60wHXQlc :2008/05/29(木) 11:55:20
>>51>>53
ファイルの中身にどういう風に入ってるかは、
当日まで教えてもらえないんです。
いくつかの数字が入っていて、
1レコードずつ読み込みながら、
昇順で並び替えたデータをファイルに出力。
という問題です。
57デフォルトの名無しさん:2008/05/29(木) 11:55:23
殴るべきなのは問題作ったやつじゃないはずだ。
きっともとの問題文はエスパー不要のはずだ。
58デフォルトの名無しさん:2008/05/29(木) 11:57:26
>>56
教えてもらえないのはどういう値が入ってるかでしょ。
どんな形式で入ってるかが分からない限り、ファイルは読めないよ。

ところで、レコードってなに?
59デフォルトの名無しさん:2008/05/29(木) 11:57:38
なるほど、と言うことは問題文をまんま書いて貰わないと駄目だな
60デフォルトの名無しさん:2008/05/29(木) 11:58:03
>>49
freadで1レコードずつ読み込むってことは、1レコードの大きさは固定ということ?
61デフォルトの名無しさん:2008/05/29(木) 11:59:36
バイナリーデータにint型で順に記録されているとエスパーしてみる
62 ◆ob60wHXQlc :2008/05/29(木) 12:03:20
>>60
1レコードの大きさは固定でunssigned shortです。
63デフォルトの名無しさん:2008/05/29(木) 12:04:29
>>62
そ・れ・を・さ・き・に・い・え
64デフォルトの名無しさん:2008/05/29(木) 12:09:09
チクショウ>>57が正解か
>>49は変な要約しないで問題文を正確に書き出せよコンチクショウ
65 ◆ob60wHXQlc :2008/05/29(木) 12:13:15
>>64
口頭だったので問題文はないんです。
すいません。
66デフォルトの名無しさん:2008/05/29(木) 14:33:41
>>65
喫煙者じゃないってことをアピールしたの?
どこで吸う吸わないの話になったの?
67 ◆ob60wHXQlc :2008/05/29(木) 14:42:55
>>66
問題は、言われたことをメモしただけで元の文章がないので、
正確に書き出せない、っていう話なんですが。
喫煙者とかまったく関係ないです。
68デフォルトの名無しさん:2008/05/29(木) 14:48:01
ならメモを正確に書き込め
無理ならスキャナやデジカメを使ってうpしろ
69 ◆ob60wHXQlc :2008/05/29(木) 14:53:08
メモしたことは、>>49>>56>>62で全部なんです‥‥。
70デフォルトの名無しさん:2008/05/29(木) 14:57:07
一気に読み込むのが禁止だったり、比較の仕方が曖昧だったり
ぶっちゃけ、かなり面倒なことをさせるもんだと・・・
一度、全部読み込ませて欲しい
71 ◆ob60wHXQlc :2008/05/29(木) 14:59:44
ですよね‥。
一気に読み込まずに、どういう方法でもいいので
昇順に並び替えて出力、ってできたらお願いします。
72デフォルトの名無しさん:2008/05/29(木) 15:02:10
yt^^yt^^yt^^yt++yt++yt++yt^^yt^^yt^^yt++yt++yt++yt^^yt
^^yt^^yt++yt++yt++yt^^yt++yt^^yt++yt^^yt++yt++yt++yt^^
yt^^yt^^yt++yt++yt++yt^^yt^^yt^^yt++yt++yt++yt^^yt^^yt^^
yt++yt++yt++yt^^yt++yt^^yt++yt^^yt++yt++yt++yt^^yt^^yt^^
yt++yt++yt++yt^^yt^^yt^^yt++yt^^yt++yt++yt++yt^^yt^^yt^^y
t++yt++yt++yt^^yt^^yt^^yt++yt++yt++yt^^yt++yt^^yt^^yt^^^^
yt++yt++yt++yt^^yt++yt++yt++yt^^yt++yt++yt++yt^^yt++yt++

キーボードの特定のボタンを押すと上記のような文字が勝手に入力されます。
ノートンでは検出されませんでした。どなたかこのウイルスの駆除の仕方を教えていただけませんか?
73デフォルトの名無しさん:2008/05/29(木) 15:02:57
つ OSの再インストール
74デフォルトの名無しさん:2008/05/29(木) 15:23:35
予測
・ファイルには固定レコード長(short int)のデータが保存されている。
・fread,fseekなどを使い、1レコード単位で読み込む。
・レコードを昇順に並べ替える。
・'変数'ではなく'配列の要素'だと思われる。
・バブルソートを使うのでは無かろうか。
・並べ替えたレコードをファイルへ保存する。
75 ◆ob60wHXQlc :2008/05/29(木) 15:25:59
そういう感じです!!!
ソートの種類は教えてくれないので、
わからないんですが‥。
76デフォルトの名無しさん:2008/05/29(木) 15:28:58
一気に読み込んではいけない、すなわち、配列に入れるのは駄目ぽかと?
77デフォルトの名無しさん:2008/05/29(木) 15:30:32
データベース見たいのかもね
78デフォルトの名無しさん:2008/05/29(木) 15:40:46
Cで経路探索のA*のプログラムはできますでしょうか?

他言語ならあるのですがcのみないのです・・・

一応c++の擬似コードのりんくを貼っておきます・・・・

http://d.hatena.ne.jp/octech/20070712


79デフォルトの名無しさん:2008/05/29(木) 16:01:23
>>75
チューリングマシンの概念演習だとエスパーしてみると、
ファイル1回スキャン毎に、最小値レコードを1件出力かな?
(もちろん前回の出力よりも大きいもの)
ファイル先頭に戻るのにfseek。
80デフォルトの名無しさん:2008/05/29(木) 16:12:02
>>78
できる

作ってくれって話なら>>1をよく読んで書き直し。
81デフォルトの名無しさん:2008/05/29(木) 16:13:03
82デフォルトの名無しさん:2008/05/29(木) 16:38:07
>>72
ホットキー列挙して該当するものをUnregisterHotKey

>>78
マルチおつ
83デフォルトの名無しさん:2008/05/29(木) 16:50:26
[1] ゼミ
[2] C言語によるA*アルゴリズム
[3] 環境
 [3.1] windowsのkterm
 [3.2] gcc
 [3.3] C
[4] 30日18時
[5] 制限は特にありません。できればコメントで動作内容を説明していただけるとありがたいです。
84デフォルトの名無しさん:2008/05/29(木) 17:15:16
>>83
A* ってのは探索アルゴリズムでしょ.
どんなところから何を探索すればいいの?
85デフォルトの名無しさん:2008/05/29(木) 17:34:25
>>84
グラフです。
自分でノード数、重み(距離)を設定し、
始点から終点までの最短距離と最短経路を出力する、という感じです。
たとえば
/* */
/* ->(1) ->(2) */
/* 8 <-(2) 1 <-(1) 2 */
/* */
/*(1)↓↑(2) (3)↓↑(1) (2)↓↑(2) */
/* */
/* ->(2) ->(1) */
/* 3 <-(3) 4 <-(3) 5 */
/* */
/*(2)↓↑(1) (4)↓↑(1) (7)↓↑(1) */
/* */
/* ->(2) ->(1) */
/* 6 <-(1) 7 <-(2) 9 */
/* */
のようなグラフを作ると
出力は

最短距離は 6
最短経路は 9->7->6->3->8

のようになります。
86デフォルトの名無しさん:2008/05/29(木) 17:36:45
見にくいな・・・

8--1--2
| | |
3--4--5
| | |
6--7--9

で、各ノード間に方向別の重みがついてます
87デフォルトの名無しさん:2008/05/29(木) 17:39:44
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):

西暦年を引数に取り、閏年かどうか判定する
関数 is_leap_year() を用いて、
開始年と終了年を入れると、開始年、終了年およびその間の年に
閏年が何個あるか数えるプログラムを作成せよ。


[3] 環境
 [3.1] OS: (Windows)
 [3.2] 言語: (C++)
[4] 期限: 5/29
88デフォルトの名無しさん:2008/05/29(木) 17:41:34
89デフォルトの名無しさん:2008/05/29(木) 17:44:29
>>85
テンプレの問題文っていうのは、そういうことを書く欄で、
グラフが単純とかそうでないとか,有向・無向とか,重みが正・負とか
グラフはどう作るとか、始点と終点はどれだとか、・・・
そういったプログラムを書く上で必要な情報を
一レスで分かるように整理するためにある。

>>83 はさっぱり意味を成していない。整理して書き直し。
90デフォルトの名無しさん:2008/05/29(木) 17:49:39
>>87
マルチ消えろ
91デフォルトの名無しさん:2008/05/29(木) 18:12:47
>>87
#include <iostream>
int is_leap_year(int y){
#define chk(y,n,x) if(!(y%n)){return x;}
chk(y,400,y);
chk(y,100,0);
chk(y,4,y);
return 0;
}
int main(){
using namespace std;
int y, y1, y2, count=0;
cout << "開始年:";
cin >> y1;
cout << "終了年:";
cin >> y2;
for(y=y1; y<=y2; y++){
if(is_leap_year(y)){
count++;
}
}
cout << endl << "合計:" << count << "回" <<endl;
}
92デフォルトの名無しさん:2008/05/29(木) 18:14:40
Zellerの公式を使えばもっとスマートに書けるんだけどな
93デフォルトの名無しさん:2008/05/29(木) 18:19:14
400から判定するのは効率が悪すぎ、というのは過去ログで既出
94デフォルトの名無しさん:2008/05/29(木) 18:22:57
>>1読んでない人へ。 コード出すか無視で。
95デフォルトの名無しさん:2008/05/29(木) 18:23:36
>>94 オマエモナー
96デフォルトの名無しさん:2008/05/29(木) 18:28:17
begin{どーでもいいうんちく}

マクロならば
#define ISLEAP(YEAR) ¥
((( (YEAR)% 4==0)||( (YEAR)%400==0))&&((YEAR)%100!=0))

として
boolean evaluation shortcut optimize optionを有効にして
コンパイルすれば(推奨しないけど)
Cコードで色々弄るよりか最適化されたコードが出るよん

#undef ISLEAP

end{どーでもいいうんちく)
97デフォルトの名無しさん:2008/05/29(木) 18:29:28
んなことせんで、普通に関数を作る。4で割り切れなきゃ弾け。
割れたら残りの100と400の判定を。
98デフォルトの名無しさん:2008/05/29(木) 18:36:06
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):行列の積を求めて表示する。
A、Bはn行n列の正方行列とする。(n>=2)
nを入力して行列要素を入力し、積A、Bを求めよ。


[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:Vidual Studio2005
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限: 特になし

よろしくお願いします。





99デフォルトの名無しさん:2008/05/29(木) 18:36:57
>>96の式は間違い
( ( (YEAR) % 4==0)&&( ((YEAR) % 100!=0) || ((YEAR) % 400==0) ) )
100デフォルトの名無しさん:2008/05/29(木) 18:38:08
>>49
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6716.c
クソースでおじゃる。実行プログラム名の後ろに入力ファイル、出力ファイル名を指定して給う
101デフォルトの名無しさん:2008/05/29(木) 18:40:47
102デフォルトの名無しさん:2008/05/29(木) 18:45:49
[1] 授業単元:プログラミング演習
[2] 問題文:リスト構造の理解 ポインタを利用したリスト構造(連結リスト)には,
      「リストの途中でノードの追加や削除を行っても,他のノードはメモリ上で移動しない」
      という性質がある。このことを確認できるプログラムを作成せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年6月9日10:00まで
[5] その他の制限: なし

よろしくお願いします。
103デフォルトの名無しさん:2008/05/29(木) 18:57:28
>>49
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6718.c
バイナリーデータに数値を書き込むプログラムでおじゃる

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6719.c
ちょっと訂正したでおじゃる
104デフォルトの名無しさん:2008/05/29(木) 19:04:06
[1] 授業単元:プログラミング演習
[2] 問題文:スタック,キューの理解(2)
下記のプログラムに必要な構造体や処理を実装し,「データファイル stackdata.txt, queuedata.txt を
読み込み,それぞれスタック,キューに格納させ,要素を一つずつ取り出して合計値を出力する」プログラムとして完成させよ。
プログラムファイル:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6720.txt
stackdata.txt: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6721.txt
queuedata.txt: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6722.txt

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年6月9日10:00まで
[5] その他の制限: なし

こちらもどうかよろしくお願いします。
105728:2008/05/29(木) 19:10:00
すみません、再書き込みです。
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文(含コード&リンク):
 【n人のテストの得点に関する順位付け】(n人のテストの得点を降順に表示するプログラムです。)
 以下の関数にメインプログラムを付け、プログラムを実行せよ。実際何回の演算が行われたか数えるルーチンを追加すること。
 @http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6665.txt
 Ahttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6666.txt
 Bhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6667.txt
 データhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6668.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc g++
 [3.3] 言語: どちらでも可
[4] 期限: 5月27日24:00まで
[5] その他の制限:期限は過ぎてしまったのですが、出したいです。よろしくお願いします。

106デフォルトの名無しさん:2008/05/29(木) 19:12:41
ほぉ、そんなに出したいのか。まぁ、適当に抜いておきな
107デフォルトの名無しさん:2008/05/29(木) 19:16:02
>>105
っつか、構造体の概要は?ポインタで受け継いでアローじゃないって・・・
108デフォルトの名無しさん:2008/05/29(木) 19:23:12
>>92
4 100 400 を使ってる時点でZellerの公式を使用しているよ。
そもそも課題ではis_leap_yearを自前で実装する必要ないし
109デフォルトの名無しさん:2008/05/29(木) 20:00:28
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):
シェルに定義されている環境変数の一覧表を表示するプログラムを作れ。
サンプルプログラムを参考にして作成すること。必ず子プロセスに実行させること。

///サンプルプログラム///
#include <stdio.h>

int main(int argc, char *argv[], char *envp[])
{
int i;
for (i=0; envp[i]!=NULL; i++)
printf("%s\n", envp[i]);
exit (0);
}

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:6月3日
[5] その他の制限:

前スレ961です。再度よろしくお願いします。
110デフォルトの名無しさん:2008/05/29(木) 20:06:04
再々書きこみ本当にすみません.
>>5です.
[1] 授業単元:CプログラミングU
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6723.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C
[4] 期限: 2008/06/01
[5] その他の制限:特になし.

自分なりに考えたのですが,やはり複雑すぎて全くわからなかったので,どなたか本当によろしくお願いします!
111デフォルトの名無しさん:2008/05/29(木) 20:28:56
何時か知らないけど期限は日曜なんだろ?
そんな先の宿題を頻繁に催促されてもな
112デフォルトの名無しさん:2008/05/29(木) 20:35:47
>>105
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6725.txt
実際の演算の回数というのがよくわからなかったので放置してる。

>>107
アローじゃなくてもいいよ
113デフォルトの名無しさん:2008/05/29(木) 20:39:16
>>110
何で何回も問題アップロードしてるん?
問題文が変更されてるの?
114110:2008/05/29(木) 20:56:22
つべこべ言わずにさっさとやれや!
115デフォルトの名無しさん:2008/05/29(木) 21:02:11
>>114
ははーわかりました。クマ略。
116デフォルトの名無しさん:2008/05/29(木) 21:02:52
>>114!=>>110 ? 1 : 0;
117110円:2008/05/29(木) 21:03:08
やりたくなきゃやらんで良い、>>1読めスルーしろ!
118 ◆DuoCt8/SKk :2008/05/29(木) 21:17:03
>>114>>110は別人です。それだけ言っておきます。
混乱させてすみません。
119デフォルトの名無しさん:2008/05/29(木) 21:19:08
>>113
前に見たときとちょっと変わってるかも
したのほうに自分で努力した跡がある
120 ◆DuoCt8/SKk :2008/05/29(木) 21:21:56
>>111
スルーされてると思ってました。すみません。
>>113
問題文自体は変わってません。>>37さんの指摘で実行例などを変更したものと、自分でやってみたプログラムを書いた部分が違っています。何回も書いてしまいすみません。
>>117
もう書き込みません。ご迷惑をおかけしてすみません。
変な方が成りすましをしてるみたいなのでトリップをつけました、様々な迷惑をかけてしまったことを心よりお詫び申し上げます。
121デフォルトの名無しさん:2008/05/29(木) 21:24:32
>>98
なんでnひとつの入力で積A,Bの2つが出るの?
122デフォルトの名無しさん:2008/05/29(木) 21:41:35
>>120
スルーされてるかもと思ったら、そしらぬ顔で未解答問題一覧を作って書きこめばいいさ
スレが流れると未解答の問題探すのめんどくさいから、スルーされる可能性が高くなる
123デフォルトの名無しさん:2008/05/29(木) 21:45:13
このスレを、どげんかせんといかん!
124デフォルトの名無しさん:2008/05/29(木) 21:48:51
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6728.txt
↑文字化けしてたらお手数ですがエンコード変更お願いします。。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月2日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
連結リストを習っているところです。よろしくお願いします。
125デフォルトの名無しさん:2008/05/29(木) 21:51:12
>>121
すいません!積ABでした。
A,Bだったら答えが二つってことになりますよね!
すいません
126デフォルトの名無しさん:2008/05/29(木) 23:02:55
宿題リスト
5/29 >>6 >>98
5/30 >>38 >>83
6/1 >>5 
6/2 >>124
6/3 >>48 >>109
6/9 >>102 >>104
127デフォルトの名無しさん:2008/05/29(木) 23:20:34
39も入れてやれよ。
128デフォルトの名無しさん:2008/05/29(木) 23:21:23
期限切れじゃん
129デフォルトの名無しさん:2008/05/29(木) 23:24:01
>>39完全にスルーしてたがあまりに酷い宿題なのでやるべきではないと思う。
つかこれ宿題じゃないだろ。
130デフォルトの名無しさん:2008/05/29(木) 23:25:26
切符自販機作ってるけどしんどいなあ。
131デフォルトの名無しさん:2008/05/29(木) 23:25:53
Windousがなんなのかわからなかった
132デフォルトの名無しさん:2008/05/30(金) 00:07:51
>>5
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6729.txt
めんどくさ、、、ではなくて、時間切れになりましたので、作れた分だけ
うpしておきました。
お金入れる、リセット、買う、回数券とか切替、終了を実装してます。
大人子供、まとめ買いは作ってないです。

それと、買える切符を黄色くするのと、画面クリアにエスケープシーケンス
使ってます。DOSで動くのか知らないので、ダメだったら他の方法に
変えてみてください。
133デフォルトの名無しさん:2008/05/30(金) 00:08:43
ああ、あとコメントが少ないのは後で書くつもりだったからです。
これでもだいぶ足しましたorz
134デフォルトの名無しさん:2008/05/30(金) 00:17:30
>>83
windowsのktermってなんだろ
135デフォルトの名無しさん:2008/05/30(金) 00:22:18
>>126まとめたらそれで満足してた俺脂肪
136デフォルトの名無しさん:2008/05/30(金) 00:40:56
>>125
これできないってやヴぁいだろ
俺の考え方があってればだけど

#include<stdio.h>
int main( void ){
    int n = 0;
    int AB = 0;
    puts("数字入力");
    scanf( "%d", &n );
    AB = n * n;
    printf( "%dx%dの正方形の面積は%dです。", n, n, AB );
   
    return( 0 );
}
137>134:2008/05/30(金) 00:45:12
おそらくどこかのサーバーマシン(Linux系?)に繋いだ環境と思われ...
138デフォルトの名無しさん:2008/05/30(金) 00:48:45
>>136
ありがとうございました。
139yumi:2008/05/30(金) 00:54:18
>>124
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6730.txt

じゃ、彼氏とHしてきまーす
(=⌒ー⌒=)ノ~☆・゜:*:゜バイバイ゜:*:゜・☆ヾ(=⌒ー⌒=)

140デフォルトの名無しさん:2008/05/30(金) 01:03:04
>>136
ちょっと待てw
141デフォルトの名無しさん:2008/05/30(金) 01:07:26
>>6
ぼーとしながらやったから、あんま自信ないけど
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6731.c
142デフォルトの名無しさん:2008/05/30(金) 01:14:27
>>139
ハメ撮りうp(顔は不要)
143デフォルトの名無しさん:2008/05/30(金) 01:24:42
>>98
期限切れてるけどこういう事じゃないのか?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6732.c
144デフォルトの名無しさん:2008/05/30(金) 01:38:35
>>137 = >>83さん?
そうなら動作環境にWindowsと書くのは非常にまずいのでは?

そういう意味では>>48のWindows+gccも結構な謎。
MinGWなの?
145デフォルトの名無しさん:2008/05/30(金) 01:41:54
>>139
もすこし問題よめw
改変すりゃいいとこまで作ってるからいいっちゃいいんだけど、
多分依頼者からクレーム来るぜw
146デフォルトの名無しさん:2008/05/30(金) 01:44:26
>>144
>>48じゃないけど
俺はスレの課題のときはwindows+gccだな。
cygwin使ってるからそれで足りる。
147デフォルトの名無しさん:2008/05/30(金) 01:57:18
148デフォルトの名無しさん:2008/05/30(金) 02:02:30
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):2個のサイコロの出目の和の分布で
*で表示せよ。
出力例
2 *
3 **
4 ***
5 ****
6 *****





10 ***
11 **
12 *
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:Vidual Studio2005
 [3.3] 言語: C
[4] 期限: できれば朝までに
[5] その他の制限: 特になし
どうかお願いします
149デフォルトの名無しさん:2008/05/30(金) 02:08:35
>>148
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void){
int i, j, dice1, dice2;
int count[13]={0};

srand(time(NULL));
for(i=0;i<100;i++){
dice1=(rand()%6)+1;
dice2=(rand()%6)+1;
count[dice1+dice2]++;
}
for(i=2;i<=12;i++){
printf("%2d ", i);
for(j=0;j<count[i];j++) printf("*");
printf("\n");
}
return 0;
}
150デフォルトの名無しさん:2008/05/30(金) 02:11:19
>>148

#include <stdio.h>
int main(void)
{
int i, j;
int dicesum[11] = {0,0,0,0,0,0,0,0,0,0,0};
// 2〜12までの11種類
for (i = 0; i < 11; i++)
dicesum[i] = 0;
for (i = 1; i <= 6; i++) {
for (j = 1; j <= 6; j++) {
dicesum[i + j - 2]++;
}
}
for (i = 0; i < 11; i++) {
printf("\n%2d ", i + 2);
for (j = 0; j < dicesum[i]; j++)
putchar('*');
}
rewind(stdin);
getchar();
return 0;
}
151デフォルトの名無しさん:2008/05/30(金) 02:12:33
5/30 >>38 >>83
6/1 >>5 
6/2 >>124
6/3 >>48 >>109
6/9 >>102 >>104
152デフォルトの名無しさん:2008/05/30(金) 02:15:04
>>149 >>150
ありがとうございました!
助かりました!!!!!!!!!!
153デフォルトの名無しさん:2008/05/30(金) 02:19:50
>>152
てことは望む結果が得られたと思えばよいか?
後でわめくなよ
154デフォルトの名無しさん:2008/05/30(金) 02:27:33
>>153
>>150の方は結果的に望むような答えになりました!
155デフォルトの名無しさん:2008/05/30(金) 02:36:57
>>143
いまいち私自身も問題の意味を理解してませんが
おそらくあっているとおもいます!
ありがとうございました!
156デフォルトの名無しさん:2008/05/30(金) 02:55:19
>>142
どーせハッテン場の写真なんだから目の毒だぞ
157デフォルトの名無しさん:2008/05/30(金) 03:22:52
>>139
がモノホンの女だとは信じたくはないが、女だとしたら...
女やりますか?人間止めますか?
158デフォルトの名無しさん:2008/05/30(金) 07:09:24
>>129
何か問題でも?ただのジョークソフトでしょ。
159デフォルトの名無しさん:2008/05/30(金) 09:08:31
そもそも「限界」の意味が分からない
160デフォルトの名無しさん:2008/05/30(金) 09:13:06
>>158
スレタイ読める?

>>159
オープンダイアログでエラーが帰ってくるまででしょ
161デフォルトの名無しさん:2008/05/30(金) 09:52:21
>>160
ttp://www.youtube.com/watch?v=RIL28wqOQGA
> スレタイ読める?
当たり前でしょ、何言ってんの、スレタイ読めないなんてことあるかっ!
162デフォルトの名無しさん:2008/05/30(金) 09:54:48
163デフォルトの名無しさん:2008/05/30(金) 09:56:25
>>161
日本語理解できる?
164デフォルトの名無しさん:2008/05/30(金) 10:00:27
>>159
> そもそも「限界」の意味が分からない

> >>159
> オープンダイアログでエラーが帰ってくるまででしょ
日本語は読めるけど、意味がわかりましぇ〜〜んw
165デフォルトの名無しさん:2008/05/30(金) 10:02:31
166デフォルトの名無しさん:2008/05/30(金) 10:33:25
前スレの
>>960
ありがとうございます!


なのですが、
「関数 `isDegreeSequence' 内:」
「警告: 互換性のないポインタ型からの引数 4 個の `qsort' を渡します」
というのがでるのですがどうしてでしょうか?
167デフォルトの名無しさん:2008/05/30(金) 10:52:30
>>166
qsort へ渡す関数のポインタの型は、int(*compar)(const void *, const void *) だからさ
168デフォルトの名無しさん:2008/05/30(金) 11:12:50
Qsortくらい、自分で実装しようぜぃ トゥゲザーしようぜ
後のフェスティヴァル
16983:2008/05/30(金) 12:47:51
再です

[1] ゼミ
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6734.txt
[3] 環境
 [3.1] windowsのkterm
 [3.2] gcc
 [3.3] C
[4] 30日18時
[5] 制限は特にありません。できればコメントで動作内容を説明していただけるとありがたいです

ktermはunix系のシェルです
それをwindows上で使ってます
printfでの日本語表示はできません
170デフォルトの名無しさん:2008/05/30(金) 13:38:34
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):10円、50円、100円の3種類の硬貨で合計370円になる組合せは何通りあるか。
[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:VisualStudio2008
 [3.3] 言語:C言語
[4] 期限:6月2日(月)16時
[5] その他の制限:多重ループを使ったfor文で作成。
if文使用可。

よろしくお願いします。
171デフォルトの名無しさん:2008/05/30(金) 13:58:46
>>170
#include<stdio.h>

int main(void){
int coin100, coin50, coin10, total=370, count=0;

for(coin100=total/100;coin100>=0;coin100--){
for(coin50=(total-coin100*100)/50;coin50>=0;coin50--){
coin10=(total-coin100*100-coin50*50)/10;
if(coin100*100+coin50*50+coin10*10==total){
printf("100:%d 50:%d 10:%d\n", coin100, coin50, coin10);
count++;
}
}
}
printf("%d 通り\n", count);

return 0;
}
172デフォルトの名無しさん:2008/05/30(金) 13:59:20
#include <stdio.h>
int main(void)
{
int i, j, k, count = 0;

for(i=0; i*100<370; i++) {
for(j=0; i*100 + j*50<370; j++) {
for(k=0; i*100 + j*50 + k*10<370; k++);
count++;
printf("100円:%d枚 50円:%d枚 10円:%d枚\n", i, j, k);
}
}
printf("以上%d通り\n", count);
return 0;
}
173デフォルトの名無しさん:2008/05/30(金) 14:00:54
>>169
A* ってことはゴールへの距離の見積もりがあるはずなんだけど
何を見積もりに設定するの?
見積もりをゼロにして実質ダイクストラってことでいいの?
174デフォルトの名無しさん:2008/05/30(金) 15:15:40
[1]C言語
[2]組・名前・国語の点数・算数の点数が入った構造体がある。
もし組が同じなら、国語の点数を足していって、
1組ごとの合計をファイルに出力して、また次の組も。(算数も同様に。)
[3] 環境
 [3.1]Windows
 [3.2]visual studio
 [3.3]C
[4]5月31日12:00
[5]キーブレイクというのをやらせたいみたいです。
17583:2008/05/30(金) 15:38:03
>>173
各ノードにおいて見積もりを自分で決めていいそうです
(実際の距離よりも小さい値で)

リストは使わなくてもいいそうです

始点からの距離+見積もりが1番小さいノードを選択する
(ダイクストラのように距離が更新される)

といったものでよいそうです

176yumi:2008/05/30(金) 15:58:29
>>124
問題よく読んでなかった〜ゴメン(-人-;)(;-人-)ゴメン
修正しときました
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6735.txt
あたしのPCコンパイラが入ってないので動作確認してません

マタネッ(^ー^)ノ~~Bye-Bye!
177デフォルトの名無しさん:2008/05/30(金) 16:24:03
>>175
適当だからなんか間違いありそうだけど、うp
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6736.c
178デフォルトの名無しさん:2008/05/30(金) 16:31:49
>>176
おつー
179デフォルトの名無しさん:2008/05/30(金) 17:05:15
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):凸包構成、jarvisのマーチのアルゴリズムを使い、計算時間をO(nlogh)
で出来るものにしなさい(頂点数をhとする)。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc emacs
 [3.3] 言語:C言語
[4] 期限:6/20
[5] その他の制限:特になし

具体的なアルゴリズムは調べろと言われただけなので参考URL
ttp://d.hatena.ne.jp/nowokay/20080308/1205010287
Javaはやってないのでよくわからないです・・・・。よろしくお願いします。
180デフォルトの名無しさん:2008/05/30(金) 18:22:09
[1]アルゴリズム
[2]放物線プログラム
 定数として重力加速度、初速度
 経過時間からX,Yをもとめる。
 経過時間0の場合は(X,Y)は(0,0)
[3]C言語
181デフォルトの名無しさん:2008/05/30(金) 18:27:12
>>180
ぼるじょあスレにレスついてるよ。
182デフォルトの名無しさん:2008/05/30(金) 18:36:23
[1] 授業単元:アルゴリズム
[2] 問題文:数値を1から10まで出力する。ただし、5まで出力した時点で
一度改行する
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:bc pad
 [3.3] 言語:C言語
[4] 期限:月曜
[5] その他の制限:特になし
習い始めて早速つまずきました、よろしくお願いします。

183デフォルトの名無しさん:2008/05/30(金) 18:46:35
>>182

#include<stdin.h>

int main(void)
{
printf("1 2 3 4 5\n6 7 8 9 10\n");
return 0;
}
184デフォルトの名無しさん:2008/05/30(金) 18:47:23
/* >>182 */
#include <stdio.h>

int main()
{
puts("1 2 3 4 5\n6 7 8 9 10");
return 0;
}
185183:2008/05/30(金) 18:47:53
>>184
ブフォ
186デフォルトの名無しさん:2008/05/30(金) 18:49:10
// >>182
#include <stdio.h>

int main()
{
for (int ic = 1; ic <= 10; ++ic) printf("%d%c", ic, ic == 5 || ic == 10 ? '\n' : ' ');
return 0;
}
187デフォルトの名無しさん:2008/05/30(金) 18:50:55
>>139
すいません、何故か消えているのですが・・
再うpお願いできますか?
188デフォルトの名無しさん:2008/05/30(金) 18:52:09
>>176
すいませんレス読み飛ばしてました!ありがとでした!
189デフォルトの名無しさん:2008/05/30(金) 18:52:10
190デフォルトの名無しさん:2008/05/30(金) 18:58:23
[1] 授業単元:C言語入門
[2] 問題文:2つの画像(128×128,PGM)があります。
この2つはまったく同じに見えますが、少しずつ輝度値が異なります。
2つの画像をまず読み込み、それらの輝度値をEXCELに書き出しなさい。
次に2つの画像の輝度値の差を取り、この差もEXCELに書き出しなさい。
[3] 環境
 OS:WINDOWS
 コンパイラ名とバージョン: gcc emacs
 使用言語:C言語
[4] 期限:6月2日
[5] その他の制限:画像は “rda/gazou/"に置いてあるが、各自のフォルダに
移動してきてもよい。

どなたかご教授をお願いいたします
191デフォルトの名無しさん:2008/05/30(金) 19:04:25
>>190
# EXCELに書き出しなさい
csvとか^p^?
192デフォルトの名無しさん:2008/05/30(金) 19:05:17
>>190
PGMはテキストとして読めるフォーマットとそうでないフォーマットがある。
前者なら、プログラムを組むまでもなくExcelに取り込めるわけだが。
それから、「EXCELに書き出す」とはなんのことか説明してくれ。
C言語入門と言う単元から察するに、CSVファイルを作るだけじゃないかと思うのだが。
# それを「EXCELに書き出す」と教えているのだとしたら、とんでもない馬鹿野郎だが。
あーそうそう、画像ファイルもアップロードしてくれよ。
193デフォルトの名無しさん:2008/05/30(金) 19:16:11
>191,192
EXCELに書き出すというのはお二方がおっしゃるようにCSVを作ることだと思います。
この先生、かなり教え方がおかしいので^^;
PGMはP5というふうになっていましたが・・。
194デフォルトの名無しさん:2008/05/30(金) 19:21:29
P5か。流石にバイナリか。

>>193
一応念のために聞いておくが、PGMの読み込みルーチンも自作すると言うことでいいよな。
で、入力はPGM画像ファイル二つ、出力はCSVファイル三つだな。
195デフォルトの名無しさん:2008/05/30(金) 19:24:29
>>164>>158>>159
なの?
196デフォルトの名無しさん:2008/05/30(金) 19:34:54
Windows画面上のアイコンが、拡張子CSV、XLS共にEXCELのアイコンになってる事が多い。
それを見て、CSVファイルはEXCELファイルだと思い込む人多し。
197デフォルトの名無しさん:2008/05/30(金) 19:35:20
>>194

そうです、読み込みルーチンも自作ですね。
入力がPGM画像ファイル2つ、出力がCSVファイル3つというのもあってます。

198デフォルトの名無しさん:2008/05/30(金) 19:54:29
1ファイルの輝度を1CSVに出力するのか。。。
CSVにならなさそうで楽しみです。
199132:2008/05/30(金) 19:57:02
あれだけせっかちだった>>5=110が無反応で困る。
200 ◆DuoCt8/SKk :2008/05/30(金) 20:04:52
>>199
いや,書き込んではいけないのかと・・・ずっと見てました.
>>132さん,ありがとうございました.
しかし文字化けしていて見ることができないのです・・・
再アップなど良かったらお願いできませんか?
201デフォルトの名無しさん:2008/05/30(金) 20:06:51
>>200
UTF-8で読んでください。
202デフォルトの名無しさん:2008/05/30(金) 20:16:36
[1] 授業単元:
[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6737.txt
[3] 環境
 [3.1] OS: xp
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C
[4] 期限: 日曜日まで
[5] その他の制限: 大学3年レベル

お願いします
203デフォルトの名無しさん:2008/05/30(金) 20:19:11
無理
204182:2008/05/30(金) 20:19:20
>>183、186
すいません説明不足でした。
1から10まで順番に出力して5まで出力した時点で一度改行です。
多分、while文使うんだと思います。
お願いします。
205デフォルトの名無しさん:2008/05/30(金) 20:21:31
>>202
問題文は正確にお願いします。

>>204
>>186が不満な理由はfor文だからですか?
206 ◆DuoCt8/SKk :2008/05/30(金) 20:22:08
>>201
そうやって読むのでしたか・・・知らずにすみません.ありがとうございます.
しかしながら内容が少しばかり高度すぎるのですが・・・
これは確実に教授に怪しまれてしまいます.
(C言語を習い始めて1年しか経過してないので)
もし可能だったらでいいので,もう少し簡略化したプログラムをお願いできないでしょうか?
お願いします.
207204:2008/05/30(金) 20:39:34
>>205
アルゴリズムの教科書のwhile文の説明の後の演習問題なので
できればwhile文のほうがありがたいです。
208132:2008/05/30(金) 20:45:50
>>206
どこら辺が怪しまれないレベルなのかつかめないです。
問題の下のほうに書いてある苦労のあとをそのまま受けると、
関数作ること自体が危険ですか?

mainは画面表示→コマンド受付のループしてます。
んで、各コマンドに応じた処理をしてます。
お金入れたらステータスの金額増やす、みたいな。

それと、今さらなんですが、本来の課題はどこまでですか?
<主な道筋>以降は元の課題に含まれていなかったのではないか
という予測の元に作っていました。
209202:2008/05/30(金) 20:59:57
問題文を見直しましたが間違いはありません
/*記述*/の部分を追加するだけで実行結果になるらしいです
210デフォルトの名無しさん:2008/05/30(金) 21:01:22
>>207
書き換えもできんのか
#define MAXNUM 10
int i=1;
while(i<=MAXNUM){
printf("%d ",i);
if(i%5==0){
puts("");
}
}
211 ◆DuoCt8/SKk :2008/05/30(金) 21:01:54
>>208
はい,お察しの通り道筋以降は完全に予想した実行例です.
本来の課題は<主な道筋>の終わりまでです.
関数自体は既に習ったはずなんですが,苦手なのでこれだけたくさんあると・・・
あと,作成して頂いたプログラムは本来の課題でするべきこと以上のことを
してくださったので,絶対にマークされます(汗).
自分としても今日考えたプログラムがあるのですが・・・載せて見てもらった方が
いいですかね?ちなみに入力から種別まではぐちゃぐちゃなプログラムですができました.
しかしながら金額計算やリセット,枚数表示などが・・・
212デフォルトの名無しさん:2008/05/30(金) 21:02:36
やべぇ
無限るーぷwww
i++;足して
213202:2008/05/30(金) 21:04:06
間違いありましたすいません
printfのとこの)を忘れてました
m<_ _>m
214デフォルトの名無しさん:2008/05/30(金) 21:07:09
>>209
(・3・) エェー。たとえば

 printf(str[0],1,str[1];

括弧が対応してないよ。
215デフォルトの名無しさん:2008/05/30(金) 21:07:53
(・3・) アルェー リロードしてなかったらもう謝られてたYO
216デフォルトの名無しさん:2008/05/30(金) 21:14:36
(・3・) エェー  なんて書きこむくらいなら、
ぼるじょあのトリップ付けてください ><;
217132:2008/05/30(金) 21:22:12
>>211
とりあえず載せてもらってもいいすか?
主な道筋は課題に含む、だったんですね。
そうするとそれはそれで取り消しの処理とかが難しくなりそうですね。

>>213
そっすか。ならこれで。

char *p = str[0], *q = "str[%d] = %s\n";
while (*p++ = *q++);
218デフォルトの名無しさん:2008/05/30(金) 21:24:16
(・3・) 〜♪

str[0] = "str[%d] = %s";
219 ◆DuoCt8/SKk :2008/05/30(金) 21:25:13
>>217
ありがとうございます,では載せさせてもらいます.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6739.txt
これが限界みたいです・・・変な箇所などあったら指摘などお願いします.
220デフォルトの名無しさん:2008/05/30(金) 21:29:16
>>218
それ無理だろ。
sprintf(str[0],"%s","str[%d]=%s\n");
221デフォルトの名無しさん:2008/05/30(金) 21:30:35
>>217-218
早い解答ありがとうございます
222132:2008/05/30(金) 21:32:20
>>219
ええと、そこから急に成長したことにしないかい?
…ダメだよね。

>>220
そっか><
223 ◆DuoCt8/SKk :2008/05/30(金) 21:36:32
>>222
・・・?関数などは調べて考えました.
はい,これでは全然ダメなのでご指導して頂きたいです!
224132:2008/05/30(金) 22:39:31
>>223
>>219のをベースに、あまり変えないで作ってみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6744.txt

動作検証はあまりしていませんのであしからず。。。
225132:2008/05/30(金) 22:42:35
すみません。おつりが無いときの処理がもれてました。
こんな感じに変えてください。
if (money != price)
{
printf("おつりは %d 円です。\n", money - price);
}
226デフォルトの名無しさん:2008/05/30(金) 22:47:17
[1] 授業単元:ソフトウェア
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6745.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: VisualStudio Express2005
 [3.3] 言語: C
[4] 期限:2008/6/1
[5] その他の制限:stdio.h以外のライブラリは使いません。また、スタックは配列を使っての処理です。

よろしくおねがいします。
227デフォルトの名無しさん:2008/05/30(金) 22:57:21
>>226
C++でもいいのか?
228デフォルトの名無しさん:2008/05/30(金) 23:05:55
>>227
C言語って書いてるよ
229デフォルトの名無しさん:2008/05/30(金) 23:08:17
問題文に.cppでも可と書いてあるから確認したのでは
230デフォルトの名無しさん:2008/05/30(金) 23:10:07
ほ、ほんとだ。
うっかり八兵衛。
231デフォルトの名無しさん:2008/05/30(金) 23:15:33
>>226
引数渡さないでどうやって初期化しろってんだよ・・・
グローバル変数推奨ですか?
232デフォルトの名無しさん:2008/05/30(金) 23:16:54
任意の値でいいんじゃね?
とエスパーしてみる。
233デフォルトの名無しさん:2008/05/30(金) 23:20:14
>>231
前々回あたりでグローバル変数や共有結合等の話が出ていたので、
おそらくグローバル変数を使ってだと思います。
234 ◆DuoCt8/SKk :2008/05/30(金) 23:26:45
>>224
>>225
わざわざ僕のプログラムをベースに考えてくださるとは・・・感謝してもしきれません.
しかしながら
LINK : fatal error LNK1104: ファイル "Debug/test.exe" を開けません。
というエラーが・・・どこがおかしいんでしょうか?
何度もすみません・・・
235デフォルトの名無しさん:2008/05/30(金) 23:27:39
>>233
んじゃとりあえずヘッダから書いてってみる

[stack.h]
#pragma once

enum{ FALSE, TRUE }BOOL;

BOOL init();
BOOL push(int data);
int pop();

[stack.c]
#include "stack.h"
#define MAX_SIZE 10
extern int array[MAX_SIZE];

BOOL init(){
 int i = 0;
 for(i = 0; i < MAX_SIZE; i++){
  array[i] = 0;
 }
 return TRUE;
}
236デフォルトの名無しさん:2008/05/30(金) 23:28:10
237132:2008/05/30(金) 23:34:01
>>234
ファイル名がticket.cだとして、Visual Studio コマンドプロンプトで
cl ticket.c
とやってもダメでしょうか?
こちらのVS2003 および Linuxでのgccではビルドできています。
238 ◆DuoCt8/SKk :2008/05/30(金) 23:38:25
>>237
コマンドプロンプトにてそのコマンドを入力したところ

C:\Program Files\Microsoft Visual Studio 8\VC>cl test.c
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

test.c
c1 : fatal error C1083: ソース ファイルを開けません。'test.c': No such file or directory

という表示が出ました.
やはりだめみたいです・・・
239デフォルトの名無しさん:2008/05/30(金) 23:40:39
>>132のプログラム普通にコンパイル出来たが

リビルドしてみたら?
240デフォルトの名無しさん:2008/05/30(金) 23:40:43
>>238
ディレクトリ合ってる?
241 ◆DuoCt8/SKk :2008/05/30(金) 23:45:07
>>237
すみません!試行錯誤しながら作業を繰り返していったら
実行することができました!

あと・・・回数券などを入力した際にすぐに買える切符はありません
と表示されてしまうのはどう直せばいいでしょうか?

それで,もし良かったら・・・枚数や子供賃金入力のヒントなどを教えて頂きたいです.
242デフォルトの名無しさん:2008/05/30(金) 23:46:58
>>241
ビルドできたか。よかた。
買える切符はありませんっていうのは所持金?が最低額の切符よりも
少ない場合です。
2000円ぐらい突っ込んでからやってみたらどうでしょ。
243 ◆DuoCt8/SKk :2008/05/30(金) 23:52:03
>>242
おっしゃる通り多くしたらできました.
色々とありがとうございました!
それで・・・子供賃金や枚数などのアドバイスは頂けないでしょうか?
くどくてすみません.
244132:2008/05/31(土) 00:05:56
>>243
ticket2の前に子供にしますか?って聞くとか普通乗車券の場合は
coin_numの前に枚数聞くとかですかね。

ちなみにその辺を実装するつもりなら切符の一覧をベタで書く方法を
やめたほうがいいと思います。すぐ気づくかもしれませんが。
たとえば、さらに350円の切符を追加しましょうってなったとき、今の
構造だと大変でしょ?

>>132のはそういう目にあわないようにしてあって、
int ticket_price_list[] = {140, 180, 210, 270, 0};

int ticket_price_list[] = {140, 180, 210, 270, 350, 0};
ってやればすむようになっていました。

いろいろ見比べて、上手く利用できるところは持ってってください。
245デフォルトの名無しさん:2008/05/31(土) 00:10:44
あとは、係員、呼び出しボタンも、あるいは、ひつようですね、ヘルプという、意味で
246 ◆DuoCt8/SKk :2008/05/31(土) 00:16:39
>>244
アドバイスありがとうございます.
>>132のいい部分を見つけて,それを使えればいいということでしょうか?わかりました!

もう迷惑はかけられないので,残りは自分で頑張ってみます,もしかしたらまたここに来ることが
あるかもしれないのでその時にはまたよろしくお願いします.
本当にありがとうございました.
247132:2008/05/31(土) 00:21:02
>>246
>>132のソースが優れてるとはいいませんが、いいなと思う部分が
あれば、どんどん使ってください。
提出までの期間、がんばってね。
248デフォルトの名無しさん:2008/05/31(土) 00:50:00
>>246みたいなのだと
こっちもやってていい気分なんだがなぁ。。
249デフォルトの名無しさん:2008/05/31(土) 00:56:44
自分で勉強してやろうとする人はそもそも宿題スレに頼みに来ない
250デフォルトの名無しさん:2008/05/31(土) 01:09:31
>>176おっぱいうp
251デフォルトの名無しさん:2008/05/31(土) 01:13:55
  (>_<)
 (・人・)
252デフォルトの名無しさん:2008/05/31(土) 01:31:33
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):(@〜Cの座標データ(xi,yi i=1,2,3,4)を代入すると,@
〜Cの全ての点を通り,AとBにおいて位置・速度・
加速度の連続性を保証し,@とCで速度と加速度が零
となる関数を求め,画面表示するプログラムを作成せよ.)
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 2008年6月13日0:00まで
[5] その他の制限: 特になし
253252:2008/05/31(土) 01:33:11
連投すいません、
自分でやっても全然方針立たないのでのでよろしくお願いします。。
254デフォルトの名無しさん:2008/05/31(土) 01:40:13
そういうプログラムだけでなく数学的な基礎学力を必要とする問題は
まずその数学的な解放を記さないと回答率が急速に下がりやがります。
255デフォルトの名無しさん:2008/05/31(土) 07:05:28
>>252
確認。以下の2つの条件のうちどれで解いてほしい?

1. 「連続性」は必要だが「滑らか」でなくて構わない、しかも、@、C以外の点で速度と加速度が0になる点が許される

2. 問題文は誤っており、位置、速度、加速度ともに「滑らかに連続」でなければならない、(この場合、普通に解けば、@とC以外の点で速度と加速度は0にならない)
256デフォルトの名無しさん:2008/05/31(土) 08:35:31
[1] 授業単元:プログラミング
[2] 問題文:数値を2つ入力し、大きい数値、小さい数値の順に出力する
<実行例1>          <実行例2>
24  (←入力1)        17 (←入力1) 
16  (←入力2)  35 (←入力2)  
大:24 (←出力1)  大:35 (←出力1) 
小:16 (←出力2)         小:17 (←入力2)  
 
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: bc pad
 [3.3] 言語:C言語
[4] 期限:6/2
[5] その他の制限:習い始めて一ヶ月程度なのでできるだけ簡単な関数での回答お願いします
257デフォルトの名無しさん:2008/05/31(土) 08:53:02
#include <stdio.h>
int main(void){
int a,b;
printf("入力1:");
scanf("%d",&a);
printf("入力2:");
scanf("%d",&b);
if(a>b) printf("大:%d 小:%d",a,b);
else printf("大:%d 小:%d",b,a);
return 0;
}
258256:2008/05/31(土) 09:39:00
>257さん
無事できました。本当に助かりました。
回答ありがとうございました。
259デフォルトの名無しさん:2008/05/31(土) 09:41:05
>>235-236
ありがとうございます。
260側近中の側近 ◆0351148456 :2008/05/31(土) 10:10:58
>>252
(っ´▽`)っ
要するに等加加速度運動のことかな?
等速度運動(等速直線運動):v(t)=k(一定)
等加速度運動:dv(t)/dt=k(一定)
等加加速度運動:dv(t)/d2t=k(一定)
だとすれば、vはtの2次関数、変位x(=vt)はtの3次関数ということになる。
3次関数の係数を一意に得るには、それが通る4つの点を指定すればよい。
261デフォルトの名無しさん:2008/05/31(土) 10:17:21
まったくもって意味がわかりませんぬ。
262側近中の側近 ◆0351148456 :2008/05/31(土) 10:19:08
(っ´▽`)っ
下の式をa, b, c, d, e, f, g, hについて解けばよい。
x(1) = a * t(1)^3 + b * t(1)^2 + c * t(1) + d
x(2) = a * t(2)^3 + b * t(2)^2 + c * t(2) + d
x(3) = a * t(3)^3 + b * t(3)^2 + c * t(3) + d
x(4) = a * t(4)^3 + b * t(4)^2 + c * t(4) + d
y(1) = e * t(1)^3 + f * t(1)^2 + g * t(1) + h
y(2) = e * t(2)^3 + f * t(2)^2 + g * t(2) + h
y(3) = e * t(3)^3 + f * t(3)^2 + g * t(3) + h
y(4) = e * t(4)^3 + f * t(4)^2 + g * t(4) + h
263側近中の側近 ◆0351148456 :2008/05/31(土) 10:24:55
(っ´▽`)っ
この問題は座標上の4点を指定するってのがミソ
座標上の4点を指定すれば等加加速度運動が実現する。

座標上の2点を指定すれば等速度運動が実現する。
等速直線運動だね。
座標上の3点を指定すれば等加速度運動が実現する。
例として、等速円運動が挙げられる。
264側近中の側近 ◆0351148456 :2008/05/31(土) 10:28:14
(っ´▽`)っ
ちなみに、5点を指定すれば、等加加加速度運動(dv/dt3=一定、dx/dt4=一定)、
6点を指定すれば、等加加加加速度運動(dv/dt4=一定、dx/dt3=一定)を実現できる。
つまり、一般化すれば
n点を指定すれば、dv/dt(n-2)=一定、dx/dt(n-1)=一定の運動を実現できるってこと。
265側近中の側近 ◆0351148456 :2008/05/31(土) 10:38:02
(っ´▽`)っ
ちなみに、
@とCで速度と加速度が零
とあることから、係数は一意に決まるはず。
最初は止まってるが、徐々に加速し始めて、
速度、加速度ともに最高になり、
それから徐々に減速し始めて、最後は止まる
って感じになる。
266252:2008/05/31(土) 13:30:52
すいません、問題文をそのままコピペしたんで、書いてありませんでしたが、
補間法の授業です、教授に質問してきたところ、ヒントを貰えましたんで書きます。
スプライン補間法を用いてttp://kjm.kir.jp/pc/?p=58428.jpgのような感じで解け、と
言われました。
267デフォルトの名無しさん:2008/05/31(土) 14:27:42
>>252
教授がSplineだというんだったらぐぐるしかないか。
でも問題の出し方悪杉
268デフォルトの名無しさん:2008/05/31(土) 15:49:11
誰か未解決まとめてー
>>側近タン
「加」がどんどん増えてくのはどういう仕組みだw
等加加加加速度www
269デフォルトの名無しさん:2008/05/31(土) 15:55:16
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
問1. 10個の数字をキーボードから入力し、「線形リスト」に挿入するプログラム。挿入するプログラムを作成せよ。
挿入後はリストの内容を出力する。
問2. 上の機能に加え、探索の対象データをtargetに入力し、targetに関する線形探索を行うプログラムを作成せよ。
     (「探索成功」・「探索失敗」となるようなtargetを数回設定・入力して下さい。)
問3. 探索成功の場合にはそのデータを「リスト」から削除し、探索失敗の場合にはそのデータを「リスト」の最後尾に挿入する。
(作成要項)
・ここでのレコード、すなわちリストの要素は次の構造体で定義する。
typedef data{
int idnum;
struct data *next;
}data[NMAX]
[3] 環境
[3.1] OS: xp
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限: 6/3まで
[5] その他の制限:前回作った線形探索と2分木探索のプログラムです。
            http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6743.txt
自分でやってみましたが解けませんでした…誰か助けて下さい お願いします    


270デフォルトの名無しさん:2008/05/31(土) 17:57:58
>>269あとでやってあげる
271デフォルトの名無しさん:2008/05/31(土) 19:27:19
変則的な問題かと思いますが >>109 何方かお願いできませんでしょうか。
272 ◆tr.t4dJfuU :2008/05/31(土) 19:33:23
[1] 実験解析
[2] プログラムと同じフォルダ内のbmpファイル(200*300pix)をプログラム実行
時に読み込ませ,1pixごとにそのRGB値を調べさせてexcelに書き出すプログラム
[3] 環境
 [3.1] OS:Xp
 [3.2] BCC Developer
 [3.3] 言語 c
[4] 期限: 無期限ですが,できるだけ早いうち(できれば月曜まで)に宜しくお
願いします.
[5] その他の制限:特にはありません.私は初心者なので,後学のために解説等が
含まれていたらうれしいです.
273デフォルトの名無しさん:2008/05/31(土) 19:36:16
WIndowsのbmpファイルといったところで、結構多数のマイナー
フォーマットに分化している件は無視なの?
274 ◆tr.t4dJfuU :2008/05/31(土) 19:39:41
>WIndowsのbmpファイルといったところで、結構多数のマイナーフォーマットに分化している件は無視なの?

無視して大丈夫だと思うんですが、大丈夫だと思うんですが、大きな違いってあるんですか?一応256色を考えているのですが。
275デフォルトの名無しさん:2008/05/31(土) 19:49:59
後ろから読んだり前から読んだりヘッダがいろいろだったり。
だいたい、EXCELに書き出すって何?
OLEでも使ってEXCEL起動さす気?
276デフォルトの名無しさん:2008/05/31(土) 19:50:14
[1] 授業単元:
[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6749.txt
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ名とバージョンVC 6.0
 [3.3] 言語: C
[4] 期限:日曜日
[5] その他の制限:関数まで習ってます
277デフォルトの名無しさん:2008/05/31(土) 20:02:02
>>276
void func1(const int data[NUM1][NUM2], float avg[NUM1])
{
int i, j, s;
for(i=0; i<NUM1; i++) {
s=0;
for(j=0; j<NUM2; j++)
s += data[i][j];
avg[i] = (float)s / NUM2;
}
}

int func2(const float avg[NUM1])
{
int i, best=0;
for(i=1; i<NUM1; i++)
if(avg[i]>avg[best])
best = i;
return best;
}
278 ◆tr.t4dJfuU :2008/05/31(土) 20:04:05
>だいたい、EXCELに書き出すって何?
>OLEでも使ってEXCEL起動さす気?

説明不足で済みません。得たデータがexcelだと、後々の考察が楽なのでexcelに書き出すと書きました。
txtファイルでも問題ないのですが、後々の処理が大変だと思ったので、出来たらとおもいまして。
279デフォルトの名無しさん:2008/05/31(土) 20:05:11
>>277
m<_ _>m
280デフォルトの名無しさん:2008/05/31(土) 20:11:39
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6750.c
流れも読まずにHTMLのTABLEにBMP画像を出力するプログラムを書いてみたでおじゃる
クソースゆえ突っ込まないでたもう
281 ◆tr.t4dJfuU :2008/05/31(土) 20:28:51
>>280
ありがとうございます。しかし、私の求めるものとちょっと違うんです。
勉強のために有意義に使わせていただきます。すみません
282デフォルトの名無しさん:2008/05/31(土) 20:37:03
EXCEL形式とはいかんが、CSV形式に出力したのを
EXCELで読み込むとか?
283 ◆tr.t4dJfuU :2008/05/31(土) 20:41:16
>>282
それなら、Excelの処理も楽ですね。よろしくお願いします。
284デフォルトの名無しさん:2008/05/31(土) 21:04:01
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6751.c
RGBそれぞれ2桁ずつ、計6桁の16進数の値を
コンマで区切る形式に出力することは出来たが・・・
EXCELへのインポートの際、少々問題が。
バージョン2003で データ>外部データの取り込み で試してみたんだが、
16進数は10進数の数値としては扱えないため、セルの書式を数値にしてあると
先頭に0があればそれはなくなってしまった。
予めワークシートのセルの書式を文字列にしてみたが、今度は
Eが入っていると 5.54E+48 のように表示されている・・・
さて、その辺の対策は・・・プログラム側でしておくべきか?
285269:2008/05/31(土) 21:07:06
>>270
宜しくお願いします
286 ◆tr.t4dJfuU :2008/05/31(土) 21:53:10
>>284
返信遅くて済みません。ありがとうございます。bmpを256色対応で読み込むようにしたら良くなりませんか?
質問できちんと書いていなかったんですが、256色を使おうと思っているんですが。
手直しなど大変だと思いますが、よろしくお願いします。
287デフォルトの名無しさん:2008/05/31(土) 21:58:05
ttp://www.kk.iij4u.or.jp/~kondo/bmp/
256色のBMPを解析して、後はそれに応じて・・・
あのコードを適当に書き換えればおkだが、ちと疲れたんで明日また
288 ◆tr.t4dJfuU :2008/05/31(土) 22:05:44
>>287
わがままに付き合っていただいて大変ありがとうございます。
私も作っていただいたプログラミングで勉強します。
289デフォルトの名無しさん:2008/05/31(土) 22:28:50
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):実数がどのように保存されているか表示する。(txt)
1行16バイトで表示。
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C言語
[4] 期限: 2008/5/31
[5] その他の制限: 特になし
290 ◆GV8UxHX4R. :2008/05/31(土) 22:31:04
[1] 授業単元:プログラミング演習
[2] 問題文:3次元ベクトルの内積と成す角を算出せよ
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ名とバージョン:borland C++ compiler ver.5.5
 [3.3] 言語: C++(?)
[4] 期限:6/5 21:59まで
[5] その他の制限:ベクトルは配列を使って表すこと。内積の計算はループ文で行うこと。絶対値はsqrt、角度はacosを使って求めること。1次元配列まで習っています

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6752.cpp
ベクトルA、Bの成分を全て1か2にした時に(まだ見落としがあるかもしれませんが)「acos: DOMAIN error」と表示され、成す角が「+NAN」と表示されてしまいます。
それ以外の値では正常に動作するようです。
また、37、38行目で「abs_a = sqrt((vctr_a[0])*(vctr_a[0]) ・・・」としていますが、これを「abs_a = sqrt((vctr_a[0])^2 ・・・」とするとおかしなことになります。
書き方が間違っているということですが、後者のように表記する方法はないのでしょうか。

どなたかご教授願います。
291デフォルトの名無しさん:2008/05/31(土) 22:34:06
292デフォルトの名無しさん:2008/05/31(土) 22:34:18
[1] ゼミ実験
[2]
○実験1、マルコフ情報源の生成プログラムの作成
プログラムは
double markov(int K ,double alfa, double *a_coeff, double *mem);
のように、次数Kとαの値および長さKの係数配列a_coeffとメモリ配列memのポインタを引数としマルコフ情報源出力Xnを返す関数文で書く。
main文では、Kとαの値の設計および配列a_coeffとmemの確保と配列の値の設定を行う。
なお、memは全零に初期設定する。
main文で関数marukovを呼出す度にマルコフ情報源の系列の値が順次得られ、N個のデータをファイルに記憶する。
なお、一様乱数からガウス関数への変換は(1)または(2)の方法を用いる。
○実験2、マルコフ情報源の生成実験
上で作成したプログラムを用いて、K=1の1次マルコフ情報源についてのみ系列の生成実験を行う。
ここで、係数a1は安定条件より|a1|<1の範囲に限定する必要があり、実験では、a1=±0.1、±0.9の4種類についてマルコフ情報源出力系列の1024個のデータ(最初の1番目のデータは捨てる)をファイルに出力され、それらのグラフを描く。
なお、係数αは出力系列Xnの分散σx^2=1になるように決定する。
 問題【1】実験1のマルコフ情報源の生成プログラムを示しなさい。
 問題【2】実験2のマルコフ情報源出力系列を図示し、AR係数a1=±0.1、±0.9の場合について、系列の違いを定性的に説明しなさい。
      また、その違いの出る理由をK=1のときの式(2)のファイルの周波数応答F(e^jω)=α/(1+a1・e^-jω)より説明しなさい。
Un=(1./(RAND_MAX+1.))*rand(); ・・・・(1)式
F(z)=α/(1+a1・z^-1+a2・z^-2+・・・・・・+ak・z^-K)  ・・・・・(2)式

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン: Vidual Studio2005
 [3.3] 言語:C++
[4] 期限: 2008年6月1日24:00
[5] その他の制限:
急ぎですいません。問題【2】実験2は図示があるので問題【1】だけでもいいのでお願いします。
293側近中の側近 ◆0351148456 :2008/05/31(土) 22:34:48
>>290
(っ´▽`)っ
(vctr_a[0])^2
ではなく、C言語では、
power(vctr_a[0], 2)
ね。
前者の表記の仕方はBASICかな?なんだっけ?
294側近中の側近 ◆0351148456 :2008/05/31(土) 22:36:13
>>290
(っ´▽`)っ
間違った。powだった。pow!
ttp://www.bohyoh.com/CandCPP/C/Library/pow.html
295側近中の側近 ◆0351148456 :2008/05/31(土) 22:37:28
>>290
(っ´▽`)っ
ちなみに、C言語上、^は、ビット単位の排他OR演算子を表す。
全く別物。
296側近中の側近 ◆0351148456 :2008/05/31(土) 22:38:26
>>290
(っ´▽`)っ
っていうか、明らかにC言語のソースなのに、
拡張子がcppなのは何故?
297デフォルトの名無しさん:2008/05/31(土) 22:42:38
3より大きく、入力された上限の数未満の全ての自然数かつ非素数について、3で割り切れるものは無視し、3で割った余りが1のものは加算し、余りが2のものは減算して合計を求めよ
#include <stdio.h>
int main(void)
{ int i ; int num;
int sum;
sum = 0;

printf("Input Upper Limit: ");
scanf("%d", &num);
for(; num <= 3; num = num - 1)
{
if( num % 2 == 0)
{
if( num % 3 == 2) { sum = sum + num; }
if( num % 3 == 1 ) { sum = sum - num; }
}
else
{
for ( i=3; i*i<=num; i = i + 2)
{
if( num % i == 0)
{
if( num % 3 == 2) { sum = sum + num; }
if( num % 3 == 1 ) { sum = sum - num; }
}
}
}
}
printf("%d\n", sum);
return 0;
}
自分でやってみたんですがうまくいかないです。どこがおかしいですか?
298側近中の側近 ◆0351148456 :2008/05/31(土) 22:54:12
>>290
(っ´▽`)っ
VS2005で実験。
確かにacosの戻り値が-1.#IND000000000000になった。
デバッグしたら、prd / (abs_a * abs_b)=1.0000000000000002
つまり、acosの定義域[-1, 1]外ということ。
この誤差(0.0000000000000002)に対応しなければならない。
299側近中の側近 ◆0351148456 :2008/05/31(土) 22:56:02
(っ´▽`)っ
ついでに、C言語だとしたら、
double ang = acos(prd / (abs_a * abs_b));
はダメだよ。
ちゃんと、関数の最初にdouble angって宣言しないとね。
300yumi:2008/05/31(土) 23:18:27
>>297
よく読んでないからわかんないけど
3より大きい数字を入力したら
for(; num <= 3; num = num - 1) <-このループに入れないよ
この時点でオカシイよねっ
それと素数判定もしなきゃダメなんじゃない?


お風呂入って寝ます
オヤスミ♪<(゜ー^)ノ^*・'゜☆。.:*:・'☆'・:*:.。.:*:・'゜:*:・'゜☆
301デフォルトの名無しさん:2008/05/31(土) 23:23:51
>>297
たぶん、これでいい。
#include <stdio.h>
int main(void)
{
int i ; int num; int sum = 0;
printf("Input Upper Limit: ");
scanf("%d", &num);
for(; num > 3; num --) {
if( num % 2 == 0)
{
if( num % 3 == 2) { sum = sum - num; }
if( num % 3 == 1 ) { sum = sum + num; }
}
else
{
for ( i=3; i*i<=num; i += 2)
{
if( num % i == 0)
{
if( num % 3 == 2) { sum = sum - num; }
if( num % 3 == 1 ) { sum = sum + num; }
break;
}
}
}
}
printf("%d\n", sum);
return 0;
}
302 ◆GV8UxHX4R. :2008/06/01(日) 00:28:02
側近中の側近 ◆0351148456さん回答ありがとうございます。

>>296
教師に言われた手順に従っていただけなのですが、違うんですね。
適当な教師だなあ

>>298
prd / (abs_a * abs_b)の部分を一旦別のdouble型変数に入れてからacosしてみましたがダメでした。
doubleの精度ならその程度の誤差は出ないんじゃないかと思ったんですが・・・。

>>299
それは一番最初に宣言しておけと言うことでしょうか。
303デフォルトの名無しさん:2008/06/01(日) 00:34:16
>>297,301
「入力された上限の数未満」なので、以下。

#include <stdio.h>
int main(void){
int i, num, sum=0;
printf("Input Upper Limit: ");
scanf("%d", &num);
for(num--; num > 3; num--){
for ( i=2; i*i<=num; i ++){
if( num % i == 0){
if( num % 3 == 2){ sum -= num; }
if( num % 3 == 1){ sum += num; }
break;
}
}
}
printf("%d\n",sum);
return 0;
}

304デフォルトの名無しさん:2008/06/01(日) 00:39:10
>>303
なぜ処理速度を落とした><
305デフォルトの名無しさん:2008/06/01(日) 01:04:59
>>109
こんな感じでどうでしょ。親はすぐ終わって、子プロセスが2秒後に環境変数吐き出します。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[], char *envp[])
{
int i;
pid_t pid = fork();

if (pid == -1) exit(1);
if (pid == 0)
{
/* 子プロセスの処理 */
sleep(2); /* 子というのを分かりやすくしてます */
for (i=0; envp[i]!=NULL; i++)
printf("%s\n", envp[i]);
}
else
{
/* 親プロセスで何かしたいならここに */
}
exit (0);
}
306デフォルトの名無しさん:2008/06/01(日) 01:09:29
>>305
Sleep(2)じゃなくて2000じゃない?
307305:2008/06/01(日) 01:14:07
>>306
DOSならそうかもですね。
308デフォルトの名無しさん:2008/06/01(日) 01:26:10
Linuxか ゴメ
30910:2008/06/01(日) 01:33:51
期限は過ぎてしまいましたが、まだ完成させることができません・・・
気が向いたときでいいんでどうかよろしくお願いします> <

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6753.txt
310デフォルトの名無しさん:2008/06/01(日) 01:45:17
奥村さんのアルゴリズム事典に載ってるので買うとよいかもです。
図書館で借りてもいいかも。
311デフォルトの名無しさん:2008/06/01(日) 02:35:19
>>304
速度気にするなら素数判定は篩にして、ループも分けろよw
312デフォルトの名無しさん:2008/06/01(日) 02:46:09
>>309
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6754.c
張ってあるソースは使ってません
313デフォルトの名無しさん:2008/06/01(日) 03:08:09
>>311
素数判定部のループについて、元ソースの
for ( i=3; i*i<=num; i = i+2)

for ( i=2; i*i<=num; i ++)
こう変えちゃったことについてだよ。

出題者なりのチューニング結果を無駄にしちゃったらかわいそうだよって
いいたかったの。
314デフォルトの名無しさん:2008/06/01(日) 03:39:59
>>313
意味が判っててチューニングしてるんなら無視すれば良いんじゃね?
コピペしか出来ないなら、チューニング以前に身につけるべきものが多そうだし。
315デフォルトの名無しさん:2008/06/01(日) 03:46:19
301のは速度に拘ったソースでもないだろ
else ifにすらしてないんだから
316デフォルトの名無しさん:2008/06/01(日) 09:10:24
どなたか>>102>>104をお願いします†~。゚(>о<)゚。
317デフォルトの名無しさん:2008/06/01(日) 09:19:31
[1] 授業単元: プログラミング1
[2] 問題文 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6755.txt
[3] 環境
 [3.1] OS: Windows 2000
 [3.2] コンパイラ名とバージョン: Vidual Studio2005
 [3.3] 言語: C++
[4] 期限:2008年6月2日
[5] その他の制限: 標準ライブラリー禁止、初歩関数まで学習

標準ライブラリー使えないとなるとさっぱりなのですが
どなたかお助けを・・・



318デフォルトの名無しさん:2008/06/01(日) 10:06:54
>>317
int zettaichi( int x ) { return x < 0 ? -x : x; }
int main() { printf("-9 => %d\n3 => %d\n0 => %d\n", zettaichi(-9), zettaichi(3), zettaichi(0)); }
printfだけ標準ライブラリだが、そこまで禁止なら手に負えん
319デフォルトの名無しさん:2008/06/01(日) 10:31:25
>>318
ありがとうございます、全て禁止だと表示できませんよね(´Д`;)

これでokです、助かりました
320デフォルトの名無しさん:2008/06/01(日) 11:56:13
課題出してくれる人は
頼むからリストに追加してまとめてくれ。
どれが優先事項なのかさっぱりわからん。
32110:2008/06/01(日) 12:37:58
>>312
すごい・・・スタート地点の頂点も選べるようになってる・・・!

解説までつけていただき、とてもわかりやすかったです!
ありがとうございましたm(_ _)m
322デフォルトの名無しさん:2008/06/01(日) 13:29:02
お願いします。全くわかりません><
[1] 授業単元:コンピュータシミュレーション
[2] 問題文(含コード&リンク):
モンテカルロ法により、円の面積を求める考え方を利用し、
「球の体積」と円周率、真の円周率に対する誤差を求めるプログラムを完成させよ。
必要となる一様乱数は、課題AのGOUDOU関数を使用すること。
プログラムは必ず可動であること。
http://pubweb.cc.u-tokai.ac.jp/arai/sim/kadai/kadai3.html
※課題A
http://pubweb.cc.u-tokai.ac.jp/arai/PDF/sim/一様乱数フローチャート.pdf
[3] 環境
 [3.1] OS:WindousXP
 [3.2] Visual C++
 [3.3] 言語:C++
[4] 期限:今日の24時まで
[5] その他の制限:無し
323デフォルトの名無しさん:2008/06/01(日) 13:36:13
>>316
>>104 だけやった
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6756.txt
エラーチェックは一切やってないけど、チェックすべきとこはコメントで書いといた

つーか大分大学の出力ワロタw
324デフォルトの名無しさん:2008/06/01(日) 14:26:14
>>319
できますよ。前スレでそのようなのを作った。
325デフォルトの名無しさん:2008/06/01(日) 15:16:04
[1] 授業単元:アルゴリズム
[2] 
連結リストを用いて、スタックを実現するプログラムを作成
連結リストを用いて、キューを実現するプログラムを作成
[3]
 [3.1] OS:win
 [3.3] 言語: C
[4] 期限:月曜


お願いします。
326デフォルトの名無しさん:2008/06/01(日) 15:29:35
月曜っていつの月曜日だよ
今日中ってことか?
327デフォルトの名無しさん:2008/06/01(日) 15:40:42
328デフォルトの名無しさん:2008/06/01(日) 15:49:29
329316:2008/06/01(日) 16:07:10
>>323
>>328
ありがとうございましたm(._.)m
明日動作確認してみます!
330デフォルトの名無しさん:2008/06/01(日) 16:07:44
>>305
解説まで付けていただき、ありがとうございました。
助かりました!
331デフォルトの名無しさん:2008/06/01(日) 16:14:17
>>171
>>172
二人とも、ありがとうございました!
返事が遅くなってすみません。
332デフォルトの名無しさん:2008/06/01(日) 16:23:42
333デフォルトの名無しさん:2008/06/01(日) 16:26:41
お礼の豊作じゃー><

>>329
途中を削除ってのはやってますが、リストの途中に追加、というのを
やってないことに気づきました。
そのような処理を実装できなさそうなら言ってください。

>>330
よかったです。こちらも初めてのforkでしたのでドキドキしてました。
334292:2008/06/01(日) 16:34:28
大変申し訳ありません。ミスがありましたので訂正します。
[2]
○実験1、マルコフ情報源の生成プログラムの作成
プログラムは
double markov(int K ,double alfa, double *a_coeff, double *mem);
のように、次数Kとαの値および長さKの係数配列a_coeffとメモリ配列memのポインタを引数としマルコフ情報源出力Xnを返す関数文で書く。
main文では、Kとαの値の設計および配列a_coeffとmemの確保と配列の値の設定を行う。
なお、memは全零に初期設定する。
main文で関数marukovを呼出す度にマルコフ情報源の系列の値が順次得られ、N個のデータをファイルに記憶する。
なお、一様乱数からガウス関数への変換は(1)または(2)の方法を用いる。
○実験2、マルコフ情報源の生成実験
上で作成したプログラムを用いて、K=1の1次マルコフ情報源についてのみ系列の生成実験を行う。
ここで、係数a1は安定条件より|a1|<1の範囲に限定する必要があり、実験では、a1=±0.1、±0.9の4種類についてマルコフ情報源出力系列の1024個のデータ(最初の1番目のデータは捨てる)をファイルに出力され、それらのグラフを描く。
なお、係数αは出力系列Xnの分散σx^2=1になるように決定する。
 問題【1】実験1のマルコフ情報源の生成プログラムを示しなさい。
 問題【2】実験2のマルコフ情報源出力系列を図示し、AR係数a1=±0.1、±0.9の場合について、系列の違いを定性的に説明しなさい。
      また、その違いの出る理由をK=1のときの式(1)のファイルの周波数応答F(e^jω)=α/(1+a1・e^-jω)より説明しなさい。
F(z)=α/(1+a1・z^-1+a2・z^-2+・・・・・・+ak・z^-K)  ・・・・・(1)式
(1)1系列の一様乱数Unから以下の計算により1系列のガウス乱数Gnを得る。
  Gn= U12n + U12n+1 + ・・・・・ + U12n+11 −6 (n=0,1,2,・・・・)   (中心極限定理)
(2)Box-Muller法:2系列の一様乱数 Un,1 , Un,2 から以下の計算により独立な2系列のガウス乱数 Gn,1 , Gn,2 を得る。
 Gn,1=(√-2ln(1-Un,1))×cos(2πUn,2) Gn,2=(√-2ln(1-Un,1))×sin(2πUn,2)

急ぎですいません。問題【2】実験2は図示があるので問題【1】だけでもいいのでお願いします。
式など分かりにくいところがありましたら言って下さい。期限は過ぎてもかまわないのでよろしくお願いします。
335デフォルトの名無しさん:2008/06/01(日) 18:02:21
>>334
プログラム以前にマルコフ情報源とか応答特性についての知識がスッポリ抜けてることに驚いた
とりあえずこの辺の情報がないと俺できない/(^o^)\
336316:2008/06/01(日) 19:11:24
>>333
すみません、できなさそうなのでよかったらお願いしますm(v_v)m
337デフォルトの名無しさん:2008/06/01(日) 19:20:16
>>367
火曜日まででOKです・・
338デフォルトの名無しさん:2008/06/01(日) 19:35:00
>>336
こんなのでも適当に放り込んでみては?
work = head->next->next->next->next;
work2 = create_node(100);
work2->next = work->next;
work->next = work2;

work = head->next->next->next->next->next->next;
work2 = create_node(200);
work2->next = work->next;
work->next = work2;
339デフォルトの名無しさん:2008/06/01(日) 19:36:17
[1] 授業単元: プログラミング1
[2] 問題文 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6761.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Vidual Studio2005
 [3.3] 言語: C++
[4] 期限:2008年6月8日
[5] その他の制限: 初歩関数まで

色々調べて試してみましたがさっぱり
自作関数を定義する方法がいまいち理解できない\(^o^)/
340デフォルトの名無しさん:2008/06/01(日) 19:42:54
>>339

int Min, Max;
void minmax(int x, int y, int z);

void minmax(int x, int y, int z){
  int min=x, max=x;
  if(min>y) min=y;
  if(min>z) min=z;
  if(max<y) max=y;
  if(max<z) max=z;
  Min=min;
  Max=max;
}
341デフォルトの名無しさん:2008/06/01(日) 20:32:47
342デフォルトの名無しさん:2008/06/01(日) 21:22:42
test
343デフォルトの名無しさん:2008/06/01(日) 22:03:33
>>174です。
大事なとこが抜けてました。

成績データレコード
struct PERSONAL_REC
{
unsigned char number; (クラス番号)
unsigned char reserve[3]; (予備)
unsigned char name[80];
short kokugo;
short sansuu;
};

成績集計レコード
struct CLASS_REC
{
unsigned char number; (クラス番号)
unsigned char reserve[3]; (予備)
short kokugo;
short sansuu;
};

を使うということです!
どなたか明日のお昼までにお願いします!
m(__)mm(__)m
344側近中の側近 ◆0351148456 :2008/06/01(日) 22:11:36
>>174
(っ´▽`)っ
ヒント:qsort
345デフォルトの名無しさん:2008/06/01(日) 22:16:18
>>343
http://pc11.2ch.net/test/read.cgi/tech/1180856695/945
たまたま同じ質問してる人がいるからそっちの結果を見てみたら?
346デフォルトの名無しさん:2008/06/01(日) 22:22:11
>>345
結果出てないんです。
3日間考えたけどわからないんです…。
347デフォルトの名無しさん:2008/06/01(日) 22:31:23

【質問テンプレ】
[1] 授業単元: CSVファイルをきれいに表示するツールを作りたい
[2] 問題文(含コード&リンク):まずはオープンダイアログを作りたい
[3] 環境
 [3.1] OS: Windows Vista Home Basic
 [3.2] コンパイラ名とバージョン: VC++.net 2003
 [3.3] 言語: C++
[4] 期限: 2008年6月3
[5] その他の制限: 以下の分でビルドエラーがでます

private: System::Void file_open_Click(System::Object * sender, System::EventArgs * e)
{
this->file_open->Click += new
System::EventHandler(this, file_open_Click);

if(openFileDialog1->ShowDialog() == DialogResult::OK)
{
System::IO::StreamReader * sr = new
System::IO::StreamReader(openFileDialog1->FileName);
MessageBox::Show(sr->ReadToEnd());
sr->Close();
}
348デフォルトの名無しさん:2008/06/01(日) 22:43:14
マルチする奴は消えろ
349デフォルトの名無しさん:2008/06/01(日) 22:50:43
すいません、>>252 >>265 お願いしますm(_ _)m
350デフォルトの名無しさん:2008/06/01(日) 22:51:55
>>340
ありがとうございます
351側近中の側近 ◆0351148456 :2008/06/01(日) 22:58:04
>>174
(っ´▽`)っ
入力の条件が書かれてないから適当に。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6762.txt
352デフォルトの名無しさん:2008/06/01(日) 23:01:23
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6763.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:LSI-C86
 [3.3] 言語: C
[4] 期限: 特に無し
[5] その他の制限: if文とswitch文まで習いました。よろしくお願いします。
353174:2008/06/01(日) 23:13:49
>>351
ありがとうございます!!!!!!!
明日までに自分で解析できるように頑張ります!
354デフォルトの名無しさん:2008/06/01(日) 23:19:43
>>352
maという、変数を、チャル型に、して、『ma=’−’;』のように、囲んで、 テレビに、出すときは、%cに、してみては、いかがでしょう??
355デフォルトの名無しさん:2008/06/01(日) 23:27:24
356352:2008/06/01(日) 23:30:18
>>354-355
アドバイス、ありがとうございます。チャル型というのは、まだ習っていません・・・。
それを使わないとしたら、if型でまた分けるのでしょうか。
357デフォルトの名無しさん:2008/06/01(日) 23:33:28
キャラ型(char型)をチャルってのは・・・w
358デフォルトの名無しさん:2008/06/01(日) 23:36:07
たまにチャーと言ってしまいます。
359デフォルトの名無しさん:2008/06/01(日) 23:38:56
ノッってるときはカールって言ってる
360デフォルトの名無しさん:2008/06/01(日) 23:39:46
>>352
#include <stdio.h>
int main(void)
{
int score;
printf("点数を入力してください:");
scanf("%d", &score);
if(score > 100)
printf("評価できません。\n");
else if(score == 100)
printf("評価はA+です。\n");
else if(score < 60)
printf("評価はFです。\n");
else {
switch(score/10) {
case 9: printf("評価はA"); break;
case 8: printf("評価はB"); break;
case 7: printf("評価はC"); break;
case 6: printf("評価はD"); break;
}
switch(score%10) {
case 9: case 8: case 7: printf("+"); break;
case 0: case 1: case 2: case 3: printf("-"); break;
}
printf("です。\n");
}
return(0);
}
361352:2008/06/01(日) 23:44:43
>>360
おおおおお!!!!ありがとうございます!!
362347:2008/06/02(月) 00:30:24
意味不明な質問してしまって、すみません・・・
363デフォルトの名無しさん:2008/06/02(月) 00:50:38
>>362
なんかしらんけどエラーメッセージ貼ってみたら?
364デフォルトの名無しさん:2008/06/02(月) 06:16:33
いやソースをよこせ
365 ◆tr.t4dJfuU :2008/06/02(月) 09:12:24
>>332
大変ありがとうございました。
366デフォルトの名無しさん:2008/06/02(月) 10:27:30
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6765.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:VC9.0
 [3.3] 言語: C
[4] 期限: 特に無し
[5] その他の制限:  ファイルの入出力あたりがどうもこんがらがってしまって
367デフォルトの名無しさん:2008/06/02(月) 11:59:01
>>366
難しく考えることないでしょ。
入力ファイルオープン
全部を一旦エリアAに読み込み(この段階で長さも判明)
入力ファイルクローズ

同じ長さのエリアBをもう1つ確保、エリアA->エリアBへ判定転送処理を行う。

出力ファイルオープン
完成したエリアBを書き込み
出力ファイルクローズ
368デフォルトの名無しさん:2008/06/02(月) 12:10:56
>>367
ファイルサイズが大きいとアレじゃない?
fseekとか使ってオンメモリで処理できるサイズのバッファごとに反転させるほうがよさげ。
369デフォルトの名無しさん:2008/06/02(月) 12:12:49
と思ったけど問題主の雰囲気からいってそれで十分かもだったorz
おさわがせしますた。
370367:2008/06/02(月) 12:15:41
>>368
でもPCのメモリでも足らないとなると
今度は入力側と出力側の両方のファイルを開けておいて
入力側はシークで最後までファイルポインタを移動して
読み込み->判定・加工処理->出力側へ・・・
371デフォルトの名無しさん:2008/06/02(月) 12:26:49
[1] 授業単元:情報実験
[2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6767.txt
[3] 環境
 [3.1] OS: Mac OS X
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 特に無し
[5] その他の制限:ヘッダはstdio.hとstdlib.hしか扱ってないのでこれらのみでお願いします
372デフォルトの名無しさん:2008/06/02(月) 12:29:59
いきなり答えのサイト貼るのはありかな?
http://www.geocities.jp/ky_webid/algorithm/011.html
373デフォルトの名無しさん:2008/06/02(月) 13:01:39
374デフォルトの名無しさん:2008/06/02(月) 13:03:09
>>372
構造体が違うんで完璧な答えにはならんけど、ヒントにはなる。
375デフォルトの名無しさん:2008/06/02(月) 13:14:53
まあリスト(線、循環、双方向)とか2分探索木とかってネットで探せば
いくらでもサンプルはでてくるからな〜
376368:2008/06/02(月) 13:33:29
>>370
両方開きっぱでいいと思うよっていうか、いいたかったことを>>373が実装したw
377デフォルトの名無しさん:2008/06/02(月) 13:53:46
>>373の実装だとちょっとおかしくね?
でかいファイルを扱うことを想定してるのであればmallocでわざわざワークを
確保しなくてもリードしてそのまま書き込めばいい。

小さいファイルを扱うことを想定してるのだと読んだあとわざわざ入力側を
開けっ放しにする必要があるのかどうか・・・
378デフォルトの名無しさん:2008/06/02(月) 13:56:14
[1] 授業単元:プログラミング
[2] 問題文:スタック,キューの理解
   リスト構造によるスタックとキューそれぞれについて,格納されている
   要素数を取得する方法を利点,欠点を交えて説明せよ。
   また,取得した要素数の用途について考察せよ。
[3]言語:C
[4] 期限:2008年6月5日まで
プログラム組む問題ではないですが、調べてもわからなかったのでお願いします。
379デフォルトの名無しさん:2008/06/02(月) 13:58:46
あれホント。よく見てなかったよー。
ある程度の大きさのバッファに読み込んで、それを逆にして出力を
繰り返してるものだと思い込んでた。

1バイトずつ読んで書いてより、ある程度のバッファ単位で処理したほうが
多分速くなると思うんだ。HDDのキャッシュ的に。
380デフォルトの名無しさん:2008/06/02(月) 14:04:50
>>378
http://www.mm.ics.saitama-u.ac.jp/~ohsawa/Lect/dstr/04.pdf

スタックというのはアセンブラなんかでcall命令を使う際に
レジスタの内容や戻り先アドレスを格納するのに使ったりしますね。
http://www.geocities.jp/naosacra/mops/forbeginner/8.html
これをリスト構造でってのは使うことあるのかな?
アセンブラなんかだとスタックポインタというのがあってそれで管理してるんですけどね。

キューというのはメッセージキューなんかで使われるものです。
FIFOとかいう言葉も関連します。
まあこれはリスト構造を使って実現することが多いですけど。
381デフォルトの名無しさん:2008/06/02(月) 14:05:00
スタックとキューの実装方法によらない?
リスト構造であるという点で同じであれば何か小細工をしない限り
要素数を数えるコストは同じだと思うので、利点欠点は無いと思う。
用途は制限かけたいときに使えるとかじゃないの?
382デフォルトの名無しさん:2008/06/02(月) 14:06:25
>>379
windowsの場合だと一度読みに行くとキャッシュにあがってるから
1バイト読みでも問題ないんじゃないかな?
ただファイルの最終から読む場合はキャッシュの扱いはわからんw
383373:2008/06/02(月) 14:28:52
>>366
言われたとおりバッファ消しました
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6769.txt
384デフォルトの名無しさん:2008/06/02(月) 14:41:52
>>371 をやり始めたんだが、なんかその補足に書かれていることから
すでに間違っているが・・・とりあえず適当に書き換えておきまつ
385デフォルトの名無しさん:2008/06/02(月) 15:45:44
判定処理もないじゃん。
386デフォルトの名無しさん:2008/06/02(月) 15:50:46
>>366
>その際、逆順バイト列内に0x54,0x450x53,0x54があればファイルの先頭からのオフセットを表示する
>また、ファイル長は不定とする
これってさ

>その際、逆順バイト列内に0x54,0x45,0x53,0x54があればファイルの先頭からのオフセットを表示する
>また、ファイル長は不定とする

ということでOK?
後オフセットを表示するってのは標準出力でいいのかな?
387デフォルトの名無しさん:2008/06/02(月) 15:52:50
[1] 授業単元: プログラミング
[2] 問題文:簡単なアニメーションを考案して作成せよ(できればマウスやキーイベントも考慮)
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc 
 [3.3] 言語:C
[4] 期限:2008年6月2日24時まで

まったくわかんねー\(^o^)/
388デフォルトの名無しさん:2008/06/02(月) 15:54:35
>>387
なんだよ、その漠然とした例題はw
389デフォルトの名無しさん:2008/06/02(月) 15:58:43
自分でやれ
390デフォルトの名無しさん:2008/06/02(月) 16:00:13
>>388
#include <math.h>
#include <GL/glut.h>
#include <time.h>
float R_ball=0.1, x_ball=0.0, y_ball=0.5;
float dx, dy;
float g=0.01, elasticity_x=0.98, elasticity_y=0.98;

void gdisc(float xc,float yc, float r){
float x, y, dt; int i,N=60;
dt=2.*M_PI/(float)N;
glBegin(GL_POLYGON);
for(i=0; i<N; i++){
x=xc+r*cos((float)i*dt); y=yc+r*sin((float)i*dt);
glVertex2d(x,y);
}
glEnd();
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0., 0., 0.);
gdisc(x_ball,y_ball,R_ball);
glutSwapBuffers();
}
void myIdle(){
x_ball=x_ball+dx;
391デフォルトの名無しさん:2008/06/02(月) 16:01:12
if(x_ball<=-1.+R_ball){
x_ball=-1+R_ball;
dx=-dx*elasticity_x;
} else if (x_ball>=1.-R_ball){
x_ball=1.-R_ball; dx=-dx*elasticity_x;
}
y_ball=y_ball+dy;
if(y_ball<=-1.+R_ball){
y_ball=-1.+R_ball; dy=-dy*elasticity_y;
dx*=0.99;
} else if (y_ball>=1.-R_ball){
y_ball=1.-R_ball; dy=-dy*elasticity_y;
dx*=0.99;
}
dy=dy-g;
Sleep(1);
glutPostRedisplay();
}
int main(int argc, char *argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
glutCreateWindow("Ball");
392デフォルトの名無しさん:2008/06/02(月) 16:01:50
glClearColor(1.0, 1.0, 1.0, 0.0);
glutDisplayFunc(myDisplay);
glutIdleFunc(myIdle);
srand(time(NULL));
dx=0.01*(rand()%5+1);
dy=0.01*(rand()%5+1);
glutMainLoop();
return 0;
}
自力でここまでやりましたがこれだと駄目と言われたので
これに何らかのキーボードイベントを入れたいわけです

で、そのキーボードイベントの入れ方がわかんねー\(^o^)/
というわけです。

393デフォルトの名無しさん:2008/06/02(月) 16:02:13
ソース貼るならできればテキストファイルをどこかロダにあげて
そのリンクを・・・w
394デフォルトの名無しさん:2008/06/02(月) 16:03:55
395デフォルトの名無しさん:2008/06/02(月) 16:06:37
アニメーション
1 アニメーション
ピクセルの色を制御することができれば、図形を自由自在に表現することができるようになる。更に、図形の
位置、形状または色を徐々に変化させて図面を更新することにより、アニメーションの実現が可能である。そのポ
イントは
1. 図形の位置、形状または色を少し変化させる
2. 変化した図面を再描画する
3. 手順1 へ戻る
の3 点にある。「繰返して図形に変化を与える」には関数
void glutIdleFunc(void (*f)(void))
を用いて「変化を与える」関数fを指定する。指定された関数fは繰り返して呼び出されるため、その中に図形
の座標、形状、色を変化する文があれば、定期的に図形に変化を与えることになる。更に、変化した場合再描画
する関数
void glutPostRedisplay()
を呼び出すことで図面を更新することを指示する。
関数glutIdleFunc で指定した関数f はイベントが起きていない限り繰返して呼び出される。図面更新の時間間
隔の調整はSleep(int seconds) 関数が有効だが、繰り返しの時間間隔はやはりCPU の性能やコンピュータに与え
られているタスクにより異なる。CPU の性能などによらずに時間間隔を制御したい場合は、関数
void glutTimerFunc(unsigned int msecs, void (*f)(int value), int value)
を使うことが可能。この関数は指定されたミリ秒数msecs の後に関数f(int value) を1 回呼び出す。また、呼び出
しを区別するために、与えられた整数value を関数f に渡す。関数glutTimerFunc を用いてアニメをつくるには、
繰り返しを実現するために関数f(int value) の中で最後にglutTimerFunc を再度呼び出すように指示しなければ
ならない(glutIdleFunc を用いる場合は不要)。
以下は例を用いてglutIdleFunc の使い方を説明する。ウインドウの中で横を移動し、境界に当たると移動方向
を逆転するボールのアニメーションを考えよ。このアニメは塗りつぶした円形の描画と上記の仕組みを用いて実
現でき、プログラムBall.c を用いて簡単に説明する。
396デフォルトの名無しさん:2008/06/02(月) 16:06:56
>>394
たしかに動くけどw
397デフォルトの名無しさん:2008/06/02(月) 16:09:58
int main () {
for(;;)
{
:処理
i
f (Esc押されたら) break;
}
return 0;
}
これでいいんじゃね(>ω< =3
398デフォルトの名無しさん:2008/06/02(月) 16:11:35
>>397
それじゃあ無理だろw
ソース全部貼ってるのが主だとすればgl使ったものなので
399デフォルトの名無しさん:2008/06/02(月) 16:16:35
>>398
glです。

できれば何かのキーを押したら重力がなくなるとかのイベントがいいです
400デフォルトの名無しさん:2008/06/02(月) 16:16:37
>>341
ありがとうございます!
401デフォルトの名無しさん:2008/06/02(月) 16:25:02
>>387>>390-392>>395
のようにじゃなくてソースをどこかに上げたほうがいいと思うぞw

>>1にロダも貼ってあるし
402デフォルトの名無しさん:2008/06/02(月) 16:32:31
void myKeyboard(unsigned char key, int x, int y){
switch(key){
case 'a':
g=0.;
  glutPostRedisplay(); break;

課題のサンプルがあってこんなのを入力したらなんかできましたw

ありがとうございますw
403デフォルトの名無しさん:2008/06/02(月) 16:35:19
>>402
>>387なのか?
名前欄に質問した際のレス番号いれてくれないとわかりにくいぜ。
404デフォルトの名無しさん:2008/06/02(月) 19:12:12
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6772.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Vidual Studio2003
 [3.3] 言語:C++
[4] 期限:今日の23時59分59秒まで
[5] その他の制限: 繰り返し関数return使えば問題ないと思われます。よろしくお願いします
405デフォルトの名無しさん:2008/06/02(月) 19:16:40
406デフォルトの名無しさん:2008/06/02(月) 19:16:56
>>292>>334のものですが過去レポという最強のものを手に入れたのですがそれがC言語なのです。
出来れば今日中にお願いしたいのですが、↓のものをC++に変換して頂けないでしょうか?

#include<stdio.h>
#include<stdlib.h>
#include <math.h>

double markov(int K,double alfa,double *a_coeff,double *mem);

void main(void){
int i;
double *a_coeff,*mem,alfa,*x;
FILE *fp;

int N=1024,K=1;
char *file_name="output.dat";

if((fp=fopen(file_name,"w"))==NULL){
printf("%s can't open",file_name);
exit(-1);
}
x=new double [N];
a_coeff=new double [K];
mem=new double [K];
for(i=0;i<K;i++){
mem[i]=0.;
}
a_coeff[0]=0.1;
alfa=sqrt(1.-a_coeff[0]*a_coeff[0]);

for(i=0;i<N;i++){
x[i]=markov(K,alfa,a_coeff,mem);
407デフォルトの名無しさん:2008/06/02(月) 19:17:20
if(i!=0){
printf("%d\t%f\n",i,x[i]);
fprintf(fp,"%d\t%f\n",i,x[i]);}
}
printf("\n");
fprintf(fp,"\n");

delete[] mem;
delete[] a_coeff;
delete[] x;
fclose(fp);
}

double markov(int K,double alfa,double *a_coeff,double *mem)
{
int i;
double u1,u2,g,x=0.,PI=3.1415926;

u1=(1./(RAND_MAX+1.))*rand();
u2=(1./(RAND_MAX+1.))*rand();
g=sqrt(-2.*log(1-u1))*cos(2.*PI*u2);


for(i=K-1;i>=0;i--){
x+=a_coeff[i]*(mem[i]);
if(i-1>=0) mem[i]=mem[i-1];
}
mem[0]=alfa*g-x;

return (mem[0]);
}
408デフォルトの名無しさん:2008/06/02(月) 19:19:07
>>405
これみても分からない俺ガイル。。
タスケテ('A`)
409デフォルトの名無しさん:2008/06/02(月) 19:22:35
>>406
最初の三行を
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
に変えて、
void mainの行を
int main() {
に変えればOK。
410デフォルトの名無しさん:2008/06/02(月) 19:27:21
>>409
即レスありがとうございます!大変助かります
411デフォルトの名無しさん:2008/06/02(月) 19:34:04
>>410
>409でいいのか? 本当にいいのか?w
412デフォルトの名無しさん:2008/06/02(月) 19:41:53
>>411
どうなんでしょうか?ww
 >>409=>>411ですか?
413411:2008/06/02(月) 19:48:07
要は、>406の要求する「C++」が何を指しているのか、だな。
C++としてコンパイルできるだけでいいのなら、>409でいい。
iostreamを使わないといけないなら入出力周りを作り直す必要がある。
まぁまさか、この程度でオブジェクト嗜好に則ってクラス設計しろってことはないだろうけれど。
414デフォルトの名無しさん:2008/06/02(月) 19:55:19
>>413
なんか難しいんですけど、iostreamを使ったやり方だとかなり変更が必要ってことですか?
出来ればiostreamの方がいいのですが。
415371:2008/06/02(月) 19:59:19
>>372を見ましたがよくわかりませんでした…。
各関数単体でもよいのでよろしくお願いします。
416デフォルトの名無しさん:2008/06/02(月) 20:00:07
過去レポを手に入れたが理解できず、C++にコンバート依頼まで
するような相手にみんな親切だな。
他人のソースコードを許可無くうpしてんのかなあ
417デフォルトの名無しさん:2008/06/02(月) 20:01:41
>>415
/* 循環リストに要素を追加する */
void addlist(void)
/* 循環リストから要素を削除する */
void deletelist(void)
/* 循環リストの内容を表示する */
void showlist(void)
という関数が記載されていたが、ほしいのはこれじゃないってことー?
418デフォルトの名無しさん:2008/06/02(月) 20:02:37
>>414
つーか、>406もC++だね。古い流儀で書かれているけど。
寧ろ、new/deleteを使っているからCじゃコンパイルできない。
いい練習だと思って、自分でiostream版に書き換えたら?
419デフォルトの名無しさん:2008/06/02(月) 20:36:46
>>418
ちょっと考えましたけど自分にはちょっと・・・・。
甘えてばっかりいたらいけないと思いますが、提出期限が明日で時間的に厳しいので教えていただけるとうれしいです。
420デフォルトの名無しさん:2008/06/02(月) 20:52:26
>>419
提出期限がよくわからない。
結局いつが期限なの?
421415:2008/06/02(月) 20:53:44
>>417
欲しいのは大体それと同じなんですが、
例えばaddlistなら追加するデータがint型の整数じゃなくてData型の整数と文字じゃないですか?
それをどうやって渡すのかよくわからなくて・・・
422デフォルトの名無しさん:2008/06/02(月) 20:55:02
すいません >>269言語はC++でコンパイラはVisual Stadio2003です。宜しくお願いします。
423デフォルトの名無しさん:2008/06/02(月) 20:56:12
>>420
すいません、提出期限は明日です。
期限: 2008年6月1日24:00だったのは他のレポートもありましてそれの兼ね合いからです。
424デフォルトの名無しさん:2008/06/02(月) 20:57:04
>>421
addlistのなかで整数と文字を入力させて、それをData構造体に放り込めばよいのでは?
425デフォルトの名無しさん:2008/06/02(月) 21:04:39
>>424
いやそんなことしなくても>>372のサンプルで>>421で言ってることに十分対応できる。

>>371の実行例が最初よくわからんかったけど

(0) Insert a Node (1) Delete a Node (2) View the List (3) exit :

でコマンド待ち

0でエンターすると

No.:
Name:

入力になって終わると

(0) Insert a Node (1) Delete a Node (2) View the List (3) exit :

を再度表示なので



426デフォルトの名無しさん:2008/06/02(月) 21:07:50
>>423
明日の何時なの?ここでは「自分にはちょっと・・・・」とか言ってるのにさ、
自信満々に「作ってきましたあ!」って言って丸パクリの過去レポ出しちゃうの?

俺がその立場なら「…え?これで、、、マルコフ情報源、生成できる?ねぇ?」
とかカマかけられただけでションベン漏らすね。間違いない。
そんなこと想像したらもう今日寝れねえな。
427デフォルトの名無しさん :2008/06/02(月) 21:08:52
428デフォルトの名無しさん:2008/06/02(月) 21:13:14
>>427
ちょっと見てみたんですけど自分には難しすぎますので教授を
納得させられるようなコメントを記述してもらえませんか?
提出が明日なので何とかお願いします。
429デフォルトの名無しさん:2008/06/02(月) 21:17:39
>>371
作りかけ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6774.txt

addlistのところは参考程度にいじった
430427:2008/06/02(月) 21:20:13
>>428
俺はC++に直しただけであってマルコフなんたらってのは知らん
431デフォルトの名無しさん:2008/06/02(月) 21:22:06
しかし、勉強になるし面白いなw

社会に出たらほとんど組まないであろうニュートン法のプログラムとかw
さすがに微分積分とか苦手なんで無理w
432デフォルトの名無しさん:2008/06/02(月) 21:24:34
俺もこういう数学的な何かを活用する場面に出くわした事はないなー。
会社によってはそればっかりになるんだろうけどねw
433406:2008/06/02(月) 21:34:52
>>426
明日の4時です。でもその前に講義があるので実質明日の午前中までです。
ゼミの先生はあまり突っ込んで聞いてこないので大丈夫だと思います。

>>427
助かりました、本当にありがとうございます!

>>428
偽者が現れるとはw
434デフォルトの名無しさん:2008/06/02(月) 21:36:51
>>371の例題って不親切だよね。
リスト追加の際は表示する例が載ってるけど
ノード削除、ノードの表示に関する仕様が
無い。
どうやって作れっていうんだろうな。
435デフォルトの名無しさん:2008/06/02(月) 21:41:27
センスで
436デフォルトの名無しさん:2008/06/02(月) 22:17:42
[1] 授業単元:プログラミングU
[2] 問題文(含コード&リンク):0〜20までの実数の乱数を発生させなさい
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Vidual Studio2005
 [3.3] 言語:C++
[4] 期限:2008年6月3日12:00まで
[5] その他の制限:特になし
(double)rand() / ((double)RAND_MAX + 1)が0から1までの乱数で
(rand() %20 + 1)が0〜20までの整数の乱数というのはわかるのですがどう組み合わせればいいかお願いします。
437デフォルトの名無しさん:2008/06/02(月) 22:21:41
c言語というより、知能の問題な気がする
438デフォルトの名無しさん:2008/06/02(月) 22:31:08
>>436
>(double)rand() / ((double)RAND_MAX + 1)が0から1までの乱数で
>(rand() %20 + 1)が0〜20までの整数の乱数
こう思う時点で問題あり...
439デフォルトの名無しさん:2008/06/02(月) 22:31:16
>>436
ぜ、0から1までの乱数を20倍してみてはいかがでしょうか。。。
440デフォルトの名無しさん:2008/06/02(月) 22:33:59
>>371 は麻呂がクソースを書いている最中でおじゃ〜る
441デフォルトの名無しさん:2008/06/02(月) 22:36:14
rand()なんて使ったこと無いや。
ちなみにRAND_MAXの値って環境で変わるの?
442デフォルトの名無しさん:2008/06/02(月) 22:36:41
>>436さんに意見するな!!!!
443デフォルトの名無しさん:2008/06/02(月) 22:40:22
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6776.txt
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C言語
[4] 期限:出来るだけ早くが望ましいです。
[5] その他の制限: loadする際にmallocやfseekなど使用、構造体を3つ用意、グローバルなポインタも用意すること

かれこれ、1週間悩んでます。完璧にとは言いません、どなたか力を貸してください。
444デフォルトの名無しさん:2008/06/02(月) 22:42:20
>>443
悩んだなりに作ったソースプリーズ
445デフォルトの名無しさん:2008/06/02(月) 22:44:28
しかしコマンドでaddとかってPC88のころのAVGみたいだなw
446デフォルトの名無しさん:2008/06/02(月) 22:45:03
>>443
興味深いなあ。
生徒によって異なる実装が行われやすいような問題になってるね。
447デフォルトの名無しさん:2008/06/02(月) 22:47:03
コマンドの扱いってどうすればいいんだろ?
addt
とか間違った場合の挙動は?

何もsaveしてない状態でloadしたら?

設問ってこんないい加減なの?
448421:2008/06/02(月) 22:49:34
皆様の助言の下、なんとかそれっぽいものが作れました。
教えてくださった方々、本当にありがとうございました。

>>434
ですよね。結局自分で解釈して作ってみましたが・・・
449デフォルトの名無しさん:2008/06/02(月) 22:51:40
>>448
なんだ、できるんじゃんw
おつかれさーん
450デフォルトの名無しさん:2008/06/02(月) 22:58:16
>>444
すいません、学校のPCにソースが入ってて自宅のPCには入ってないんです。
主に学校で作業を行ってて、そこで分からなかった関数など自宅で調べてる感じなので、すいません。

>>445
そうなんですか?よく知らないんですけど、そうなってましたw

>>446
そうみたいです、だから早く出来た人は皆答え違ってるみたいです。

>>447
間違えた場合はもう1度メニューを出す形でお願いします。
saveについては自分も分かってません、同じ様なケース考えたんですがどう対処していいか分からなくて。
されないことを祈るというカタチでお願いしますw明日に先生に質問してみます。
設問かなりいい加減です、動作例とバイト数だけ書いてあって、後は自分で考えてって感じでしたorz

451デフォルトの名無しさん:2008/06/02(月) 23:01:26
>>448
麻呂がクソースを書くって言ったじゃないでおじゃるか〜〜
452デフォルトの名無しさん:2008/06/02(月) 23:01:58
>>450
んじゃまた明日ソース持っておいで。
途中まで作ってるならそれベースのほうが理解できるでしょ。
覚えてる範囲で再現してもいいけど、ちょっと難しいでしょ?
453デフォルトの名無しさん:2008/06/02(月) 23:02:52
[1] プログラミング
[3][3.1] XP
 [3.2] 不明
 [3.3] C
[4] 期限: 080604

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6775.txt

のプログラムを実行すると
1>c:\documents and settings\keita\my documents\visual studio 2008\projects\1212\1212\1212.cpp(13)
: error C3874: 'main' の戻り値の型には、'int' を使用してください。'stack' は使用できません

というエラーが起こります
454デフォルトの名無しさん:2008/06/02(月) 23:04:41
[1]授業単元 C言語
[2]問題 平均、分散、標準偏差を求めよ。
[3]環境 vista コンパイラ cygwin
[4]期限 明日の昼まで
[5]その他 ヘッダーはstdio.h stdlib.h math.hのみ?

情報が少ないかも知れませんがよろしくお願いします。
455デフォルトの名無しさん:2008/06/02(月) 23:06:00
>>453
main() → int main()
456デフォルトの名無しさん:2008/06/02(月) 23:06:08
>>453
main()
の戻りが消えてる。
void main()
とか
int main()
とかになるのが普通
457デフォルトの名無しさん:2008/06/02(月) 23:07:48
>>452
分かりやすいとは思いますが、ほとんど作ってないですorz
フローチャート作成にほとんどの時間費やしてやっとこさソース書いてみようってところです。
しかもそのフローチャート、合ってるか先生が休んだおかげで確認もしてませんorz
まぁ、ソース作成してる時にどう処理するんだ?って疑問が沢山出てきたんで明らかに間違ってるんでしょうが・・・。

明日また作成するので出来るところまでやってみようと思います。
明日、宜しくお願いします。
458デフォルトの名無しさん :2008/06/02(月) 23:08:04
>>436
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//0から1までの乱数
double RandBetweenFromOneToZero()
{
return (double)rand() / ((double)RAND_MAX + 1);
}
//0から19までの乱数
int RandBetweenFromZeroToTwenty()
{
return rand()%20;
}
int main()
{
double drdm;
srand((unsigned)time(NULL));
drdm = RandBetweenFromOneToZero() + RandBetweenFromZeroToTwenty();
printf("%lf \n",drdm);
return 0;
}
459デフォルトの名無しさん:2008/06/02(月) 23:13:34
>>457
お。いい子だーw
きっとちゃんとしたソースもらえると思うよ。がんばってね。

ってかさ、このスレって前からこんなピリピリした雰囲気だった?
なんか殺伐としてる。。2chだからといえばそうなんだけど><
460デフォルトの名無しさん :2008/06/02(月) 23:14:29
461448:2008/06/02(月) 23:14:34
>>451
自分のソースに自信がないので>>451さんのソースも見せていただけますか?
他にも作ってくれていた方がいたら見せていただけると有り難いです。
462デフォルトの名無しさん:2008/06/02(月) 23:15:35
今、カニ雑炊を食べ終わったから、書き続けているでおじゃる
463デフォルトの名無しさん:2008/06/02(月) 23:20:08
一休さんかよw
…まさかとは思うが、作ったものをまずうpしてみ?
足利将軍様はしばらくうp待ってみてくだされ
464 ◆tr.t4dJfuU :2008/06/02(月) 23:25:32
272に質問を書いたものです。やさしい職人さんに>>332のプログラミングを書いていただいたのですが、
画像は読み込めるのですが、RGB値を出す事が出来ませんでした。再びですが、どなたかよろしくお願いできませんか?
解決方法もともにおいえてください。以下に再び質問を欠かさせていただきます。

[1] 実験解析
[2] プログラムと同じフォルダ内のbmpファイル(256色)(200*300pix)をプログラム実行
時に読み込ませ,1pixごとにそのRGB値を調べさせてCSV形式で書き出すプログラム
[3] 環境
 [3.1] OS:Xp
 [3.2] BCC Developer
 [3.3] 言語 c
[4] 期限: 無期限ですが,できるだけ早いうちに宜しくお願いします.
[5] その他の制限:特にはありません.私は初心者なので,後学のために解説等が
含まれていたらうれしいです.
465448:2008/06/02(月) 23:29:00
466デフォルトの名無しさん:2008/06/02(月) 23:34:25
>>464
解説というかBMPのファイル仕様がこうなってる
http://www.kk.iij4u.or.jp/~kondo/bmp/

でも>>322のプログラムはヘッダ部分を決め打ちで読んでるな・・・
467 ◆tr.t4dJfuU :2008/06/02(月) 23:40:08
>>466
ということは、画像読み込みから変更したほうが良いという事なのでしょうか?
468316:2008/06/02(月) 23:43:09
>>323
>>328
どちらも実行できました!
>>338
追加実行できました。
みなさんありがとうございました!
469デフォルトの名無しさん:2008/06/02(月) 23:44:46
>>463
もう少し待ってたもう、今最後の free(); 処理の部分を書いているでおじゃ〜る
470デフォルトの名無しさん:2008/06/02(月) 23:50:59
[1] プログラミング演習
[2]
x.datというファイルがあり
その中には
1
4
5
6
16
8
9
,,,,,,,,,というような形式で数字がN個蓄えられている
このファイルを読み込み、中に入っている数字を配列x[i]の中に蓄え
x[0]からx[N]まで全て足した値を求めなさい
という問題です

言語:C言語

制限などはありません
よろしくおねがいします



[3] 環境
 [3.1] OS:Xp
 [3.2] BCC Developer
 [3.3] 言語 c
[4] 期限: 無期限ですが,できるだけ早いうちに宜しくお願いします.
[5] その他の制限:特にはありません.私は初心者なので,後学のために解説等が
含まれていたらうれしいです.
471470:2008/06/02(月) 23:52:23
すいません環境以下の方の部分は無視してください、ごめんなさい
472デフォルトの名無しさん:2008/06/02(月) 23:53:45
ttp://www13.plala.or.jp/kmaeda/winc/dos_pai.htm
の円周率を求めるプログラムで小数点以下が4桁で区切られてるんですけど何処で定義してるんでしょうか?
473デフォルトの名無しさん:2008/06/03(火) 00:16:55
>>455
>>456
迅速な回答ありがとうございます。
両方を試してみた結果
(12) : error C2628: 'stack' の後に 'int' を続けて記述できません(セミコロン ';' で区切ってあるか確認してください)。
(13) : error C3874: 'main' の戻り値の型には、'int' を使用してください。'stack' は使用できません
のようなエラーが出てしまします。
474454:2008/06/03(火) 00:21:41
>>460
ありがとうございます!
これでテストも乗り切れます
475デフォルトの名無しさん :2008/06/03(火) 00:23:47
476デフォルトの名無しさん:2008/06/03(火) 00:24:38
>>473
struct stack{
char list[STACKMAX];
int num_of_data;
};
にする
477デフォルトの名無しさん :2008/06/03(火) 00:38:14
>>470
#include <stdio.h>
#define N 7
int main()
{
int iary[N]={0};
FILE *fop = fopen("x.dat","r");
int i,sum = 0;
for(i = 0; i < N; i++){
fscanf(fop,"%d",&iary[i]);
sum += iary[i];
}
printf("sum = %d \n",sum);
return 0;
}
478デフォルトの名無しさん:2008/06/03(火) 00:43:37
479デフォルトの名無しさん:2008/06/03(火) 00:45:58
>>470
C勉強中です。突っ込みあればよろしくです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6782.txt
480デフォルトの名無しさん:2008/06/03(火) 00:47:04
>>470の人気にshit!
481470:2008/06/03(火) 00:55:37
477さん478さん479さん本当に、ありがとうございます。
コメント等が丁寧なおかげで私でも理解できそうです。ありがとうございます。
482470:2008/06/03(火) 00:56:27
すいませんsage忘れました。
483366:2008/06/03(火) 01:19:22
>>386
そうです
そのほか答えてくださった方もありがとうございます。規制で書き込み遅くなって申し訳ないです
484デフォルトの名無しさん:2008/06/03(火) 02:02:21
疲れたでおじゃる。麻呂のクソースは今日中にということで、寝るでおまる。
deleteのところが、ちと不完全で。先頭のレコードを消すと
バグったでおじゃる。
485デフォルトの名無しさん:2008/06/03(火) 02:07:48
[1] 授業単元:画像情報処理
[2] GIF形式の画像を8ビットにビットスライスし、最下位ビットプレーンの各画素を変更する手法で電子透かしを作りなさい。
各画素は0〜255の明るさの階調があり、それを1ずらすことによってデータを埋め込む。
例えば、画像の6行1列目〜6行8列目の画素に01010001というデータを埋め込む場合、
元の明るさのデータが「133 132 132 134 133 133 134 134」だとすると、
埋め込んだ後のデータが「134 133 132 135 134 134 134 135」となるよう、
0の場合偶数に、1の場合奇数にデータを変更するようなプログラムとしなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年6月9日 23:00まで
[5] その他の制限: 特になし

よろしくお願いします。
486デフォルトの名無しさん:2008/06/03(火) 02:22:25
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6783.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: MS VS2005
 [3.3] 言語: c++
[4] 期限: 2008/6/4
[5] その他の制限: 特に無し

駄目だ上手く組めない。。。。
宜しくお願いしますorz
487デフォルトの名無しさん:2008/06/03(火) 02:29:42
>>486
つstatic変数
488デフォルトの名無しさん:2008/06/03(火) 02:30:56
#include <stdio.h>
double kekkahozon( double i ){
static double j;
j+=i;
return j;
}
void main(){
double x;
int i;
for(i=1; i<=10; i++){
x = kekkahozon( (double) i );
printf("合計: %f\n", x);
}
}
489デフォルトの名無しさん:2008/06/03(火) 02:31:38
double kekkahozon( double d )
{
  static ret = 0;
  return ret += d:
}
490デフォルトの名無しさん:2008/06/03(火) 02:33:58
被った上にミスった
static double ret = 0;
491デフォルトの名無しさん:2008/06/03(火) 04:43:45
[1] 授業単元:プログラミング(C)
[2] 問題文(含コード&リンク):コマンドラインで指定したファイルの内容を
                  16進数で標準出力にダンプする
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Stdio
 [3.3] 言語: C
[4] 期限: 2008/06/04
[5] その他の制限: 特になし
492デフォルトの名無しさん:2008/06/03(火) 05:05:55
>>491
>>491 バグ入りだからな
#include <stdio.h>
int main(int argc,char **argv){
FILE *f;unsigned char paragraph[16];int read_c,i;
argc--;argv++;
while(argc--){
f=fopen(*argv++,"rb");
if(f){
do{
read_c=fread((void*)¶graph,1,16,f);
for(i=0;i<read_c;i++)printf("%02X ",paragraph[i]);
printf("¥n");
}while(read_c==16);
fclose(f);
}}
return 0;
}

493デフォルトの名無しさん:2008/06/03(火) 05:49:57
>>476
こんな初歩的なとこまでありがとうございました。

494デフォルトの名無しさん:2008/06/03(火) 08:33:42
C言語でsinのマクローリン展開を10項まで実行するぷろぐらむができない・・・
495デフォルトの名無しさん:2008/06/03(火) 09:12:54
頭悪いんだねw
496デフォルトの名無しさん:2008/06/03(火) 10:42:14
再度おねがいします。

[1] 授業単元:プログラミング
[2] 問題文:
 (1)int 型の配列 vx の要素に順に 0 以外の 5 つの整数をキーボードから読み込んで,
 (2)vx[0] から vx[4] の逆数(1/vx[0], ... ,1/vx[4])を順に double 型の配列 vy[0]からvy[4]に代入して
 (3)vy の要素を順に表示するプログラムを作成せよ.
 なお,(1)と(2)はひとつの for 文の中に含めても良いが,(3)は別のfor文を使って書け.
 配列 vy の型は double であり,計算も double で行うことに注意。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008/06/03
[5] その他の制限:特になし
497デフォルトの名無しさん:2008/06/03(火) 10:42:23
誰かまとめ宜しゅう
498デフォルトの名無しさん:2008/06/03(火) 11:07:05
>>496
#include <stdio.h>

int main(void)
{
int i, vx[5];
double vy[5];

for(i=0; i<5; i++) {
do {
printf("input vx[%d]:", i);
scanf("%d", vx + i);
} while(!vx[i]);
vy[i] = 1.0 / vx[i];
}

for(i=0; i<5; i++) printf("vy[%d] = %f\n", i, vy[i]);

return 0;
}
499デフォルトの名無しさん:2008/06/03(火) 11:10:12
>>474
どうでもいいけど、>460は仕様を満たしていないぞ。
500デフォルトの名無しさん:2008/06/03(火) 11:12:21
>>498
scnaf()に失敗した場合、vx[i]の値は不定だから好ましくないね。
つーか、失敗した後のフォローもしてないんだからそのdo-while自体が無意味だと思う。
501500:2008/06/03(火) 11:14:38
あー、0を除外しないといけないのか。じゃぁ>498でもいいや。失敬。
502デフォルトの名無しさん:2008/06/03(火) 11:22:24
入力ミスって無限ループが落ち
503デフォルトの名無しさん:2008/06/03(火) 11:23:33
正直、どうでもいいよ。
504デフォルトの名無しさん:2008/06/03(火) 11:28:32
「3がつく」をどう判定していいのか判らないのでお願いします。

[1] 授業単元:
C/C++演習

[2] 問題文(含コード&リンク):()
・「世界のナベアツ」問題を実装せよ。

コマンドライン引き数で指定した数値が「3の倍数」か「3がつく」かを判定し、
該当した場合は「アホ」と出力すること。
尚、数値以外を指定された場合は問答無用で「どアホ」と出力すること。
・ポイント
*コマンドライン引き数の取り扱い
*文字列数値変換関数の利用
*標準出力関数の利用

[3] 環境
 [3.1] OS: (Windows/Linux/等々)
OSに依存しないこと

 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
取り敢えず、gccを使えとのことです

 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
どちらでも可

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
今日の夕方

[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特に指定がないので標準関数だけでお願いします
505デフォルトの名無しさん:2008/06/03(火) 11:29:31
宿題スレでscanfにケチつけるってw
506デフォルトの名無しさん:2008/06/03(火) 11:30:37
>>505
>503
507デフォルトの名無しさん:2008/06/03(火) 12:42:08
508デフォルトの名無しさん:2008/06/03(火) 13:06:13
[1] 授業単元: C
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6784.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 2008年6月5日17:00まで
[5] その他の制限: 関数使用
なるべくシンプルなものだとありがたいです>< よろしくお願いします!
509デフォルトの名無しさん:2008/06/03(火) 13:20:43
Cygnusなんてコンパイラあったっけ?
510デフォルトの名無しさん:2008/06/03(火) 13:28:30
>>509
学校から渡されました。
Cygnus.batでコンパイルします。
511デフォルトの名無しさん:2008/06/03(火) 13:41:49
[1] 授業単元: C++
[2] 問題文 
2008年は閏年(うるうどし)である。
現在の暦において閏年は,
地球が太陽の周りを公転する周期が,
約365.24日であることに由来する調整法である。
閏年でない年は平年という。
キーボードから西暦を入力し
入力された年が閏年かどうか判定する
プログラムを作成しなさい
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++/
[4] 期限: 6月3日5時まで
[5] その他の制限: なし。
512デフォルトの名無しさん:2008/06/03(火) 13:42:13
[1] 授業単元: C++
[2] 問題文
今年(2008年)はオリンピックイヤー
(オリンピック開催年)である。
8月8日から24日までにかけて,中国の北京で
夏季オリンピック第29回大会が開かれる。

次の説明はオリンピックの開催年についての説明である。
キーボードから変数year に入力された年号について,
開催された年に第何回大会が開催(中止)されたか
画面に表示するプログラムを作成しなさい。
またオリンピックイヤーでない場合は、
画面にその旨メッセージを出力すること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++/
[4] 期限: 6月3日5時まで
[5] その他の制限: なし。

2問ありますが、よろしくおねがいします。
513デフォルトの名無しさん:2008/06/03(火) 13:42:22
誰か、エスパー頼む
514デフォルトの名無しさん:2008/06/03(火) 13:42:50
>>508
#include <stdio.h>
#include <math.h>

#define PI 3.14159265358979323846

int check_side(int side) { return side > 0; }
int check_angle(int angle) { return 0 < angle && angle < 180; }

int main(void)
{
int side[2], angle, i;
for(i=0; i<2; i++) {
while(1) {
printf("辺%d(cm):", i+1);
scanf("%d", side + i);
if(check_side(side[i]))break;
printf("0より大きい整数を入力してください。\n");
}
}
while(1) {
printf("はさむ角(degree):");
scanf("%d", &angle);
if(check_angle(angle)) break;
printf("0より大きく180より小さい整数を入力してください。\n");
}
printf("<計算結果>\n面積(cm×cm):%f", side[0]*side[1]*sin(angle*PI/180)/2);
return 0;
}
515デフォルトの名無しさん:2008/06/03(火) 13:46:00
[1] 授業単元: C++
[2] 問題文
キーボードから入力される2つの整数を変数a、bに格納し、
aの0乗からaのb乗までを順に出力するプログラムを作成せよ。
ただし変数bは0以上の整数が入力されるまで、入力を繰り返すものとする。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++/
[4] 期限: 6月10日5時まで
[5] その他の制限: なし。

[1] 授業単元: C++
[2] 問題文
キーボードから2以上の整数を入力し、その数が素数であるかどうかを判断するコードを記述せよ。
ただし入力される数値が2以上でない場合、繰り返し入力を求めること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++/
[4] 期限: 6月10日5時まで
[5] その他の制限: なし。
連投すいません。
まだありました^^;
516デフォルトの名無しさん:2008/06/03(火) 13:48:25
>>514
ありがとうございました。助かります。
517デフォルトの名無しさん:2008/06/03(火) 13:52:00
>>516
int check_side(int side) { return side > 0; }
int check_angle(int angle) { return 0 < angle && angle < 180; }
ここに突っ込まれると思うからちゃんと理解しとけよ
518デフォルトの名無しさん:2008/06/03(火) 13:54:14
         ____
       /  ./  /|    こちらエスパー
     _|  ̄ ̄ ̄ ̄.|  |___  今日はどうも勘が鈍ってる
   /  |_____.|/  / 誰か援助を頼む
    ̄ ̄~  |し  |  ̄ ̄
        し⌒ J
519デフォルトの名無しさん:2008/06/03(火) 13:55:27
>>511
#include <iostream>

int main()
{
int year;
std::cout << "西暦を入力:";
std::cin >> year;

if ( year % 4 == 0){
if ( year % 100 == 0){
if ( year % 400 == 0)
std::cout << "西暦" << year << "年は閏年" << std::endl;
else
std::cout << "西暦" << year << "年は平年" << std::endl;
}else
std::cout << "西暦" << year << "年は閏年" << std::endl;

}else
std::cout << "西暦" << year << "年は平年" << std::endl;

return 0;
}
520デフォルトの名無しさん:2008/06/03(火) 13:57:21
>>512
>次の説明はオリンピックの開催年についての説明である。
説明どこだよ?
521デフォルトの名無しさん:2008/06/03(火) 14:04:06
1896年に第1回大会が開催され以後4年毎に開催(中止)された。
かな
開催か中止かも判定するなら6,12,13回大会は中止
522デフォルトの名無しさん:2008/06/03(火) 14:07:09
523デフォルトの名無しさん:2008/06/03(火) 14:12:00
開催年だけならこれでいいかな

#include <iostream>

int main()
{
int year;
std::cout << "西暦を入力:";
std::cin >> year;

int y = 2008 - (29 - 1 ) * 4; // 第一回オリンピック開催年

if ( year % 4 == 0){
if( year - y >= 0 )
std::cout << "西暦" << year << "年は第" << ( ( (year - y) / 4) + 1 ) <<"回オリンピック開催年" << std::endl;
else
std::cout << "西暦" << year << "には開催されていない" << std::endl;
}else
std::cout << "西暦" << year << "には開催されていない" << std::endl;

return 0;
}
524デフォルトの名無しさん:2008/06/03(火) 14:13:45
もう過去のオリンピックが開催された年のデータから参照するのが望ましい。
何か普遍的な、イレギュラーの無い法則で算出するのは無理ぽ。
過去は変えられないのだよ、ワトソン君。
525デフォルトの名無しさん:2008/06/03(火) 14:15:45
526デフォルトの名無しさん:2008/06/03(火) 14:35:03
[1] 授業単元:
機械学習論
[2] 問題文(含コード&リンク):()
@
クラス1、クラス2の2種類の属性をもつサンプル
を含むデータセットにおいて、クラス1のサンプル
の個数がc1,クラス2のサンプルの個数がc2である
ものとする。このデータセットから1つのサンプル
を取り出してそのクラスを観測する際、得られる平
均情報量を計算する関数を作成してください。また
関数は次のようにしてください。
Double info(int c1, int c2)
A
情報利得を計算する関数を作成してください。
[3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限: 2008/6/4/PM11:00までです。よろしくお願いします。m(_ _)m
527デフォルトの名無しさん:2008/06/03(火) 14:35:15
>>515
#include <iostream>
int main()
{
int a, b;
std::cout << "aを入力してください:";
std::cin >> a;
do {
std::cout << "bを入力してください(bは0以上):";
std::cin >> b;
}while(b <= 0);

for(int i=0,c=1; i<=b; i++, c*=a) std::cout << a << "の" << i << "乗は" << c << std::endl;
}
528512:2008/06/03(火) 14:47:01
問題文抜けてました。
・1896年の第1回大会以来、4 年に1 度開催されている。
・1916年の第6回大会,1940年の第12回大会,1944年の第13回大会は
 世界大戦の影響で中止された。ただし中止の場合も回数は数える。
・1906年には,近代オリンピック制定10周年記念大会が開催された。
 ただし特別大会のため,回数には数えない。
・次回は2012年、第30回大会がロンドンで開催予定。
529デフォルトの名無しさん:2008/06/03(火) 14:55:42
530デフォルトの名無しさん:2008/06/03(火) 15:13:40
2008年は中止ですね?
531デフォルトの名無しさん:2008/06/03(火) 15:18:14
>>528
switch(year) {
case 1896: printf("第1回大会開催\n"); break;
case 1900: printf("第2回大会開催\n"); break;
case 1904: printf("第3回大会開催\n"); break;
case 1908: printf("第4回大会開催\n"); break;
case 1912: printf("第5回大会開催\n"); break;
case 1916: printf("第6回大会中止\n"); break;
// 略
case 2004: printf("第28回大会開催\n"); break;
case 2008: printf("第29回大会開催予定\n"); break;
case 2012: printf("第30回大会開催予定\n"); break;
default: printf("%d年には開催(開催予定)されていない\n", year); break;
}
532デフォルトの名無しさん:2008/06/03(火) 15:27:18
開催、中止はこういうの作って判断すればいい

bool isKaisai( int year )
{
 int n[] = { 1916,1940,1944 };
 for( int i = 0; i < 3; ++i ){
   if( n[i] == year )
      return true;
 }
 return false;
}
533デフォルトの名無しさん:2008/06/03(火) 15:55:19
#include <stdio.h>

void main()
{
int year, month, day, weekday;
for (year = 2001; year <= 2100; year++){
for (month = 1; month <= 12; month++){

weekday = ((year + year/4 - year/100 + year/400 + (13*month+8)/5 + 13) % 7)+8;
if (weekday == 13)
printf("%4d年 %2d月 %2d日\n",year, month, weekday);
}
}
}
この実行結果の13日の金曜日の個数はどうやって求めればいいですか?
534デフォルトの名無しさん:2008/06/03(火) 15:59:33
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):21世紀(2001年〜2100年)の100年の間に、「13日の金曜日」は何回出現するだろうか。

<考え方>

2001〜2100 の間を for文 で繰り返す。

さらに、それぞれの年に1〜12月の間を for文 で繰り返す。つまり、2重ループにする。

   for (year = 2001; year <= 2100; year++) {
      for (month = 1; month <= 12; month++) {


     }
   }

2重ループの中では、その月の13日が金曜日であるかどうかを、ツェラー公式を使って判定する。金曜であれば、それをカウントしておく。

最後に、カウントした数を表示する。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2003
 [3.3] 言語: C++
[4] 期限: 2008年06月10日14:40まで
535デフォルトの名無しさん:2008/06/03(火) 16:10:03
536デフォルトの名無しさん:2008/06/03(火) 19:32:54
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
例題7-2 に以下の事項を加えたプログラムを作成せよ。
@キーボードから与えられた整数データX を順序リストから削除する関数DeleteCell(int x)。
但し、削除したセルが使用していたメモリを解放するようDeleteCell 関数内にfree 関数を用
いること。
A整数データの入力に先立って、リストの操作メニューとして以下の操作メニューを表示する。
・キーボードより i が入力された場合 ⇒ データを挿入
・キーボードより d が入力された場合 ⇒ データを削除、但し該当するデータが存在しない場
合には『そのような数字はありません』と表示
・キーボードより p が入力された場合 ⇒ その時点でのリストを表示
・キーボードより x が入力された場合 ⇒ プログラム終了
・その他のキーが入力された場合 ⇒ 警告を表示

例題7-2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6789.txt
[3] 環境
 [3.1] OS:Vista
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:明後日の朝まで
[5]
よろしくお願いします。
537デフォルトの名無しさん:2008/06/03(火) 20:10:05
いろんな学校が結託してるかのように同じ問題がバンバン出て来るんだが、
このスレを見つけた少数の学校の生徒が続々と来てるだけかも?とおもった。
538デフォルトの名無しさん:2008/06/03(火) 20:20:47
非常勤講師でーす^^
539デフォルトの名無しさん:2008/06/03(火) 20:28:38
実は講師もまざってて自分の生徒用の問題をここで作らせてたりしてなw
540デフォルトの名無しさん:2008/06/03(火) 20:31:30
頻出問題をまとめたら割とまとまりそうだよね
過去の回答群も載っけて好きなの使え的な
541デフォルトの名無しさん:2008/06/03(火) 20:33:02
それこそwikiでも立ち上げて貼っておけばいいかもな。
542デフォルトの名無しさん:2008/06/03(火) 20:37:00
[1]授業単言:C言語
[2]問題文
要素数noであるint型の配列vcの要素の最小値を返す関数
int min_of(const int vc[],int no)の作成の仕方
[3-1] windows
[3-2] gcc
[3-3] C言語
[4] 明日までです
よろしくお願いします。
543デフォルトの名無しさん:2008/06/03(火) 20:46:42
int min_of(const int vc[],int no){
int i;
int a=vc[0];
for(i=1;i<no;i++)
if(vc[i]<a) a=vc[i];
return a;
}
544デフォルトの名無しさん:2008/06/03(火) 21:00:12
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):成績表のプログラムを可変長配列を用いて作成しなさい
詳細は↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6790.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: どちらでも可 のいずれか
[4] 期限: 2008年6月3日
[5] その他の制限: 特にないです。
545デフォルトの名無しさん:2008/06/03(火) 21:00:31
>>542ですが、メイン文の方も書き方がわからないので教えていただけませんか?
546デフォルトの名無しさん:2008/06/03(火) 21:02:09
↑間違えました。>>543の者です。
547デフォルトの名無しさん:2008/06/03(火) 21:03:34
#include <stdio.h>
#define array_no(a) sizeof(a)/sizeof(a[0])

int min_of(const int vc[], int no);

int main()
{
int vc[] = {78, 82, 32, 48, 63, 99, 105, 45, 67, 20, 862, 714, 60, 19, 52}; //適当な配列

printf("最小値:%d\n", min_of(vc, array_no(vc)));

return 0;
}

int min_of(const int vc[], int no)
{
int min = vc[0];
int i;
for (i = 0; i < no; ++i)
if (min > vc[i]) min = vc[i];
return min;
}
548デフォルトの名無しさん:2008/06/03(火) 21:11:31
>>541
>>1
もうWikiあるwww
そこへのアンカーでガンガン済ませるのも手か
549デフォルトの名無しさん:2008/06/03(火) 21:31:30
そろそろ、というかもう前々から言っているでおじゃるが
定石、ありきたりのパターンをまとめたサイトを作らないかでおじゃる?
550デフォルトの名無しさん:2008/06/03(火) 21:32:49
[1]授業単言:C言語
[2]問題文
要素数noであるint型の配列vc2の並びを逆順にしたものを配列vc1に格納する関数
void intary_rcpy(int vc1[],const int v2[],int no)の作成
[3-1]os windows
[3-2]gcc
[3-3]C言語

どなたか教えてもらえませんか?
551443:2008/06/03(火) 21:47:27
昨日の443です。
とりあえず、ソースを作成してみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6791.txt

こちらが問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6776.txt

まだまだ初心者で型やらもうしっちゃかめっちゃかだし、色々と突っ込みどころ満載です。
必要な分だけメモリを取れと言われているのにこのまま作ったら内部変数でドカッと持ってくやり方になっちゃうし・・・。

宜しくお願いします。
552側近中の側近 ◆0351148456 :2008/06/03(火) 21:49:34
>>550
(っ´▽`)っ
void intary_rcpy(int vc1[],const int v2[],int no)
{
  int i;
  for(i = 0; i < no; i++){
    vc1[i] = v2[no - i - 1];
  }
  return;
}
553デフォルトの名無しさん:2008/06/03(火) 21:51:28
void intary_rcpy(int vc1[],const int vc2[],int no){
int i;
for(i=0;i<no;i++)
vc1[i]=vc2[no-i-1];
}
554デフォルトの名無しさん:2008/06/03(火) 21:55:53
>>551
問題からは共通部分がtypeとidだけのように思ってたんだけど、
unitというよくわからないものに4バイト取ってるのはなぜ?
555デフォルトの名無しさん:2008/06/03(火) 22:09:55
>>551
ユニット長ってのがあってタイプ毎のサイズが書かれたものがあったので構造体の中に入れたんですけど
多分それいらないみたいなんでないこととして考えても大丈夫だと思います。
消し忘れてました、すいません。
556デフォルトの名無しさん:2008/06/03(火) 22:16:46
>>446で、人によって違うのができそうだなあといったのは
まさにこの構造体をどう作るかだったんだけど。
もしかしてload時に読み込むファイルのサンプルが提示されてたりします?
557536:2008/06/03(火) 22:27:55
Deleteの部分だけでも自分で作って見ましたが、エラーがでてしまいます…
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6792.txt
558デフォルトの名無しさん:2008/06/03(火) 22:28:09
>>556
いえ、サンプルはないです。
loadした場合、以前にこのプログラムで打ち込んだファイルを呼び出してまた足していくことが出来る、
ゲームのコンテニューみたいなものだと思ってくれると分かりやすいとは思います。
559デフォルトの名無しさん:2008/06/03(火) 22:45:22
>>549
>>1にあるwikiは誰でも編集できるぞ

つかここ1年くらいまとめサイトなんて
話題にした記憶が無いんだが
前々って何年前だよ
560デフォルトの名無しさん:2008/06/03(火) 22:50:25
>>559
おじゃるが言うくらいだから平安頃からじゃない?
561デフォルトの名無しさん:2008/06/03(火) 22:51:20
ttp://www23.atwiki.jp/homework/pages/11.html#id_fc5becfb
> strcpy(s, " (^ω^ ) ピザキメェおwww ");
誰だよw
562デフォルトの名無しさん:2008/06/03(火) 23:05:30
リスト、単方向、双方向、ノードも誰か追加してくれYO!
563デフォルトの名無しさん:2008/06/03(火) 23:06:55
>>562
このスレか1個前くらいに線形リストあったと思うから追加すれば?
564デフォルトの名無しさん:2008/06/03(火) 23:12:34
[1] 授業単元:物質科学実験(パソコンによる計測制御入門)
[2] 問題文(含コード&リンク):
@bとcを1バイトの変数としたとき、
b = (b & 0x07) << 4;
c = (c & 0x8F) | b;
というプログラムがどの様なことをやっているか説明せよ。
この式に現れる<<という演算子は、2進数で表示された数値(ビット)を
左にシフトさせる働きをする。(例えば、b=(00000001)bとすると、b<<1は
左に1だけシフトした(00000010)bを表す。)
また、&と|という演算子はそれぞれ「ビット AND」「ビット OR」と呼ばれ、
2つの数値のビット毎のAND(各ビットのどちらかが0なら結果も0になる)
及びOR(各ビットのどちらかが1なら結果も1になる)を得るために用いる。
Abを16ビットの変数とする。その最下位ビットから3番目と6番目をクリアする
(0にする)プログラム(ルーチン)を、@に従って書け。
[3] 環境
C言語
[4] 期限:今週中
[5] その他の制限:ないと思います。
565347:2008/06/03(火) 23:30:47
エラーメッセージが多すぎてだるい(';')
開発環境なんて、自宅にあっても使わない(';')
プログラマーもう嫌wwwwwwwwwwwwwwwwww
566デフォルトの名無しさん:2008/06/04(水) 00:31:23
ここの問題をまじめにやったら、かなり勉強になるだろう。。。。

回答もあるし(ないのもあるみたいだが・・・)
567デフォルトの名無しさん:2008/06/04(水) 01:23:18
質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

半径rの円に内接および外接する正n角形の面積を求めよ
568デフォルトの名無しさん:2008/06/04(水) 01:28:57
>>567
テンプレの使い方が違うよwww
569デフォルトの名無しさん:2008/06/04(水) 01:30:16
>:()
この顔文字可愛いな
570デフォルトの名無しさん:2008/06/04(水) 01:32:21
567です間違えて途中で送信してしまいました
rは実数nは整数sは実数で表してください
明日いっぱいですcでお願いします
571デフォルトの名無しさん:2008/06/04(水) 01:38:24
明日いっぱいってことは6/5いっぱいってことでいいのか?
572デフォルトの名無しさん:2008/06/04(水) 01:46:27
567ですこの課題は初心者用だと思うのでどちらでも問題ではないと思いますお願いします
573デフォルトの名無しさん:2008/06/04(水) 01:47:12
#include <stdio.h>
#include <math.h>

double circumscribe(double r, int n)
{
return r * r * tan(M_PI / n) * n;
}
double inscribe(double r, int n)
{
return r * r * sin(M_PI*2/n) * n / 2;
}

int main(void)
{
int n;
double r;

printf("nを入力してください:");
scanf("%d", &n);
printf("rを入力してください:");
scanf("%lf", &r);

printf("半径%fの円に外接する正%d角形の面積は%f\n", r, n, circumscribe(r, n));
printf("半径%fの円に内接する正%d角形の面積は%f\n", r, n, inscribe(r, n));

return 0;
}
574デフォルトの名無しさん:2008/06/04(水) 02:05:51
567です職人さんありがとうございました
575デフォルトの名無しさん:2008/06/04(水) 02:06:40
質問です

巡回セールスマン問題において、Nearest Neighbor法を用いた2-opt法は他の方法と比べて
メリットってありますか?
他の方法というのは、焼きなまし法やタブーサーチなどのことです。

λ-opt法を更に改良したのがタブーサーチなどの方法なのでただの2-opt法にメリットなど無いと
考えているのですが、教授に2-opt法が他の方法より優れている点を考えてこいと言われて困っています。
576デフォルトの名無しさん:2008/06/04(水) 02:11:14
>>575
スレ違い
宿題だと言い張るなら>>1読んで書き直し
577デフォルトの名無しさん:2008/06/04(水) 02:15:41
>>575
数学板の方がふさわしいかと
578デフォルトの名無しさん:2008/06/04(水) 02:48:31
>>557 適当に加筆修正
void DeleteCell(int x)
{
CELL *p,*q;
p=q=&head;
if(p==NULL){
printf("データがありません.\n");
return;
}
if(p->data==x){
p=p->next;
free(q);
return;
}
for(;p->next!=NULL;q=p,p=p->next){
if(p->data==x){
q->next=p->next;
free(p);
return;
}
}
printf("%d:ありません\n",x);
}
579デフォルトの名無しさん:2008/06/04(水) 03:14:46
:< :( :) :l :@ :* :8
580デフォルトの名無しさん:2008/06/04(水) 04:42:33
つまんねwww
581デフォルトの名無しさん:2008/06/04(水) 06:51:54
"""
582デフォルトの名無しさん:2008/06/04(水) 06:54:18
";:
583デフォルトの名無しさん:2008/06/04(水) 06:58:09
::.
584デフォルトの名無しさん:2008/06/04(水) 08:39:31
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
main関数の引数として小数あるいは整数を入力すると、
それらの平均値を計算して、小数点以下第2位まで表示するようなプログラムを作成せよ.
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン:cl Windws visual studio
 [3.3] 言語:C 言語
[4] 期限: 2008年6月4日19:00まで]
[5] その他の制限: 特にありません。

ご解答よろしくお願いします。
585584:2008/06/04(水) 08:41:43
その他の制限に追加があります。
提出するソースファイルのファイル名を、自分の名字(アルファベット)に拡張子cをつけたものにすること。

よろしくお願いします。
586デフォルトの名無しさん:2008/06/04(水) 08:48:51
>>526をどうかお願いしますm(__)m
587デフォルトの名無しさん:2008/06/04(水) 09:20:55
>>584
#include <stdio.h>

int main(int argc, char *argv[]){
int i;
double n, sum=0;
for(i=1; i<argc; i++){
sscanf(argv[i],"%lf",&n);
sum += n;
}
printf("%-10.2f\n",sum/(argc-1));
return 0;
}

実行例:
./a.out 3 5.6 8.912
5.84
588デフォルトの名無しさん:2008/06/04(水) 10:13:41
>>586
課題の意味がよくわかんないす。観測とか。

情報利得というのはこれかなあと思うけど確信がもてない。
http://www.center.nitech.ac.jp/~nakano/%BE%F0%CA%F3%CD%F8%C6%C0.html
なんもついてないΣってどうやって計算するの?

てことでもすこし詳しく書けば回答できるかも。
589378:2008/06/04(水) 10:23:16
>>380>>381
回答ありがとうございました。
リンク先によると、要素数はTopポインタとBottomポインタの差をセルバイト幅で
割ると取得できるとありますが、用途について制限かけるときとは具体的にどのような
ときでしょうか。よろしくお願いします。
590デフォルトの名無しさん:2008/06/04(水) 11:20:01
>>589
リスト構造では先頭と末尾のポインタの差を出してもどうにもならないよね。

用途は制限かけたいときに使えるとかじゃないの?

用途は深さを制限したいときに使えるとかじゃないの?
591デフォルトの名無しさん:2008/06/04(水) 12:22:29
>>587

ありがとうございます!!!!!!!
592 ◆DuoCt8/SKk :2008/06/04(水) 15:54:16
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6793.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 6.0
 [3.3] 言語:C
[4] 期限:6/5
[5] その他の制限:ポインタ,構造体を使用して簡略化.
よろしくお願いします!!
593デフォルトの名無しさん:2008/06/04(水) 16:06:56
切符の子か。
ちょっと変えりゃすむだろ、と思わんでもないけどね。
今回は<おもな道筋>がないようなので柔軟な仕組みにしたほうが
いいんだろうけど、>>132のスタイルはだめなんしょ?
594デフォルトの名無しさん:2008/06/04(水) 16:08:55
と思ったら道筋あったー!
だめぽ。
595 ◆DuoCt8/SKk :2008/06/04(水) 16:41:06
>>593
できるだけ柔軟な仕組みの方がいいです.
>>132は少々複雑すぎてしまい・・・読んでも理解できないんです(泣)
再びよろしくお願いします!
596536:2008/06/04(水) 16:42:09
Deleteの部分は教えてもらって分かりましたが
続きがどうしても分かりません
どなたかお願いできないでしょうか?
597デフォルトの名無しさん:2008/06/04(水) 16:42:20
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク)
凸包の構成
ttp://www.ccad.sist.chukyo-u.ac.jp/~mito/ss/program/C/DialogBase/algo/Graham/index.htm
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:emacs
 [3.3] 言語:C
[4] 期限:6/14
[5] その他の制限:なし
やり方自体の指定はありません。参考URLの感じのものをCで作るそうです。よろしくお願いします。
598デフォルトの名無しさん:2008/06/04(水) 16:44:52
>>595
道筋ベースでやるよりもコマンドベースでやるほうが柔軟なわけで
ミルク増やして氷無しにして、やっぱりミルク減らす、とかの時に
コマンドに応じた関数を呼び出して状態を保持しておくのが楽なんだ。

道筋ベースだとユーザがやりたいことをやりたいときに行えない
仕組みになるしょ。
599デフォルトの名無しさん:2008/06/04(水) 16:48:44
複雑で分からない、と言う前にどこが分からないか言ってみるとかは?
前回のに手を加えた結果があるだろうからそれ載せてみると
どう成長したかも見えるだろうし。

ってそれはそれで相談スレの役割のような気もしだしたorz
600 ◆DuoCt8/SKk :2008/06/04(水) 16:50:10
>>598
とりあえず道筋はもらったプリントのまま書いたのですが,やはり
そこまでは求められていないということなのでしょうか?
僕も>>598さんのいう意見に賛成なので,是非コマンドベースでお願いします.
601586:2008/06/04(水) 16:53:01
>>588

@が平均情報量を求めるプログラムをつくる
平均情報量=
-(c1/c1+c2)*{log2(c1/ c1+c2)} -(c2/c1+c2)*{log2(c2/ c1+c2)}


Aが情報利得を求めるプログラムをつくる
情報利得=
-(c1/c1+c2)*{log2(c1/ c1+c2)} -(c2/c1+c2)*{log2(c2/ c1+c2)}
+(c1/c1+c2)*(c1/c1+c2)*{log2(c1/ c1+c2)}
+(c2/c1+c2)* (c2/c1+c2)*{log2(c2/ c1+c2)}

おそらくこれを求めるプログラムをつくればいいと思います。
どうか@だけでも至急お願いしますm(_ _)m
わかりにくくてすいません。
602 ◆DuoCt8/SKk :2008/06/04(水) 16:54:59
>>599
具体的にはどのように表示すればいいのかが分からないということなのでしょうか・・・
先生も何か例を書いて下さればわかりやすいのに・・・とも思っています.
例を書かないということはそれぞれ工夫してプログラムを組むのを期待しているのでしょうか?
正直同級生も>>132のレベルにはまだ一部の人たちしか達していないと思われます.
603デフォルトの名無しさん:2008/06/04(水) 17:13:30
>>601
ん?ってことなら、
#include <math.h>
double info(int c1, int c2)
{
double _c1 = c1;
double _c2 = c2;
return -(_c1/_c1+_c2)*log(_c1/_c1+_c2) - (_c2/_c1+_c2)*log(_c2/_c1+_c2);
}
でいいんでないの?
604デフォルトの名無しさん:2008/06/04(水) 18:58:16
605604:2008/06/04(水) 19:01:55
よく見たらつり銭切れのときにお金がどんどん減ってしまうな
元の値をコピーしておかないとだめだ
606デフォルトの名無しさん:2008/06/04(水) 19:33:11
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
全部で3つなのですが
1. 以下のプログラムを作成
• 以下の数列を0〜20まで表示
• 数列は以下の通りとする
• a[0] = 0.01, a[1] = 0.1, a[2] = 1.0
• a[n+1] = a[n] + a[n-1] + a[n-2]
• プログラムを実行するとa[0]〜a[20]までの値が改
行区切りで表示されること
2. 以下のプログラムを作成
• キーボードから整数値を読み込み、入力された整数
値が素数であるか判定する
• 以下のとおり表示する
• 入力値が素数の場合”prime number”
• 入力値が素数以外の場合”not prime number”
3.以下のプログラムを作成
• 3x3マスのマルバツゲームのボードを作成
• ○側と×側が交互に2次元座標上の位置を入力
• 入力後、毎回ボードを表示する
• たて、よこ、斜めのいずれかに○か×が3つ並んだ
時点でプログラムを終了
• マスが埋まった場合もプログラムを終了
[3] 環境
 [3.1] OS: Windows
 [3.2] MINGW32
 [3.3] 言語:C
[4] 期限: 6月13日
[5] その他の制限: なし
回答のほど、よろしくお願いしますm(_ _)m
607デフォルトの名無しさん:2008/06/04(水) 19:34:53
>>606が読みにくくてすみません
改行ができませんでした・・・
608デフォルトの名無しさん:2008/06/04(水) 19:51:21
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):()
10マスx10マスの迷路のスタートからゴールまでの最短経路を出力するプログラムを作れ。

※1.迷路は10行のテキストファイルで提供され,Sがスタート,Gがゴール,*が壁,@が通路で記録されている。
※2.進み方は上下左右1コマずつとし,斜めには進めない。
※3.迷路はかならずしもゴールできるとは限らない。

[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 6月18日
[5] その他の制限:
前の授業で再帰的な関数というのを習ったので、
それを使って解くのが求められている回答だと思います

よろしくお願いします
609デフォルトの名無しさん:2008/06/04(水) 20:07:13
>>606
すみませんコンパイラは
gccでした
610デフォルトの名無しさん:2008/06/04(水) 20:21:28
>>606
(1)
int print_20(){
int i;
double a[21]={0.01, 0.1, 1.0};
for(i=3; i<=20; i++){ a[i] = a[i-1] + a[i-2] + a[i-3]; }
for(i=0; i<=20; i++){ printf("%f\n",a[i]); }
return 0;
}

(2)
int prime_check(){
int i=2, n;
printf("prime check for no>>");
scanf("%d",&n);
while(i*i<n){
if(!(n%i)){break;}
i++;
}
printf("%s\n",(i*i>n)?"prime number":"not prime number");
return 0;
}
611デフォルトの名無しさん:2008/06/04(水) 20:25:06
>>606
1.
#include<stdio.h>

int main(void){
double a[21]={0.01, 0.1, 1.0};
int n;

for(n=2;n<20;n++) a[n+1]=a[n]+a[n-1]+a[n-2];
for(n=0;n<=20;n++) printf("%f\n", a[n]);

return 0;
}
612デフォルトの名無しさん:2008/06/04(水) 20:56:55
>>603
ありがとうございます!
C1、C2の入力値を入れるようにしたいのですが後これにどう付け加えればよいのでしょうか?
613デフォルトの名無しさん:2008/06/04(水) 21:26:02
>>606
> 3x3マスのマルバツゲームのボードを作成

unsigned short intの16ビット中、下9ビットを連ありか否かの
判定に使えばいいと思うんだが、面倒なので誰か頼む。
614デフォルトの名無しさん:2008/06/04(水) 22:11:16
[1]プログラミング
[2]問題文
要素数がnoであるint型の配列vcの並びを逆順にする関数
void rev_intary(int vc[],int no)をメイン文も含め作成せよ。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明日の昼まで
お願いいたします。
615デフォルトの名無しさん:2008/06/04(水) 22:11:49
デジモンみたいなドライブクリーナーがほしい。
データ食べて育つみたいな。リアルにデジタルモンスター育てたい(
基地外サーセン。。どうしても漏らしたかった・・・。
616デフォルトの名無しさん:2008/06/04(水) 22:31:21
>>614
#include<stdio.h>
void rev_intary(int vc[], int no) {
int t, i;
for(i = 0; i < no-1-i; i++) {
t = vc[i];
vc[i] = vc[no-1-i];
vc[no-1-i] = t;
}
}
int main() {
int a[5] = {1,2,3,4,5}, i;
rev_intary(a, 5);
for(i = 0; i < 5; i ++)
printf("%d\n", a[i]);
return 0;
}
617デフォルトの名無しさん:2008/06/04(水) 22:32:49
>>614
>>550 >>552
この辺でどうにかならんかね。
618デフォルトの名無しさん:2008/06/04(水) 23:04:08
>>610氏、>>611氏、>>613
返答ありがとうございます
おかげさまで助かります
619デフォルトの名無しさん:2008/06/04(水) 23:14:30
>>618
○×は素直に3*3の配列つかいな
620デフォルトの名無しさん:2008/06/04(水) 23:18:31
>>619
わかりました
ちょっと探しに行ってきます
621デフォルトの名無しさん:2008/06/04(水) 23:19:26
すみませんsageを
入れ忘れていました(汗
622デフォルトの名無しさん:2008/06/04(水) 23:25:58
623デフォルトの名無しさん:2008/06/04(水) 23:28:49
おお!!
>>622氏、ありがとうございます
ほかを巡回しながらもこまめに
ここをチェックしていたのですが
大変助かります
624デフォルトの名無しさん:2008/06/05(木) 00:25:24
>>564をお願いします…
625デフォルトの名無しさん:2008/06/05(木) 00:31:43
[1] 授業単元:プログラミング演習1
[2] 問題文(含コード&リンク):
m ×m 行列を入力し和と積を求め、結果を行列の形で表示させる
プログラムの作成。但し、入力した行列も表示。

<表示例>
1 2
3 4
[3] 環境
 [3.1] OS:WinXP/linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等):VC++/gcc
 [3.3] 言語:C言語
[4] 期限:2008/06/06
[5] その他の制限: stdio.h、入力はscanf関数、出力はprintf関数、配列で

プログラムの冒頭ですが、これで配列可変になるんでしょうか…?
int m,i,j;/*要素、カウント用変数宣言*/
printf("行列数を入力");
scanf("%d",&m);
int a[m]=0;
int b[m]=0;

[m]=0を[%d]=0,mにしたほうが良いのでしょうか………
626デフォルトの名無しさん:2008/06/05(木) 00:45:56
>>564
@ 0, b2, b1, (b0|c4), c3, c2, c1, c0 という8ビットをcに格納している。
ここでb2とは、変数bのビット2という意味で表記している。
b0|c4とは、b0とc4の論理和という意味で表記している。

というかこの問題、b=(b&0x07)<<5; が正しいのではないか?
そうすると、 b2, b1, b0, c4, c3, c2, c1, c0 という8ビットをcに格納することになり、キレイ。

A
b &= ~(1<<2); /*ビット2(最下位から3番目)をクリア*/
b &= ~(1<<5); /*ビット5(最下位から6番目)をクリア*/

~を使いたくなければ、
b &= 0xfffb;
b &= 0xffdf;
627デフォルトの名無しさん:2008/06/05(木) 00:46:32
>>624
1. ここにいる人なら大抵@はわかります。
  が、残念スレ違いです。

2. 本当に問題文そのままですか?
628626:2008/06/05(木) 00:51:30
すまん間違えた。
@は c7, b2, b1, b0, c3, c2, c1, c0 だ。
629デフォルトの名無しさん:2008/06/05(木) 01:06:18
>>625
お前は何を言ってるんだ?
630デフォルトの名無しさん:2008/06/05(木) 01:06:27
b = (b & 0xFFDB) & b;
631デフォルトの名無しさん:2008/06/05(木) 01:07:33
>>625
残念ながらそのような手法では配列を動的には確保出来ませんよ
632デフォルトの名無しさん:2008/06/05(木) 01:18:43
.;;;;彡彡ミミ;;;
          .;;;;彡彡ミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;;;彡彡ミミミ;;;;;
         ;;;;彡ミ彡ミミミミ;;;
        ;;;彡ミ彡;;人;;;ミ彡ミ;;;
        ;;;彡ミ彡ノ ヽ;ミ彡ミ;;;
        ;;;彡ミ;;;;ノ.人 ヽ;彡ミ;;;
        ;;;彡ミ;;;ノ | ..| ;ヽ彡ミ;;;
        ;;;彡ミ;;ノ .| | ヽ彡ミ;;;
        ;;;彡ミ;ヽ |.・.| /彡ミ;;;
        ;;;彡ミ;;ヽ|  .| /;;彡ミ;;;
        .;;;;;;;ミ;;;ヽ|( )|./ミ彡;;;;
         ..;;;彡;;;;ヽ| .|/;;;ミ;;;
          ..;;;;.彡;|.|;;ミ;;;;;....
          ;;;;;彡;彡|;;ミミミ;;;;
         ;;彡彡彡*ミミミミ;; マンコ
          ;;;;彡彡ミミミ;;;
           ;;彡彡ミミミ;;;
633デフォルトの名無しさん:2008/06/05(木) 01:47:07
[1] 授業単元: C言語演習V
[2] 問題文(含コード&リンク):
九九の表を1次元配列と配列を引数とする関数を用いて作成せよ。

・作成要項
main関数内で用いる配列は演算結果を格納するab[81]と九九の各段を一時的に格納する
a[9]のみとし(呼び出す関数側ではどのような配列を宣言してもよい)、関数に格納用
配列と段数を渡してひとつの段ごとに計算させる。
ひとつの段の計算結果が関数から戻されるごとに返ってきた値を配列abに格納しなおし
全部の段の計算が終わったあとで一括して表示させること(グローバル変数は使わないこと)
(プログラム例)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6795.txt

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限:本日 6/5 PM1時までにお願いします。
[5] その他の制限:グローバル変数の使用は不可、配列の使用が前提です。
今日は徹夜で宿題をやっているので、オールナイトで待っています。よろしくお願いします。
634デフォルトの名無しさん:2008/06/05(木) 02:00:39
>>625
宿題レベルなら固定で
int a[8][8];
ってしときー
635デフォルトの名無しさん:2008/06/05(木) 02:03:20
>>634
兄さんそれ99やない
636デフォルトの名無しさん:2008/06/05(木) 02:06:35
>>633
#include<stdio.h>

void kuku(int [], int );

int main(void)
{
int i,j;
int a[9],ab[81];
for(i=0;i<9;i++){
kuku(a,i);
for(j=0;j<9;j++){
ab[i*9+j] = a[j];
}
}

for(i=0;i<9;i++){
for(j=0;j<9;j++){
printf(" %2d", ab[i*9+j]);
}
printf("\n");
}

return 0;
}
void kuku(int a[], int rank)
{
int i;
for(i=0;i<9;i++){
a[i] = (rank+1) * (i+1);
}
}
637デフォルトの名無しさん:2008/06/05(木) 02:17:59
>>634
パパーパパー
638デフォルトの名無しさん:2008/06/05(木) 02:26:32
>>636
ありがとうございます。
これで少しは眠れそうです。
639デフォルトの名無しさん:2008/06/05(木) 10:00:15
すみません
>>622氏のところのをやってみたのですが
下記のエラーが出てしまいまして

$ gcc.exe memosp.c
memosp.c: In function `main':
memosp.c:60: warning: passing arg 1 of `input' from incompatible pointer type
memosp.c:62: warning: passing arg 1 of `check' from incompatible pointer type
memosp.c:63: warning: passing arg 1 of `show' from incompatible pointer type
memosp.c:70: warning: passing arg 1 of `show' from incompatible pointer type

どこを直せばいいんでしょうか・・・
アドバイスよろしくお願いします><
640デフォルトの名無しさん:2008/06/05(木) 10:22:54
>>639
gccはよくわからんけど、xcodeで試したらcheckをcheck2とか適当な名前に変更すればコンパイルはした
641デフォルトの名無しさん:2008/06/05(木) 10:35:01
>>639
とりあえず const int b[][BOARD_SIZE] を int b[][BOARD_SIZE] にすれば警告は消える
でも、なんで警告が出るんだろう?
642 ◆DuoCt8/SKk :2008/06/05(木) 12:43:10
>>604-605
ありがとうございます.
今日が締切なので,引き続き>>592をお願いしたいのですが・・・
よろしくお願いします!
643デフォルトの名無しさん:2008/06/05(木) 12:50:43
>>635
アンカーの先をよく見るんだ弟よ
644デフォルトの名無しさん:2008/06/05(木) 13:31:02
>>641
> >>639
以下はtccの場合。
:60: cannot cast 'int **' to 'const int **'

constを付けると、コンパイラはconst領域に変数等を割り当てようとするが、今回のように
書きかえ可の領域 ---> 書きかえ不可の領域へのキャスト指示はプログラムミスと見なされる。

645デフォルトの名無しさん:2008/06/05(木) 13:34:22
>>644
続き。 const領域を書きかえようとした場合のエラー。

#include<stdio.h>
int main(){
const int a=3;
a=2;
}

:4: error: assignment of read-only variable ‘a’
646ロベ:2008/06/05(木) 13:49:11
[1] 授業単元:プログラミング
[2] 問題文:BMPファイルの情報(画像サイズ、色数等)を表示する
      BMPファイルの画像を上下・左右反転させる
      BMPファイルの画像を回転(90、180、270度)させる
      BMPファイルのカラー画像をグレースケール化するプログラムの作成
        輝度を変換する式は、下記の式を使用すること
        Y=0.298912*R+0.586611*G+0.114478*B
      ※BMPファイルにはWindows形式とOS/2形式があります。どちらにも正しく対応できるように。
      ※入力ファイル名は、プログラム実行後に聞いてくるものとします。
      ※出力ファイル名は、プログラム実行後に聞いてくるものとします。
      ※反転・回転方法の指示は、プログラム実行後に聞いてくるものとします。
      ※ソースには必ずコメントを書いて下さい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32
 [3.3] 言語:C
[4] 期限:6月5日 0:00
[5] その他の制限:無し

よろしくおねがいします
647デフォルトの名無しさん:2008/06/05(木) 14:15:52
>>644-645
嘘を教えるなよ。。。
648デフォルトの名無しさん:2008/06/05(木) 14:22:25
constがどこにかかってるかを考えれば、なんとなくわかるぞ
649デフォルトの名無しさん:2008/06/05(木) 14:50:50
[1] 授業単元:C言語
[2] 問題文:
int 型の2つの数をキーボードから読み込んで,
それらの3乗の和を出力するプログラムを作成せよ。
ただし,2つの数の3乗の和を計算する部分は,
関数 int cubesum(int x, int y) を作成してそれを使え。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年6月9日
[5] その他の制限:
650デフォルトの名無しさん:2008/06/05(木) 15:04:16
int cubesum(int x, int y)
{
return x*x*x + y*y*y;
}
651デフォルトの名無しさん:2008/06/05(木) 18:07:23
#include <stdio.h>

int cubesum(int x, int y)
{
return x*x*x + y*y*y;
}

int main()
{
int a, b;
printf("2つの整数を入れてください:");
scanf("%d %d", &a, &b);

printf("%d^3 + %d^3 = %d\n", a, b, cubesum(a, b));

return 0;
}
652デフォルトの名無しさん:2008/06/05(木) 19:31:10
.;;;;彡彡ミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;;;彡彡ミミミ;;;;;
         ;;;;彡ミ彡ミミミミ;;;
        ;;;彡ミ彡;;人;;;ミ彡ミ;;;
        ;;;彡ミ彡ノ ヽ;ミ彡ミ;;;
        ;;;彡ミ;;;;ノ.人 ヽ;彡ミ;;;
        ;;;彡ミ;;;ノ | ..| ;ヽ彡ミ;;;
        ;;;彡ミ;;ノ .| | ヽ彡ミ;;;
        ;;;彡ミ;ヽ |.・.| /彡ミ;;;
        ;;;彡ミ;;ヽ|  .| /;;彡ミ;;;
        .;;;;;;;ミ;;;ヽ|( )|./ミ彡;;;;
         ..;;;彡;;;;ヽ| .|/;;;ミ;;;
          ..;;;;.彡;|.|;;ミ;;;;;....
          ;;;;;彡;彡|;;ミミミ;;;;
         ;;彡彡彡*ミミミミ;; マンコ
          ;;;;彡彡ミミミ;;;
           ;;彡彡ミミミ;;;
653デフォルトの名無しさん:2008/06/05(木) 19:54:07
>>550
の問題にメイン文も付け加えた形で教えて欲しいです。
よろしくお願いいたします。
654デフォルトの名無しさん:2008/06/05(木) 19:56:27
マルチで申し訳ないです。
本格的にハマってしまい、ヘルプをお願いさせてください。

[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
2次元配列(hai[10][10])を用いる。
各マスには予め1または2がランダムで入力されている。

100マスの中で、1と2のサイズを計測せよ。
なお、境界は存在せず、トーラス状とする。

例)
1,1,1
2,1,1
1,1,1
であれば、
1:8
2:1

1,1,1
2,1,2
1,2,1
であれば、
1:6(トーラス状であるため、左下と右下も一つの塊と見る)
2:2(トーラス状であるため、中段の左右は一つの塊と見る),1

[3] 環境
 [3.1] 言語: どちらでも可
[4] 期限: 6月10日

解決の糸口が見つかりません。
どうかよろしくお願いします。
655639:2008/06/05(木) 20:40:30
>>639のところで回答してくださりました方々
ありがとうございます
課題ですのでgccで固定という以上
ほかの方法では試せませんのでなんともいえませんが
自分でもいろいろと試そうかと思います
656デフォルトの名無しさん:2008/06/05(木) 20:53:40
>>654
無理やり1レスにまとめたからいろいろ足りないけど
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 10
char hai[SIZE][SIZE], check[SIZE][SIZE];
int f(int x, int y, int n)
{
if(check[x][y] || hai[x][y]!=n) return 0;
check[x][y] = 1;
return 1 + f(x, (y+1)%SIZE, n) + f(x, (y+SIZE-1)%SIZE, n)
+ f((x+1)%SIZE, y, n) + f((x+SIZE-1)%SIZE, y, n);
}
int main(void)
{
int i, j, c[2][50] = {0}, count[2] = {0};
srand(time(NULL));
for(i=0; i<SIZE; i++) for(j=0; j<SIZE; j++) hai[i][j] = rand()%2+1;
for(i=0; i<SIZE; i++) {
for(j=0; j<SIZE; j++) {
int n = f(i, j, hai[i][j]);
if(n) c[hai[i][j]-1][count[hai[i][j]-1]++] = n;
}
}
for(i=0; i<2; i++) {
printf("%d : ", i+1);
for(j=0; j<count[i]; j++) printf("%d ", c[i][j]);
putchar('\n');
}
return 0;
}
657654:2008/06/05(木) 21:11:52
>>656
ありがとう!
自分は3日間超絶悩んだのに、あっさり出来てるw

動作を確認させていただいたのですが、
#define SIZE 100
に変更した場合は、
int i, j, c[2][5000] = {0}, count[2] = {0};
と変更すれば、
SIZEが大きくなっても検索できるようですね。

もしよろしければ、いろいろ足りない部分とお名前を・・・・。
658デフォルトの名無しさん:2008/06/05(木) 21:12:31
お名前ってww
659デフォルトの名無しさん:2008/06/05(木) 21:17:24
足りないってのは最後にソートしたほうがいいんじゃないかなってこと。
660デフォルトの名無しさん:2008/06/05(木) 21:18:00
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):

次の規則に従い、入力された文字列を変換して表示する。
T ・・・タブとして空白を2つ入れる(Tは表示しない)
N ・・・改行する(Nは表示しない)
+ ・・・空白を1つ入れる(+と空白を置きかえる)
その他・・・そのまま表示する。
$ ・・・¥に変換する。($は表示しない。)
$の後に入力されてる数値を円に換算する。換算率は1$を120円とする。
行の先頭の英小文字は英大文字に変換する。

実行結果
データを入力してください:aprilT$012-NmayTT$023+Njune T$026+N
April \01440-
May \02760
June \03120

[3] 環境
 [3.1] OS: windouws
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語:どちらでも可
[4] 期限: 明日中
[5] その他の制限:switch使用


C言語歴2ヶ月の課題なんで低レベルとは思いますが、よろしくお願いします。
661デフォルトの名無しさん:2008/06/05(木) 21:18:40
>>625
20x20の行列を用意後、画面から入力したサイズ分だけを使用。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6798.txt
662654:2008/06/05(木) 21:24:32
えっと、ちなみにソートするにはどうすればw
c[i][j]と c[i][j+1]を比較させまくるのかnya。
663デフォルトの名無しさん:2008/06/05(木) 21:30:16
バブルソートでもクイックソートでもすきなのでいいだろw
>>654が宿題に出されるレベルならソートぐらいできんだろ
664654:2008/06/05(木) 21:42:29
>>663
おk。
本当にありがとねノシ
665デフォルトの名無しさん:2008/06/05(木) 21:45:24
ヘボいなーおまえら
プログラミング向いてないよ
666デフォルトの名無しさん:2008/06/05(木) 21:52:16
トーラスってなんじゃろうと思ってみてた。
ドラクエの地図の海と陸地の数およびサイズを知りたいって書いてくれればよかったのに。。
667デフォルトの名無しさん:2008/06/05(木) 21:58:42
[1]プログラミング
[2]問題文
多次元配列を利用して、5人の3教科(国語・数学・英語)の@最高点A平均点それぞれのソースを作れ。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明日まで
よろしくお願いいたします。
668デフォルトの名無しさん:2008/06/05(木) 22:10:48
>>664
マルチの片割れにも終わったことを知らせんかい
669デフォルトの名無しさん:2008/06/05(木) 22:12:13
なんで偉そうなの?
670デフォルトの名無しさん:2008/06/05(木) 22:20:55
671デフォルトの名無しさん:2008/06/05(木) 22:48:13
>>670
ありがとうございます、助かりました。
こんなに早く応えがくるなんて、良い意味で驚きました
672デフォルトの名無しさん:2008/06/05(木) 22:51:04
>>664,669
礼儀も知らんのかボケ
673デフォルトの名無しさん:2008/06/05(木) 22:55:17
>>671
タイミングさえ合えばちゃんとした回答者がいるスレだよ
674デフォルトの名無しさん:2008/06/05(木) 23:00:16
>>672
なんで回答者でもないあなたが偉そうなの?
675654:2008/06/05(木) 23:00:26
ちょw
669は自分じゃない。
676デフォルトの名無しさん:2008/06/05(木) 23:01:30
>>674
っつか、マジで態度が悪いぞ、お前。社会じゃそれじゃやっていけねーよ
失せろクズガキ
677デフォルトの名無しさん:2008/06/05(木) 23:01:57
>>534をお願いしますm(_ _)m
678デフォルトの名無しさん:2008/06/05(木) 23:04:23
679デフォルトの名無しさん:2008/06/05(木) 23:05:35
>>674
会社の同僚と何かあった時に上司から何か言われても
「同僚との問題なのになんであなたがそんな事言うの?」
とか言うんか? 消えろ
680デフォルトの名無しさん:2008/06/05(木) 23:07:03
>>674
っつか、偉いとかって話じゃないだろ。完全にお前が態度が悪い
ただそれだけ。何で自分が指摘されたのか、分からないのか?
だとしたら相当痛いぞ、お前。反論する前に自分が起こしている行動
発言を自覚しろ。干されんぞ。人間社会はお前一人の都合や
思う通りには動いてないからw
681デフォルトの名無しさん:2008/06/05(木) 23:09:21
>>667
お願いしますm(__)m
682デフォルトの名無しさん:2008/06/05(木) 23:11:22
なんか>>674の人気に嫉妬しつつ、本当に>>672は回答者ではないのだろうか?
683デフォルトの名無しさん:2008/06/05(木) 23:11:27
#include <sys/param.h>
#include <stdio.h>
int z(int y, int m, int d) {
int a = y / 100, b = y % 100;
return ((int) (m * 2.6 - 0.2) + d + b + (int) b / 4 + (int) a / 4 + 5 * a) % 7;
}
int zeller(int y, int m, int d) {
return m < 3 ? z(y - 1, m + 10, d) : z(y, m - 2, d);
}
int main(int argc, char *argv[]) {
int year, month, nf13 = 0;
for (year = 2001; year <= 2100; year++) {
for (month = 1; month <= 12; month++) {
if (zeller(year, month, 13) == 5) {
nf13++;
}
}
}
printf("%d\n", nf13);
return 0;
}
684デフォルトの名無しさん:2008/06/05(木) 23:12:26
>>681
はやる気持ちは分からんでもないけど、もうちょっとまとう。
ギリギリまで宿題やらなかったのもちょっと悪いとおもうお
685デフォルトの名無しさん:2008/06/05(木) 23:14:01
>>667
問題ってほんとにこれだけ?
制限とかかいとかないと
「それなんですか?分からないのでもっと簡単なものを。。。」
というハメになっちゃうかもだよー
686デフォルトの名無しさん:2008/06/05(木) 23:14:18
#include <stdio.h>

int main(void)
{
int i, j, data[3][5] ={0}, max[3];
double ave[3];
char *kamoku[3] = {"国語","数学","英語"};

for(i=0; i<3; i++) {
ave[i] = max[i] = data[i][0];
for(j=1; j<5; j++) {
ave[i] += data[i][j];
if(max[i] < data[i][j]) max[i] = data[i][j];
}
ave[i] /= 5;
}

for(i=0; i<3; i++) printf("%s 最高点:%d 平均点%.2f\n", kamoku[i], max[i], ave[i]);

return 0;
}
687デフォルトの名無しさん:2008/06/05(木) 23:14:25
多次元配列を利用
int point[5][3]={{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}};
688デフォルトの名無しさん:2008/06/05(木) 23:16:32
わざわざ多次元って言ってるんだから、二次元程度じゃ許されない。
689デフォルトの名無しさん:2008/06/05(木) 23:17:45
>>682
人気じゃなくて一人がファビョってるだけにしか見えねーよw
690デフォルトの名無しさん:2008/06/05(木) 23:18:10
多次元っていったってどう考えても2次元で十分だろ。

691デフォルトの名無しさん:2008/06/05(木) 23:18:48
>>688
口だけじゃなくてソースplz
692デフォルトの名無しさん:2008/06/05(木) 23:19:48
せいぜい平均と最高点をまとめて
もひとつ2次元配列にするくらいかな
693デフォルトの名無しさん:2008/06/05(木) 23:25:58
679はこのスレの上司だそうですw
694デフォルトの名無しさん:2008/06/05(木) 23:26:48
こんなところで宿題丸投げする学生?相手に語ってるほうもどうかとw
695デフォルトの名無しさん:2008/06/05(木) 23:26:50
>>689 = >>691 = >>674 必死だなぁ・・・IDが無いからって、他人のふりしようとか
白々しいぞお前。やたらと口出しする一言居士って、友達のいない構ってちゃんだろ?
696デフォルトの名無しさん:2008/06/05(木) 23:26:56
IDが出ないと一人芝居が楽でいいよな
697デフォルトの名無しさん:2008/06/05(木) 23:27:57
>>693 = >>689 = >>691 = >>674
しつけぇ・・・お前、このスレに何の用があって来てんだ?
無駄口叩く奴って、口先だけで役に立たない上に
自分が否定されるとファビョるからうぜぇ。
698デフォルトの名無しさん:2008/06/05(木) 23:28:17
なんだこれ
699デフォルトの名無しさん:2008/06/05(木) 23:30:05
ケフィア、、でしょうか?
700デフォルトの名無しさん:2008/06/05(木) 23:31:23
なんで691まで一緒にされてるのかわからんw
701デフォルトの名無しさん:2008/06/05(木) 23:33:12
二つの整数値を読み込んで、
小さい方の数以上で大きい方の数以下の整数を全て加えた値を
表示するプログラム。

コンパイラ gcc
OS Windows
言語 C

お願いします。
702デフォルトの名無しさん:2008/06/05(木) 23:34:33
何度か書いてるが、Windows + gccってのはほんとにそういう環境なのかなあ。
703デフォルトの名無しさん:2008/06/05(木) 23:35:20
>二つの整数値を読み込んで、
標準入力でOK?
704デフォルトの名無しさん:2008/06/05(木) 23:36:07
>>702
Cygwin + gcc かもね
705デフォルトの名無しさん:2008/06/05(木) 23:36:54
a < b

((1+b) * b - (1 + a) * a ) / 2
706デフォルトの名無しさん:2008/06/05(木) 23:37:44
>>626
わかりました。ありがとうございます。
707デフォルトの名無しさん:2008/06/05(木) 23:37:54
>>701
#include <stdio.h>

int main(void)
{
int a, b;

scanf("%d%d", &a, &b);

printf("%d", a > b ? (a + b) * (a - b + 1) / 2 : (a + b) * (b - a + 1) / 2);

return 0;
}
708デフォルトの名無しさん:2008/06/05(木) 23:39:12
>>703
標準かどうかはよくわかりませんが、scanfで読み取る形です。
709デフォルトの名無しさん:2008/06/05(木) 23:42:00
>>707
すいません!書き忘れました。
Do文を使って最後にWhile文を追加する形でした。
710デフォルトの名無しさん:2008/06/05(木) 23:44:04
>>704
cygwin + gcc だとして、実行環境はWindows?cygwin?というのも
あるし、Xかもしれない。
といったところで実行環境に依存するような宿題については
そのような曖昧な環境記述は無かったような気もするし、、、
気にしないほうがいいのかなあ?
711デフォルトの名無しさん:2008/06/05(木) 23:45:04
なんだそりゃw
#include <stdio.h>
int main(void)
{
int a, b, sum = 0;
scanf("%d%d", &a, &b);
if(a < b) do { sum += a++; } while(a<=b);
else do { sum += b++; } while(b<=a);

printf("%d", sum);

return 0;
}
712デフォルトの名無しさん:2008/06/05(木) 23:45:10
>>1より。
> ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。

きをつけてね
713デフォルトの名無しさん:2008/06/05(木) 23:45:33
>>707
初心者向けにしましょうw
714デフォルトの名無しさん:2008/06/05(木) 23:45:38
>>701
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", (a+b)*(abs(a-b)+1)/2 );
return 0;
}
715デフォルトの名無しさん:2008/06/05(木) 23:49:32
>>713
初心者の定義は何?自分が理解できる=初心者向け?
理解できない=初心者じゃない?とか?
716デフォルトの名無しさん:2008/06/05(木) 23:51:02
パッと見であっさり理解できるか
ちょっと見てみてあぁなるほどと思えるか

の差じゃない?
717デフォルトの名無しさん:2008/06/05(木) 23:51:48
>>711
++はどういう意味なんでしょうか?
718デフォルトの名無しさん:2008/06/05(木) 23:52:21
>>715
いちいち絡むなよw
719デフォルトの名無しさん:2008/06/05(木) 23:54:13
>>717
a++ は a = a + 1
720デフォルトの名無しさん:2008/06/05(木) 23:55:29
>>717
a++ = a = a + 1
721デフォルトの名無しさん:2008/06/05(木) 23:58:06
その=の使い方には問題があるぞ
722デフォルトの名無しさん:2008/06/05(木) 23:58:49
ではsum+=とは何なのでしょうか?
初心者ですいません
723デフォルトの名無しさん:2008/06/06(金) 00:00:32
sum += a は sum = sum + a
724デフォルトの名無しさん:2008/06/06(金) 00:00:50
sum = sum + 1
725デフォルトの名無しさん:2008/06/06(金) 00:01:27
つまり sum += a++; は
sum = sum + a;
a = a + 1;
726デフォルトの名無しさん:2008/06/06(金) 00:05:30
>>725
cのとっつき難さはそこなんだろうな。
727デフォルトの名無しさん:2008/06/06(金) 00:06:39
A += B
A -= B
A *= B
A /= B

A = A 演算子(+-*/) B
728デフォルトの名無しさん:2008/06/06(金) 00:06:45
レスをくれた方々ありがとうございます。
色々勉強になりました。
ちょっと複雑に考えすぎていたようです。
729デフォルトの名無しさん:2008/06/06(金) 00:09:36
プログラムは単純に考えよう。
プログラムを書くこときも、トリッキーなことをせずに簡単に書こう。

って、先輩にならったな。
730デフォルトの名無しさん:2008/06/06(金) 00:10:02
>>725
逆も上げとくわ
sum += ++a;は
a = a + 1;
sum = sum + a;
731デフォルトの名無しさん:2008/06/06(金) 00:11:29
>>729
sum += a++ が一番簡単で単純だろ?
732デフォルトの名無しさん:2008/06/06(金) 00:12:13
直感的ではないよ
733デフォルトの名無しさん:2008/06/06(金) 00:15:09
>>731
そうだな。

こっちのPart28終わりからPart29の頭にかけてa++関連の未定義問題で論争があったくらいだ。

C言語なら俺に聞け(入門篇) Part 29
http://pc11.2ch.net/test/read.cgi/tech/1212329099/

734733:2008/06/06(金) 00:15:52
>>733>>731への同意ではなく>>732への同意だ。
735デフォルトの名無しさん:2008/06/06(金) 00:17:36
インクリメントを禁止してるプロジェクトに関わった事があったな。。。。。
ちょっと新鮮だった。
736デフォルトの名無しさん:2008/06/06(金) 00:21:07
実際のところたとえば
a = a + 1;
sum = sum + a;



sum += ++a;

としたところでコンパイル後のバイナリレベルでどのくらいクロックやメモリ
を稼げるものなんだ?

それと引き換えに新人が保守するかも知れないリスクとの天秤にかけた場合の
コストも。
737デフォルトの名無しさん:2008/06/06(金) 00:23:16
まだ学生だからわからんのだけど仕事でやってて、それに引っかかる人いるの?
738デフォルトの名無しさん:2008/06/06(金) 00:24:10
万人にわかるようにするんだよ。
739デフォルトの名無しさん:2008/06/06(金) 00:25:54
そんなのもわからないやつにソース触らせんなよw
740デフォルトの名無しさん:2008/06/06(金) 00:27:30
しるかよw

そういう規約をつくってるんだからw

あ、デクリメントも禁止されてたよ。
741デフォルトの名無しさん:2008/06/06(金) 00:28:09
>>737
ソースって案外長生きなんだよ。
COBOLとかあれだけクラサバ登場で無くなるといわれたのに
今だに残ってる。

webの発達でc出来る人口が減ってるのに、新人にわざわざ
今の程度の説明で時間取られたくないだろ?
742デフォルトの名無しさん:2008/06/06(金) 00:29:04
>>736
最適化がかかればクロックやメモリは同等になるはず
好きな方を選べばいいだけ
743デフォルトの名無しさん:2008/06/06(金) 00:29:54
インクリメントすら理解できないなら他の部分が大丈夫なわきゃないと思うんだが。
744デフォルトの名無しさん:2008/06/06(金) 00:31:37
前に、++aとa++って、何が違うんですかって、聞かれたことがあった。
745デフォルトの名無しさん:2008/06/06(金) 00:35:52
それだけが1行にあれば機能は同じだけど、

条件判定の中にあったりすると面倒だし
この間論争になったのは

if (xxxxxx) printf("%d",(a++)*(a++));

こんな感じの結果の違いでもめてたし。

746デフォルトの名無しさん:2008/06/06(金) 00:36:21
それ論争以前の未定義だから
747デフォルトの名無しさん:2008/06/06(金) 00:37:33
>>746
新人がインクリメント覚えて使い出してこんなの書かれると
また教える羽目になるでしょ。

だったら素直にインクリメントなどは使うなとしたほうがいい。
748デフォルトの名無しさん:2008/06/06(金) 00:39:46
なんていうか、C言語の省略した記述って
メモリやCPUなんかのハード資源が極端に
少なかったころのゲーム開発と似てて
みみっちいという気がする。
749デフォルトの名無しさん:2008/06/06(金) 00:40:29
それを論争とか言っちゃう人間が何を教えんの?
750デフォルトの名無しさん:2008/06/06(金) 00:49:14
なんでいまさら宿題スレでインクリメントが問題視されるのかわからん
751デフォルトの名無しさん:2008/06/06(金) 01:32:20
とても難しい問題が来ました
しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう

[1] 授業単元:C言語研修
[2] 問題文(含コード&リンク):
1から45の数(合計値)は1から9の数(要素)の和で作ることができる。(要素に同じ数を使わない)
例えば合計値6は最大3つ(要素数)の要素の和でつくることができ、要素数1であれば6、要素数2で
あれば1+5と2+4の2通り、要素数3であれば1+2+3でつくる。この組み合わせで全てである。
合計値と要素数から要素の和の組み合わせ全てを計算する再帰関数を作れ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 6.0
 [3.3] 言語: C言語
[4] 期限: 起源はありませんが優秀な貴方方の手に掛かれば瞬殺でしょう
[5] 制限はありません。貴方方の持っている全ての知識を注ぎ込んじゃって構いません
752デフォルトの名無しさん:2008/06/06(金) 01:36:25
>しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう
こういっておけば馬鹿が調子こいてやってくれるよwプゲラ
という主の顔が浮かぶ
753デフォルトの名無しさん:2008/06/06(金) 01:54:21
>>751
#include<stdio.h>
int resolve_sub(int total, int num, int min) {
static int ans[9], anslen = 0;
int i, j;
if(!num)
return !total;
for(i = min; i <= 9 && i <= total; i ++) {
ans[anslen ++] = i;
if(resolve_sub(total - i, num - 1, i + 1)) {
for(j = 0; j < anslen ; j ++)
printf("%d ", ans[j]);
printf("\n");
}
anslen --;
}
return 0;
}
void resolve(int total, int num) {
resolve_sub(total, num, 1);
}
int main() {
resolve(30, 6); /* (例)30を6個の和に分ける */
return 0;
}
754デフォルトの名無しさん:2008/06/06(金) 02:25:34
#include <stdio.h>
void f(int size, int n, int *p)
{
static int pos = 0, start = 1;
int i;
if(pos==size-1) {
p[pos] = n;
for(i=0; i<size; i++) printf("%d ", p[i]);
putchar('\n');
return;
}
for(i=start; i*2<n; i++) {
start = i + 1;
p[pos++] = i;
f(size, n-i, p);
pos--;
}
}
int main(void)
{
int num, amount, *p;
printf("要素数を入力して下さい:");
scanf("%d", &num);
printf("合計数を入力して下さい:");
scanf("%d", &amount);
p = malloc(sizeof(int) * num);
f(num, amount, p);
return 0;
}
755デフォルトの名無しさん:2008/06/06(金) 02:34:17
問題読み違えた。
1から45まで限定で1から9しか使っちゃダメなのか。
756デフォルトの名無しさん:2008/06/06(金) 02:50:08
>>751
#include<stdio.h>
int O00O(int OOO0){
if(OOO0%2) return OOO0/2*(OOO0+1);
return (OOO0+1)/2*OOO0;
}
void OOOO(int O0OO[], int OOO0, int OO0O, int OO00, int O0000){
int O, O000;
if(OO00<=1){
O0OO[OO00]=OOO0;
for(O=1;O<OO0O;O++) printf("%d+", O0OO[O]);
printf("%d\n", O0OO[OO0O]);
return;
}
O000=(OOO0-O00O(OO00-1)-1)/OO00;
for(O=O0000;O<=O000;O++){
O0OO[OO00]=O;
OOOO(O0OO, OOO0-O, OO0O, OO00-1, O+1);
}
}
void O0O0(int OOO0, int OO0O){
int O0OO[1000];
if(OO0O>=sizeof(O0OO)/sizeof(O0OO[0])) return;
OOOO(O0OO, OOO0, OO0O, OO0O, 1);
}
int main(void){
O0O0(100, 10);
return 0;
}
757デフォルトの名無しさん:2008/06/06(金) 03:11:13
>>756
難読化乙
758デフォルトの名無しさん:2008/06/06(金) 11:37:44
#include <stdio.h>
#include <float.h>
int main(void)
{ float f;
double x;
long double ld;
printf("\nTesting the precision of float, double, and long double : \n");
f = 1.0f + 1.0e-7;
printf(" 1.0 + 1.0e-7 = %.10f\n", f);
f = 1.0f + 1.0e-8;
printf(" 1.0 + 1.0e-8 = %.10f\n", f);
x = 1.0l + 1.0e-15;
printf(" 1.0 + 1.0e-15 = %.20lf\n", x);
x = 1.0l + 1.0e-16;
printf(" 1.0 + 1.0e-16 = %.20lf\n", x);
ld = 1.0L + 1.0e-19;
printf(" 1.0 + 1.0e-19 = %.30Lf\n", ld);
ld = 1.0L + 1.0e-20;
printf(" 1.0 + 1.0e-20 = %.30Lf\n", ld);
printf("\nThe experiment above is explained by constants from float.h :\n");
printf(" precision of float : %e\n", FLT_EPSILON);
printf(" precision of double : %.15le\n", DBL_EPSILON);
printf(" precision of long double : %.30Le\n", LDBL_EPSILON);
return 0; }
表示された結果のうち、
1.0 + 1.0e-7 が 1.0000001 にならず、同様に
1.0 + 1.0e-15 が 1.000000000000001 にならず、
1.0 + 1.0e-19 が 1.0000000000000000001 という、きれいな数にならない理由を、FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から説明してもらえないでしょうか。
よろしくお願いします。

759デフォルトの名無しさん:2008/06/06(金) 11:43:55
>>758
単純な話管理できる桁があるので小数点側の切捨てが行われてるだけかと。
たとえば
1.0 + 1.0e-7 を 0.1 + 1.0e-7 や 0.01 + 1.0e-7 とした場合
おそらく.0000001は保持されると思われ。
760デフォルトの名無しさん:2008/06/06(金) 12:01:07
>>759
それをFLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から考察しなきゃならないんですけどいまいちわからなくて・・・
761759:2008/06/06(金) 12:05:21
>>760
http://www.asahi-net.or.jp/~UC3K-YMD/Lesson/Section03/section03_13.html
ここがいいかも

イプシロン(誤差幅)だそうです。
762デフォルトの名無しさん:2008/06/06(金) 12:06:34
ググったら直ぐ出てきたんだが…怒
763デフォルトの名無しさん:2008/06/06(金) 12:32:01
>>758
質問と関係ないが
printfの %l は整数にしか使えないと思うんだ
764デフォルトの名無しさん:2008/06/06(金) 12:41:53
複素数を求めるプログラムなのですけど、
#include <stdio.h>
#include <math.h>
typedef struct {
double rel;
double imp;
} complex;
double mulcompl(complex x, complex y); /* 関数の戻り値の型を定義 */

int main(void){
complex c1, c2, c3;
c1.rel = 3.2; c1.imp = 2.7;
c2.rel = 2.5; c2.imp = 1.8;
c3 = mulcompl( c1 , c2 ); /* complex変数c1,c2を仮引数としてmulcompl関数を呼び出す */

printf("複素数の積 \n");
printf("( %.2f + i %.2f ) * ", c1.rel, c1.imp);
printf("( %.2f + i %.2f ) = ", c2.rel, c2.imp);
printf("( %.2f + i %.2f )\n", c3.rel, c3.imp);
return 0;
}
double mulcompl(complex x, complex y) /* 関数の戻り値の型を定義 */
{
complex z;
/* 仮引数x,yを使って複素数の掛け算を計算する */
z.rel = x.rel * y.rel - x.imp * y.imp;
z.imp = x.rel * y.imp + x.imp * y.rel;
return z;
}
それでどうしてエラーが取れないのですがどこが間違っているのか分かりません。
どなたかお願いします。
765デフォルトの名無しさん:2008/06/06(金) 12:42:42
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):forkによる子プロセスの生成

子プロセスを2つ生成して、それぞれに、fork1, fork2 のプログ
ラムを実行させるようなプログラムを作成しなさい。

///fork1.c///
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6800.txt

///fork2.c///
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6801.txt

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6月11日

前回は本当にありがとうございました。よろしくお願いします。
766ロベ:2008/06/06(金) 12:43:46
>>646
お願いします!!!!
767デフォルトの名無しさん:2008/06/06(金) 12:58:20
いまどきこれはないだろ。VC++が無料で使えるってのに。
> [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32
768ロベ:2008/06/06(金) 13:00:53
VC++は家でつかってますb
769デフォルトの名無しさん:2008/06/06(金) 13:07:42
>>764
double mulcompl(complex x, complex y) → complex mulcompl(complex x, complex y)
770デフォルトの名無しさん:2008/06/06(金) 13:11:37
>>766
wikipediaみたらOS/2 2.xのヘッダ構造書いてなかったんでやる気無くした。
771ロベ:2008/06/06(金) 13:14:11
>>770
いちようBMPのヘッダについて書いてあるページは見つけたけど
プログラムの技術がないからできなくて;;
 http://www.kk.iij4u.or.jp/~kondo/bmp/
772デフォルトの名無しさん:2008/06/06(金) 13:31:33
とあるゲーム機のSS取るのに使った構造体
typedef struct
{
//      char bfType[2];
 unsigned long bfSize;
 unsigned short bfReserved1;
 unsigned short bfReserved2;
 unsigned long bfOffBits;
} BmpFileHed;
typedef struct
{
  unsigned long bcSize;
  short     bcWidth;
  short     bcHeight;
  unsigned short bcPlanes;
  unsigned short bcBitCount;
} BmpFileInfoOS2;
typedef struct
{
  unsigned long biSize;
  long      biWidth;
  long      biHeight;
  unsigned short biPlanes;
  unsigned short biBitCount;
  unsigned long biCompression;
  unsigned long biSizeImage;
  long      biXPixPerMeter;
  long      biYPixPerMeter;
  unsigned long biClrUsed;
  unsigned long biClrImporant;
} BmpFileInfoWindows;
773デフォルトの名無しさん:2008/06/06(金) 13:31:53
残り

typedef struct
{
BmpFileHed     hed;
BmpFileInfoWindows Info;
char        data[480*272*4];
} BmpWindows;
774デフォルトの名無しさん:2008/06/06(金) 13:32:48
でも欠点があってgccでコンパイルすると共通のヘッダ部分に
アライメントが入る。

誰だよBMの後に調整用の領域作らないヘボいフォーマット決めたの
775デフォルトの名無しさん:2008/06/06(金) 13:35:11
typedef struct
{
BmpFileHed     hed;
BmpFileInfoWindows Info;
char        data[2];
} BmpWindows;

typedef struct
{
BmpFileHed     hed;
BmpFileInfoOS2 Info;
char        data[2];
} BmpOS2;
776ロベ:2008/06/06(金) 13:50:42
>>772 >>773 >>775
この構造体をどう使えば・・・
777デフォルトの名無しさん:2008/06/06(金) 13:54:30
>>766
期限に間に合わなかったので作るのやめたよ
778ロベ:2008/06/06(金) 13:59:04
>>777
6月10日まで期限延ばしてもらえたので
お願いできませんか?
779777:2008/06/06(金) 14:00:06
780772:2008/06/06(金) 14:03:19
>>779
unsigned long bcSize;(unsigned long biSize;)に該当する
部分を
unsigned long bfOffBits;
の後に持ってくると楽
781デフォルトの名無しさん:2008/06/06(金) 14:05:06
BMとかどうせ使わないし読み捨てて構造体から排除しちゃえ。
782ロベ:2008/06/06(金) 14:05:22
>>777
どこまでできてるんですか?
783ロベ:2008/06/06(金) 14:06:25

>>779 の間違え
784デフォルトの名無しさん:2008/06/06(金) 14:06:46
>>781
以前別スレでやってたけど
#pragma pack(push, 1)
この間に調整されたくない構造体を記述
#pragma pack(pop)

するといいらしい
785デフォルトの名無しさん:2008/06/06(金) 14:17:44
>>782
こいついったいなんなの?
ソースがあるのにどこまでできているか聞くなんて。
自分で確認もできないのなら何でも適当なものをでっちあげてやれば、
ありがたがってそのまま提出しちゃうんじゃないかw
786777:2008/06/06(金) 14:19:47
>>774
gccなら
struct s0 {
char a, b, c;
} __attribute__ ((packed));
でパディングなし
787デフォルトの名無しさん:2008/06/06(金) 14:21:14
>>786
おーそうなんだ

継続して作ってないなら続きやろうか?
788ロベ:2008/06/06(金) 14:22:28
>>787
おねがいできますか?
789777:2008/06/06(金) 14:32:31
>>787
どうぞ
自分はグレースケール変換だけやってみる
790787:2008/06/06(金) 14:53:08
うほ>>779のを見てると自分の組み方が変則的なのかわかるorz

我流でやってるので悩むorz
791デフォルトの名無しさん:2008/06/06(金) 15:06:00
問03
学科の出席簿作成。
15人分の学生を表示し、入力により内容を変動させる。

表示順番:
出席表
<入力>学生番号0〜14
<入力>曜日番号0〜6
<入力>時限番号0〜3
<入力>出欠番号0〜1
<入力>学生番号0〜14の時に99を入力するとプログラム終了。
頼む。
792デフォルトの名無しさん:2008/06/06(金) 15:10:28
>>646の例題で不明な点があるんだけど
ビットカウントが1,4,8のときはカラーパレットに対して処理するのか?
793777:2008/06/06(金) 15:19:54
>>792
もうそれで作りつつある

switch(bit_count) {
// 2値なのでスケール化はできない
case 1:
printf("2値画像のため変換しません\n");
return;
// パレットのみ変更
case 4:
case 8:
pal_count = 1 << bit_count;
for (i = 0; i < pal_count; i++) {
if (os == BMP_OS2) {
y = (unsigned char)(pal3[i].rgbRed * YR + pal3[i].rgbGreen * YG + pal3[i].rgbBlue * YB);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
}
else if (os == BMP_WIN) {
y = (unsigned char)(pal4[i].rgbRed * YR + pal4[i].rgbGreen * YG + pal4[i].rgbBlue * YB);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
y = 0;
fwrite(&y, 1, 1, out_fp);
}
}
794デフォルトの名無しさん:2008/06/06(金) 15:21:07
いつまでだらだらとスレ消費すんだよw
795デフォルトの名無しさん:2008/06/06(金) 15:21:58
フルフォーマット考えると結構面倒だなw
796デフォルトの名無しさん:2008/06/06(金) 15:26:22
>>777
どうする?すでに読み込み用プログラム公開してるサイト見つけたんだけど・・・・
797デフォルトの名無しさん:2008/06/06(金) 15:27:35
BMPの圧縮関係ってどう対処すれば正解?
biCompressionフィールドって任意に拡張可能だった希ガス
798デフォルトの名無しさん:2008/06/06(金) 15:29:19
>>797
まあそうなんだけどさ・・・
BMPで圧縮してるのなんてみたことないし。

でも出題した教師はこれを知ってかしらないでか出してるしな。
まともに対応を考えるとLibレベルになるよ。
799デフォルトの名無しさん:2008/06/06(金) 15:29:23
ちなみにBMP関係でこんなの見つけたお
http://sunpillar2004.hp.infoseek.co.jp/data/files/bmp.html
800デフォルトの名無しさん:2008/06/06(金) 15:30:24
ああ,色深度16bitの時のビットフィールドの意味とかもいろいろあるし,BEかLEかで違いがあるんだっけか・・・?
忘れた
801796:2008/06/06(金) 15:30:30
>>799
http://www.syuhitu.org/other/bmp/bmp.html
こっちはLibにしてソースまで公開してくれてる。
802デフォルトの名無しさん:2008/06/06(金) 15:30:57
>>800
あるね

かなり面倒だよ、これ。
803デフォルトの名無しさん:2008/06/06(金) 15:34:54
>>801
それでいいなら,プログラムの著者に連絡とって使ってみたら?
804デフォルトの名無しさん:2008/06/06(金) 15:52:20
[1] 授業単元:メディア情報処理
[2] 問題文(含コード&リンク):
マイク入力からの信号をリアルタイムに解析し、音名を表示するプログラムを作れ

(チューナーみたいなもんですかね?)

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C C++
[4] 期限: 6月8日
[5] その他の制限: なし
805デフォルトの名無しさん:2008/06/06(金) 16:00:53
[1] C
[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6803.txt
[3]
 [3.1] Linux
 [3.3] C
[4] 6月10日
[5] 記載されているプログラムを改訂して作ってください

スーパークイーンが求められません
すいませんお願いします
806kokoro:2008/06/06(金) 16:16:03
はじめまして。
今、c言語をやっているのですが、分からないので
問題をのせますので、プログラムを作ってほしいです。
お願いします。
807kokoro:2008/06/06(金) 16:21:12
[1]授業単元:C言語
[2]問題文:
★下記の仕様を満たすプログラムを作成しなさい。
【仕様】 ATM簡易プログラム

 ▼取引は「預け入れ」「引き出し」「残高照会」の3種類とする。始めに
  どの取引をするかを選択させる。0が入力されたらプログラムを終了する。対応していない数字が入力された場合は、
 「入力番号が正しくありません」と表示し、入力画面に戻る。
 ▼どの取引を希望したとしても、次に暗証番号入力を促し、キーボードキーボード入力させる。
 ▼あらかじめ設定しておいた番号と一致していれば、次の処理(最初に選択した取引)に入る。そうでなければ、
  「暗証番号が違います。もう一度入力してください」と表示し、入力させる。
  3回失敗したら、「防犯上の理由により、取引を中止します」と表示し、プログラムを
  終了する。
 ▼「預け入れ」を選択した場合は、預け入れ金額を入力させ、合計金額(あらかじめ適当な金額に設定しておく)
  を表示し、入力画面に戻る。
 ▼「引き出し」を選択した場合は、引き出し金額を入力させ、残り金額を表示し、入力画面に戻る。ただし、
  1回で引き出せる金額は500,000円までとし、それを超える金額を入力したら「1回で引き出せる金額は
  500,000円までです」と表示し、再度入力させる。なお不足の場合は「残高が不足しています」と表示し、
  というメッセージと残高を表示し、再度入力させる。
 ▼「残高照会」を選択した場合は、残高を表示し、入力画面に戻る。

[3]環境
 [3.1]OS:windows xp
[3.2]コンパイラ名:bcc32
[3.3]言語:c言語
[4]期限:2008年6月7日
[5]その他:キーボード入力、if文、for文を使って。

お願いします。
808デフォルトの名無しさん:2008/06/06(金) 16:24:49
>>805
8queenってやったことなかったな〜
で、参考になるサイト

http://www.pro.or.jp/~fuji/puzzlestudy/8queen.html
809ロベ:2008/06/06(金) 16:25:00
>>646の課題はわりと単純なものでもかまいません
よろしくおねがいします
810ねね ◆ia23AXgoXg :2008/06/06(金) 16:30:29
[1] 授業単元: 工学実験(画像処理)
[2] 問題文: 濃度ヒストグラムを伸長(濃度変換)する関数[extend()]を作成せよ
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン: VisualC++6.0
 [3.3] 言語:C++
[4] 期限: 6/9 17:00
[5] その他の制限: 概念くらいしかわかってません…orz
メインプログラムおいときます、無理に使わなくてもいいかと

#include <stdio.h>
#define X 260 /* 画像の横方向の画素数 この例では260 */
#define Y 60 /* 画像の縦方向の画素数 この例では60 */

unsigned char f[Y][X];  /* 入力画像配列 横X画素 ,縦Y画素 */
unsigned char g[Y][X];  /* 入力画像配列 横X画素 ,縦Y画素 */ 

main()
811ねね ◆ia23AXgoXg :2008/06/06(金) 16:31:12
main()
/* 画像処理を行うメインプログラム */
{
char source[80]; /* 入力ファイル */
char destin[80]; /* 出力ファイル */
unsigned char t; /* 閾値 */

      printf("filename(input) ? ");
scanf("%s",source);
printf("filename(output) ? ");
scanf("%s",destin);
printf("threshold ? ");
scanf("%d",&t);
 
      image_input(f,source); /* 画像の入力処理 */

threshold(f,g,t);    /* 閾値処理の場合 */

image_output(g,destin); /* 画像の出力処理 */ 

どうかよろしくお願いします。・・・
812デフォルトの名無しさん:2008/06/06(金) 16:36:16
>>805
for(k=0; k<3&&j>=0; k++, j--) if(i-3<=board[j] && board[j] <= i+3) flag = 0;
を適当なとこに突っ込んでそれに合わせて少しいじればおk
813デフォルトの名無しさん:2008/06/06(金) 16:55:28
>791
#include <stdio.h>
void view(int attend[][7][4])
{


int main(void)
{
 int n, d, p, a, attend[15][7][4]={0};

 while(0<=fputs("number : ", stdout) && scanf("%d", &n)==1 && 0<=n && n<=14)
 {
  if(0<=fputs("day : ", stdout) && scanf("%d", &d)==1 && 0<=d && d<=6
  && 0<=fputs("period : ", stdout) && scanf("%d", &p)==1 && 0<=p && p<=3
  && 0<=fputs("attend : ", stdout) && scanf("%d", &a)==1 && 0<=a && a<=1)
  {
   attend[n][d][p]=a;
   view(attend);
  }
  else
  {
   fputs("input error.\n", stdout);
  }
 }

 return 0;
}
814デフォルトの名無しさん:2008/06/06(金) 17:05:41
途中で送信しちゃった

void view(int attend[][7][4])
{
 int i,j,k;

 for(i=0; i<15; i++)
 {
  printf("student no.%d : \n", i);
  fputs(" S M T W T F S\n", stdout);
  for(j=0; j<4; j++)
  {
   printf("period %d : ", j);
   for(k=0; k<7; k++)
   {
    printf("%d ", attend[i][k][j]);
   }
   putchar('\n');
  }
 }
}
815デフォルトの名無しさん:2008/06/06(金) 17:09:58
816デフォルトの名無しさん:2008/06/06(金) 17:11:23
>>797
っつか、劣化さえずにファイルサイズを小さくするってなら
PNG辺りを
817デフォルトの名無しさん:2008/06/06(金) 17:12:34
>>804
高度すぎてワロタ
818デフォルトの名無しさん:2008/06/06(金) 17:14:42
まあ、最悪マイクからの信号を拾えたとしても
「リアルタイム」で解析し、音名を表示ってえぐいなまた
と言うか音「名」ってなんだ?
819デフォルトの名無しさん:2008/06/06(金) 17:15:22
>>818
ドとかそういうんじゃね?
820デフォルトの名無しさん:2008/06/06(金) 17:16:17
内部で絶対音感を持ってる人に処理させればおk
821デフォルトの名無しさん:2008/06/06(金) 17:18:07
内部で初音ミクが処理してるんですね、わかります
822デフォルトの名無しさん:2008/06/06(金) 17:18:19
MikuMikuVoiceの機能を知りたい手合いか
823デフォルトの名無しさん:2008/06/06(金) 17:21:58
音名ってまた曖昧な

ピアノのド=トランペットのレ=ホルンのソ

実音でいいのにな
824デフォルトの名無しさん:2008/06/06(金) 17:21:58
音名表示のソフトとかフリーであるでしょ
まぁ俺はつくれんがwAPIはむり
825デフォルトの名無しさん:2008/06/06(金) 17:23:04
>>805
スーパークイーン強すぎワロタ
826デフォルトの名無しさん:2008/06/06(金) 17:24:02
827デフォルトの名無しさん:2008/06/06(金) 17:24:45
>>646
グレイスケール化だけ
圧縮には未対応
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6805.c
828kokoro:2008/06/06(金) 17:27:10
>>826

もうチョット簡単になりませんか?
for文のところの課題なので、for文(多重ループなど)を使ってお願いします。
++count、#defineはまだ勉強してないのです。
829814:2008/06/06(金) 17:28:32
830デフォルトの名無しさん:2008/06/06(金) 17:29:16
>>828
#define ANSHOU_BANGO 1234
これはソース中にANSHOU_BANGOがあればコンパイル時に1234に置き換えますよということだけです。
831デフォルトの名無しさん:2008/06/06(金) 17:32:21
>>828
こういう入力回数が決まってないループはwhileを使わないといけないと思うんだけど
whileは一回も使っちゃダメ?
832kokoro:2008/06/06(金) 17:34:37
>>831

whileも使ってもおっけいです。
833デフォルトの名無しさん:2008/06/06(金) 17:40:33
ループする条件があるならwhile()特に無しならfor(;;)のが素直だと思う
834デフォルトの名無しさん:2008/06/06(金) 17:42:31
>>828
十分簡単だろうに。一体何が問題なのか理解できん
習ってないから使うな、なんて言われないぞ
835kokoro:2008/06/06(金) 17:44:17
#include<stdio.h>
int main(void)
の次は、int totalMoney = 10000でいいのですか。

return 0; return 1; と書いてありますが、一番最後はreturn 0;で
終わるようにしたいです。
836デフォルトの名無しさん:2008/06/06(金) 17:48:34
むしろmainにはreturn書いてないけどw
終わらせたければreturn 0;足せば良いじゃないw
837デフォルトの名無しさん:2008/06/06(金) 17:48:46
>>835
なかなか難しい注文だなw

>>826の解はcになれてればどうってことないんだけどなw
838デフォルトの名無しさん:2008/06/06(金) 17:49:44
int main ()
{
int type;

while( true ){

if( ( type = selectMainMenu() ) == 0 )
return 0;

if( inputNumber() == 0 )
return 0;

switch( type ){
case 1: deposit(); break;
case 2: withdraw(); break;
case 3: showMoney(); break;
}

printf( "\n" );
}
return 0;
}
839デフォルトの名無しさん:2008/06/06(金) 17:50:31
あーすまん良く見たら書いてた、その上どっちもreturn 0じゃん
840デフォルトの名無しさん:2008/06/06(金) 17:52:11
>>839
だからmainの最後にreturn 0が無いから心配してるだけなんだけど
実はwhileの中でreturn 0;で抜けてるから問題ないんだけどね・・・
841kokoro:2008/06/06(金) 17:53:28
>>836
なんていうのかな・・・?
#include<stdio.h>
int main(void)
}  
 ・
    ・
    ・
 return 0;
}
でおわりたい。みたいな・・・?
842デフォルトの名無しさん:2008/06/06(金) 17:55:11
>>832
for文2箇所で使って、#define使わずに
間違ってたところあったのでそれも訂正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6808.txt

>>835
暗証番号を三回ミスったってのを知らせないといけないから
0と1を区別して返してる、嫌なら関数を使うのをやめないといけないな
843kokoro:2008/06/06(金) 17:58:26
>>842
関数まだやってないから、先生にみせるときチョット・・・まずいかも・・・

関数なしでできますか?
844デフォルトの名無しさん:2008/06/06(金) 18:01:51
c慣れしてる人に関数無しで・・・ってある意味酷だな
845デフォルトの名無しさん:2008/06/06(金) 18:02:38
後だしで条件つけんなよ
846デフォルトの名無しさん:2008/06/06(金) 18:02:51
そこまで条件を後付けするのはわがまますぎるぞ。
自分でプリプロセッシングすれば済む話だろう
847kokoro:2008/06/06(金) 18:04:53
>>844

すみません・・・
何とかなりませんか?お願いします。
848デフォルトの名無しさん:2008/06/06(金) 18:07:16
簡単だけどやること多くてめんどくさい課題って初心者に出すには不向きだと思うがなあ
849kokoro:2008/06/06(金) 18:09:56
そこを何とか・・・お願いします。
本当に困ってるのです。。。

これができないと・・・。
850デフォルトの名無しさん:2008/06/06(金) 18:10:21
851デフォルトの名無しさん:2008/06/06(金) 18:11:23
あーマジで関数却下されるとすげー面倒だなw
思考が関数ありきになってるのでむしろ書けといわれると沸きそうだ
852デフォルトの名無しさん:2008/06/06(金) 18:11:47
このスレで言うのもなんだが、それもできないようじゃ単位落とした方がいいぞ
853kokoro:2008/06/06(金) 18:12:38
>>850
ありがとうございます!!!
本当に助かりました^^


854kokoro:2008/06/06(金) 18:15:18
>>852

ゼミでこれを取ったのですが、今後悔です。
本当分からないので、嫌になります・・・
マジ、単位落としそうだもん。
855デフォルトの名無しさん:2008/06/06(金) 18:17:33
わからないからって人任せにしてたら全然上達しないぞ
書いてもらったソースと勉強に使ってる本見比べて
知識を自分のものにしないとな
856デフォルトの名無しさん:2008/06/06(金) 18:20:35
こんな低レベルでもゼミなのかw
857デフォルトの名無しさん:2008/06/06(金) 18:21:26
てかなんで学生って習ってないのを極端に怖がるの?
「勉強しました」って突っぱねれば問題ないじゃん
858デフォルトの名無しさん:2008/06/06(金) 18:23:23
中高のIT関連の授業の課題かと思ってた。
859kokoro:2008/06/06(金) 18:25:19
>>858

初めてc言語やりました。
テキストと並列してやっているので、やってないところがあると
まずいかなって。

自分なりのプログラム作ってみます。
でもできないところがあったら、マタお願いしてもいいですか
860デフォルトの名無しさん:2008/06/06(金) 18:34:15
聞くこと前提にしてるとまた後悔するぞw
ここ見てりゃ黙っててもソースが出てくるんだから
それみて自分で弄ってみろw
861tk:2008/06/06(金) 18:34:39
n個の常連立微分方程式を4次のRunge-Kuttaを使って解くプログラムを教えてください。
配列とか使うみたいなんですけど。
862デフォルトの名無しさん:2008/06/06(金) 18:46:40
>>805
void solve(int n)
{
    int i,j,k,u,l,flag; //kを追加
    if(n==N){
        count++;
        for(i=0;i<N;i++){
            for(j=0;j<N;j++) printf((board[i]==j)?"Q":"+");
            printf("\n");
        }
        printf("No. %d\n\n",count);
        return;
    }
    for(i=0;i<N;i++) {
        j=n-1;u=i+4;l=i-4;flag=1; //uとlの初期値を変更
        for(k=0; k<3 && j>=0 && flag == 1; k++, j--) if(l<board[j] && board[j]<u) flag = 0; //この一行を追加
        while(flag==1 && j>=0){
            if(board[j]==i || board[j]==l || board[j]==u) flag=0;
            u++;l--;j--;
        }
        if(flag==1){
            board[n]=i;
            solve(n+1);
        }
    }
}

問題写すなら正確に写せよ
863デフォルトの名無しさん:2008/06/06(金) 18:56:27
てか,今の時点での未解決問題はどれぐらいなんだ?
864デフォルトの名無しさん:2008/06/06(金) 18:57:25
気になるなら自分で調べればいいだろ。
865デフォルトの名無しさん:2008/06/06(金) 19:11:35
なんだ、今日はやさしい人が多いなあ
866デフォルトの名無しさん:2008/06/06(金) 19:32:11
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6813.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月9日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
スタックを習っているところです。
よろしくお願いします
867デフォルトの名無しさん:2008/06/06(金) 19:45:05
>>808
解答と合わせて知識にしていきたいと思います

>>812
返答ありがとうございます

>>862
返答ありがとうございます
ミスありましたか どうもすいません
#defineのところですかね…
868デフォルトの名無しさん:2008/06/06(金) 19:47:49
>>867
>if(board[i]==i || board[j]==l || board[j]==u) flag=0;
board[i] じゃなくて board[j]
869デフォルトの名無しさん:2008/06/06(金) 20:04:23
>>868
根本と言っても過言ではないところを間違ってましたか
ありがとうございます
870 ◆DuoCt8/SKk :2008/06/06(金) 20:05:36
>>592について考えていたのですが,途中で分からなくなりました.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6814.txt
良ければ何かアドバイスなどをもらえないでしょうか?(オプション表示の方法や関数など)
よろしくお願いします!
871デフォルトの名無しさん:2008/06/06(金) 20:10:10
>>870
実行してないけどオプションの表示はできてるんじゃないの?
入力させて、それに応じたオプション内容を表示できてるんだから後は
それを変数に入れておけばよいような。
戻り値にしてもいいし、パラメータで受けとってもいいし、グローバルでもいい。
872デフォルトの名無しさん:2008/06/06(金) 20:10:52
[1] 授業単元:C言語による数値計算
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6815.txt
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: Windows Visual Studio
 [3.3] 言語: C++
[4] 期限: 6月8日(日)

自分で作ったプログラムがうまく動いてくれません。
どなたかC言語を用いた数値計算(特に行列計算)に長けている方、
プログラミングに詳しい方、どうかよろしくお願いします。

873 ◆DuoCt8/SKk :2008/06/06(金) 20:16:33
>>871
返事ありがとうございます.
実行すると最初の部分はきちんと表示されるのですが
★★★★★★★★操作お疲れ様でした、商品を排出します★★★★★★
以降の表示がされないのです.あと,
>>入力させて、それに応じたオプション内容を表示できてるんだから後は
>>それを変数に入れておけばよいような。
>>戻り値にしてもいいし、パラメータで受けとってもいいし、グローバルでもいい。
の部分は・・・具体的にどのようにすればいいのでしょうか?
874デフォルトの名無しさん:2008/06/06(金) 20:24:23
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):(http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6816.txt)
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: ([2008年06月10日まで]
[5] その他の制限:問題の文をベースにして、
new old bodyという変数にして、
ab xy acabcならbodyのabのところにxyを置き換え、またnewの値がなかった場合
そのままbodyを出力するというプログラムを作ることです。
875デフォルトの名無しさん:2008/06/06(金) 20:34:54
>>872
変数 ‘y1’を使ってないようだけど、式は正しい?
876デフォルトの名無しさん:2008/06/06(金) 20:57:48
>>872
b[N]とかa[N][N]ってなにをしたいの?
877デフォルトの名無しさん:2008/06/06(金) 21:01:44
>>872
>>875

ごめんなさい
指摘どおり間違ってたので修正うp
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6817.txt

y1を入れました
878デフォルトの名無しさん:2008/06/06(金) 21:08:14
>>876
A*X=Bの方程式のAを行列a[N][N]、Bを行列b[N]として
行列を使ってXを解かないといけないらしくて

つまりX=A^(-1)*BにしてXを求めるみたいです
879デフォルトの名無しさん:2008/06/06(金) 21:09:46
宿題:数式処理ソフトMaximaと同等のソフトウェアを明日までに作れ
ソースファイルの行数は1000行以内。
880デフォルトの名無しさん:2008/06/06(金) 21:13:19
>>875
>>877

何度もすみません、こっちでした
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6818.txt

そちらは間違ってました
881デフォルトの名無しさん:2008/06/06(金) 21:14:54
>>879
コンソールでコマンド受け付けて裏でmaximaに投げればいい
882デフォルトの名無しさん:2008/06/06(金) 21:16:42
>>878
そういうことじゃなくてb[N]にアクセスすんなってことなんだけど
883デフォルトの名無しさん:2008/06/06(金) 21:26:29
>>880
バカですみません
printf("y1 = "); scanf("%lf",&y2);じゃなくてprintf("y1 = "); scanf("%lf",&y1);でした


>>882
申し訳ありません、プログラミングに詳しくないので
「b[N]にアクセスするな」とはprintf("%lf\n", b[i]);とdouble gauss( double a[14][14], double b[14] )の
部分ですか?
よろしければ解決策を教えて下さい
884デフォルトの名無しさん:2008/06/06(金) 21:34:36
>>882
double gauss( double a[14][14], double b[14] )の
/* 後退代入 */
b[N] = b[N]/a[N][N];
のとこはは部分ピボット付きガウス消去法をコピペしてきただけなので
詳しい仕組みやアクセスやらはよく分からないです
885デフォルトの名無しさん:2008/06/06(金) 21:49:16
>>206
double b[14];
こう宣言を行ったときは、b[0] 〜 b[13] までの14要素であって、
b[N] == b[14] にはアクセスしちゃいけないってこと。
Nをdefineしたのに14という数字があちこちに散らばってる
(マジックナンバーていいます)のもよくないよ。
886885:2008/06/06(金) 21:50:18
なんかレスアンカミスった><
>>885>>883 宛てです
887デフォルトの名無しさん:2008/06/06(金) 21:59:14
本人が何をしてるかわからないもののデバッグなんてさせんな
888デフォルトの名無しさん:2008/06/06(金) 22:02:09
889デフォルトの名無しさん:2008/06/06(金) 22:06:56
何も分からんならmaximaでもmathematicaでも好きに使って解けばいい
890デフォルトの名無しさん:2008/06/06(金) 22:09:26
>>887
じゃあ宿題を片付けますスレに来なければいいじゃんww

分からない人やできない人を貶したいだけなら他に逝けよ
891デフォルトの名無しさん:2008/06/06(金) 22:10:56
>>890
そういうお前も文句つけたいだけだなw
892デフォルトの名無しさん:2008/06/06(金) 22:22:48
>>891
うわぁ.......

まるで餓k(ry
893デフォルトの名無しさん:2008/06/06(金) 22:31:29
>>884
とりあえずループ変数を<=Nじゃなくて<Nまでにしてみたら?
894デフォルトの名無しさん:2008/06/06(金) 22:33:52
一から問題解くならいいけど、腐ったコードの手直しさせられるのは勘弁願いたい
どんだけ凡ミスあるかいちいちチェックしなきゃいけないのかよ
895デフォルトの名無しさん:2008/06/06(金) 22:42:07
俺もあの有名なサイト「初心者のため(ry」でひどいソースを呈示され
「どこが間違ってるんでしょうか」と言われ、あまりのひどさに一からソースを
起こして書いてやったらすぐ書けてしかも正常に動いた。

ところが質問者が「元のソースを手直しして欲しいのです」と来たもんだ。
金もらってるならともかく、こんなボンクラの相手をしている暇はないので
それ以降無視してやった。
896デフォルトの名無しさん:2008/06/06(金) 23:22:21
>>873
張ってあるソースは全然使ってないし、ごちゃごちゃしてわかりずらいかもしれないけど、
できたのでうp (まだ気に入らないところあるけど、言い出したらきりないしね)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6820.c
897 ◆DuoCt8/SKk :2008/06/06(金) 23:30:46
>>896
わざわざソースを書いて頂きありがとうございます!
参考書を使いながら理解に励もうと思います.
898デフォルトの名無しさん:2008/06/06(金) 23:50:38
>>897
質問者の皆が皆こんな感じの人なら気持ちいいのにな
頑張ってね
899デフォルトの名無しさん:2008/06/06(金) 23:59:58
>>897

今回は高度すぎて、、とかじゃなくて理解しようと思いましたかw
いい心がけだとおもいますー。応援してるお
900デフォルトの名無しさん:2008/06/07(土) 00:06:41
[1] C
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6822.txt
[3]
 [3.1] LINUX
 [3.3] C
[4] 6月9日
[5] 記載のプログラムに付け加える形でお願いします

よろしくお願いします
901896:2008/06/07(土) 00:48:25
>>897
一部変数名がなんかおかしいところあるから気をつけてね
最初、optvol_tのところoptmode_tで作ってたのを
あげる前に見直してモードじゃおかしいな、量だなってことでoptmode_t だったのを optvol_tに
代えたんだけど、関連する場所(option_t 内のmode, modeflgとか)変更するの忘れてた
ソースの修正はやっぱ慎重にしなきゃね
902デフォルトの名無しさん:2008/06/07(土) 00:49:16
そんな変更エディタの機能でやればいいのに
903デフォルトの名無しさん:2008/06/07(土) 01:02:48
置換 mode→vol でおk
904デフォルトの名無しさん:2008/06/07(土) 01:05:46
>>874
日本語で
905896:2008/06/07(土) 01:09:11
>>897
変数名修正したのあげときます(なんかまだおかしいとこありそうだけど)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6823.c
906デフォルトの名無しさん:2008/06/07(土) 01:37:41
>>874
tr コマンドみたいなものでおk?
907デフォルトの名無しさん:2008/06/07(土) 01:39:29
この規模なら気にしなくていいけど、エディタの機能でやるときには
慎重にやらないとだなあ。
リファクタリング機能のある開発環境ならさっくりだけど。
908デフォルトの名無しさん:2008/06/07(土) 03:01:33
[1] 授業単元: C言語
[2] 問題文:
入力文字列からトークンを切り出してchar配列に格納するプログラムを作成する。
 
<入力文字列の指定条件とトークンの切り出しについて>
 ・入力文字はASCIIコードのみとする。
 ・デリミタとなる文字は半角スペースとする。
  例) 入力が「abc defg hij」 → 「abc」、「defg」、「hij」の3つのトークン
 ・半角スペースを含むトークンは"(ダブルクォート)でトークンを囲む。
  例) 入力が「abc "d e f g" hij」 → 「abc」、「d e f g」、「hij」の3つのトークン
 ・トークンに"(ダブルクォート)自体が含まれる場合は""のように2回指定する。
  例) 入力が「abc "d e "" f g" hij」 → 「abc」「d e " f g」「hij」の3つのトークン

[3] 環境
 [3.1] OS: Ubuntu 8.04
 [3.2] コンパイラ名とバージョン: gcc4
 [3.3] 言語: C
[4] 期限: 来週まで
[5] その他の制限:
トークンの個数や入力文字列の長さは特に上限がないので、自分で設定してよいそうです。
試しにstrsep()で空白スペースをデリミタにすると、やはりトークンがおかしくなります。

長くなりましたが、よろしくお願いいたします。
909デフォルトの名無しさん:2008/06/07(土) 03:53:36
>>908
abc"def""ghi"jkl とかは?
910デフォルトの名無しさん:2008/06/07(土) 07:20:12
>>909
4番目の条件に合致しない?
911 ◆DuoCt8/SKk :2008/06/07(土) 08:19:55
>>901
>>905
そうだったのですか・・・全くわかりませんでした,指摘して頂きありがとうございます.
引き続き頑張ってみます!

912デフォルトの名無しさん:2008/06/07(土) 09:59:53
>>910
デリミタとして指定されてるのが半角スペースだけだから
abc"def""ghi"jklが
abc
def"ghi
jkl
なのか
abcdef""ghijkl
なのかどっちで作ればいい?ってことでしょ。
913デフォルトの名無しさん:2008/06/07(土) 10:02:30
あ、あと4つに分割する可能性もあるのか。
914639:2008/06/07(土) 10:33:41
>>639ですが
あれからしばらく自分なりに頑張ってみたのですが
どうにもうまくいかず…
gccは無理なのでしょうか?

すみませんがアドバイスお願いします
915908:2008/06/07(土) 10:55:54
>>909
>>910
>>912
入力文字列が「abc"def""ghi"jkl」の場合は、
デリミタの半角スペース無しで"(ダブルクォート)が
指定されたという事でフォーマットエラーとするそうです。
 × 「abc"def""hki"jkl」
 ○ 「abc "def""ghi jkl」
916908:2008/06/07(土) 10:58:43
すみません。記述ミスしました。
 × 「abc"def""hki"jkl」 → 'c'の後に'"'なのでフォーマットエラー
 ○ 「abc "def""ghi" jkl」 → 「abc」「"def"hki」「jkl」の3つのトークン
917デフォルトの名無しさん:2008/06/07(土) 11:23:57
>>914
物凄くやっつけで完璧に動作するか知らないけどこんなんで良いならどうぞ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6824.txt
918908=916:2008/06/07(土) 11:34:43
また間違えました。もう何か駄目だ…
 × 「abc"def""hki"jkl」 → 'c'の後に""でなく"dとなっているのでフォーマットエラー
 ○ 「abc "def""ghi" jkl」 → 「abc」「def"hki」「jkl」の3つのトークン
919639:2008/06/07(土) 11:49:50
>>917氏、ありがとうございます
とてもありがたいですm(_ _)m
920デフォルトの名無しさん:2008/06/07(土) 12:22:39
>>810
忘れ去られてそうなので…
921デフォルトの名無しさん:2008/06/07(土) 12:55:06
>>810 (>>920)
問題の意味が分かりません
ついでにC++?C?
922ロベ:2008/06/07(土) 13:14:42
>>888
ありがとうございました。
その他の方も色々とありがとうございました。
923デフォルトの名無しさん:2008/06/07(土) 14:48:10
期限過ぎてない奴で反応がない課題(多分)

6/9 >>485 >>866
6/11 >>765
6/14 >>597
6/18 >>608
6/20 >>179
924874:2008/06/07(土) 15:19:25
すいません、わかりにくく書いてしまって。
いいたいことは、張ったコードをmember()で利用して
そのアルファベットがあれば置き換えるプログラムが作りたいのです。
よろしくお願いします。
925デフォルトの名無しさん:2008/06/07(土) 17:50:41
>>908
エラー処理がやっつけなので、もっとデバッグする必要あり
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6825.txt
926デフォルトの名無しさん:2008/06/07(土) 20:27:29
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt

[1] 授業単元:コンピュータグラフィックス
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VisualC++6.0
 [3.3] 言語: C++
[4] 期限:6月10日までにお願いします。
[5] その他の制限:元の図をもとに、できるだけ簡単にお願いします。
927925:2008/06/07(土) 21:51:07
>>908
スレが進んでいなかったので、自分デバッグしてみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6827.txt
928デフォルトの名無しさん:2008/06/07(土) 22:08:47
>>765
fork1とfork2は外部プログラムとして呼ぶの?
それとも、親プログラムに埋め込むの?
929デフォルトの名無しさん:2008/06/07(土) 22:44:44
[1] 授業単元:c言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6828.txt
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:できるだけ簡単なプログラムでお願いします
お願いします
930デフォルトの名無しさん:2008/06/07(土) 22:47:06
>>929
問題は?
931929:2008/06/07(土) 22:47:29
929です
すいませんが問題の追記です
このプログラムが正常に作動するように記述を追加しなさい
入力される文字列は9文字以下とする
m<_ _>m
932デフォルトの名無しさん:2008/06/07(土) 22:49:51
char *str[NUM] → char str[NUM][10]
933デフォルトの名無しさん:2008/06/07(土) 22:50:08
コメントアウトする馬鹿登場
934デフォルトの名無しさん:2008/06/07(土) 22:51:02

コメントアウトする馬鹿
935デフォルトの名無しさん:2008/06/07(土) 22:53:48
追加限定なら
#include <stdlib.h>
for(i=0; i<NUM; i++) str[i] = malloc(10);
for(i=0; i<NUM; i++) free(str[i]);
をそれぞれ適切な位置に追加
936デフォルトの名無しさん:2008/06/07(土) 23:06:38
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kadai01.c
コマンドラインから加算もしくは減算の式を入力し
以下のような結果になるように/*記述*/のところを追加して完成させよ
#include <stdio.h>
#include <stdlio.h>
int main(int argc, char *argv[])
{
int result;
/*記述*/
printf("result = %d\n",result);
return(0);
}

結果
kadai01 10 + 21
31

[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)すみませんわかりません
 [3.3] 言語: C
[4] 期限:月曜まで(できるだけ早めで)
[5] その他の制限:大学2年レベルでお願いします
937デフォルトの名無しさん:2008/06/07(土) 23:08:21
>>936

result=argv[0]+argv[2];
938デフォルトの名無しさん:2008/06/07(土) 23:09:48
result = atoi(argv[1]);
if(argv[2]=='+') result += atoi(argv[3]);
else if(argv[2]=='-') result -= atoi(argv[3]);
939デフォルトの名無しさん:2008/06/07(土) 23:10:56
>>932
早い解答ありがとうございます
940デフォルトの名無しさん:2008/06/07(土) 23:12:27
>>938
ちょw
941デフォルトの名無しさん:2008/06/07(土) 23:13:42
>>938
これはひどい
942デフォルトの名無しさん:2008/06/07(土) 23:14:49
argv[2][0]=='+' か strcmp(argv[2],"+")==0 だな
943デフォルトの名無しさん:2008/06/07(土) 23:21:16
936
減算の場合は+をそのまま-にすればいいんでしょうか?
944デフォルトの名無しさん:2008/06/07(土) 23:43:37
[1]プログラミング
[2]問題文
三つの整数値を読み込んで、それらの値が全て等しければ、「三つの値は等しいです。」と、どれか二つの値が等しければ、「二つの値が等しいです。」と、そうでなければ、「三つの値は異なります。」と表示するプログラムを作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
945デフォルトの名無しさん:2008/06/07(土) 23:46:03
条件演算子で済ませる馬鹿
 
947デフォルトの名無しさん:2008/06/07(土) 23:52:47
#include <stdio.h>

int main(void)
{
int a, b, c;
char *str[] = {"三つの値は異なります。","二つの値が等しいです。","", "三つの値は等しいです。"};

scanf("%d%d%d", &a, &b, &c);
printf("%s\n", str[(a==b) + (b==c) + (c==a)]);

return 0;
}

948デフォルトの名無しさん:2008/06/08(日) 00:03:59
おい、全部等しかったら死ぬぞ
949デフォルトの名無しさん:2008/06/08(日) 00:05:02
勝手に死んでろよw
950デフォルトの名無しさん:2008/06/08(日) 00:06:06
死なない
空文字列が目に入らぬか?
951デフォルトの名無しさん:2008/06/08(日) 00:07:59
>>948 答えもせず、さらに間違うとは、お前このスレには必要ねーな
一生ROMってろ
952デフォルトの名無しさん:2008/06/08(日) 00:13:19
[1] 授業単元:
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6832.txt
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:月曜日まで
[5] その他の制限:大学生レベルでお願いします
よろしくお願いします
953デフォルトの名無しさん:2008/06/08(日) 00:31:35
d = malloc(sizeof(char *) * NUM);
for(i=0; i<NUM; i++) {
for(j=0; p[i][j]; j++);
d[i] = malloc(j + 1);
while(j >=0) {
d[i][j] = p[i][j];
j--;
}
}

func(ccc);
954デフォルトの名無しさん:2008/06/08(日) 00:37:44
>>953
ありがとうございます
ですがmallocをまだ習ってないので
使わずにできませんか?
955デフォルトの名無しさん:2008/06/08(日) 00:39:27
>>954
>d[NUM][文字列の長さ+1]を動的にメモリ上に確保する
それだとこれができない
956デフォルトの名無しさん:2008/06/08(日) 00:39:29
callocは習った?
957デフォルトの名無しさん:2008/06/08(日) 00:40:27
mallocを習わずどうしてfreeが出てくるんだ?
958デフォルトの名無しさん:2008/06/08(日) 00:40:42
>>956
はいcallocは習いました
959デフォルトの名無しさん:2008/06/08(日) 00:42:26
習ってない事はやらないのが大学生レベルですか?
960デフォルトの名無しさん:2008/06/08(日) 00:42:56
じゃあ
malloc(sizeof(char *) * NUM) → calloc(NUM, sizeof(char*))
malloc(j + 1) → calloc(j+1, 1)
961デフォルトの名無しさん:2008/06/08(日) 00:45:47
>>960
ありがとうです!!
962デフォルトの名無しさん:2008/06/08(日) 00:47:01
calloc教えてmalloc教えないとはw
それか単にmallocは習ったけど脳内スルーで習ってないことになってるか
963デフォルトの名無しさん:2008/06/08(日) 00:48:37
realloc、エラ張るとテネスは学びました!バブルソートは習ったけど
基本洗濯、クックソートは学んでいませんです、はいっ!おながいします!
964デフォルトの名無しさん:2008/06/08(日) 00:51:42
953まで誰も答えないのに、954が出たとたんに書き込み増えるってw
ホントにこの時間はケチつけたいだけのヤツがいるんだな
965デフォルトの名無しさん:2008/06/08(日) 00:53:14
>>964
だからそれがお前だろ?
966デフォルトの名無しさん:2008/06/08(日) 00:53:27
別に自己紹介しなくてもいいだろ
967デフォルトの名無しさん:2008/06/08(日) 00:54:33
>>965
いや俺は953で960だ。
ついでに言えば932で935で947でもある。
968デフォルトの名無しさん:2008/06/08(日) 00:55:49
ケチつけてるのは俺だけだけど?
969デフォルトの名無しさん:2008/06/08(日) 00:59:58
970デフォルトの名無しさん:2008/06/08(日) 01:26:43
>>969
いや、2chなんて捻くれてる人間だから
ケチつけて情報を引き出すの。
971デフォルトの名無しさん:2008/06/08(日) 01:32:06
麻呂のクソースはケチをつけられようが、早く出せと言われようが
またーりと記述した後適当にうpするでおじゃるよ?
972デフォルトの名無しさん:2008/06/08(日) 04:47:03
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
非再帰的な方法でヒープソートを実装せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: 2008/6/9まで
[5] その他の制限: http://www2.uploda.org/uporg1469814.txt.html
まで書いたのですが、きちんとソーティングされなくて困ってます。
どこがおかしいのでしょうか?
よろしくお願いします。
973デフォルトの名無しさん:2008/06/08(日) 05:27:49
>>972
プロトタイプ宣言が・・・・
974デフォルトの名無しさん:2008/06/08(日) 05:32:47
プロトタイプ宣言とソーティングされないのは関係ないだろw
975デフォルトの名無しさん:2008/06/08(日) 06:03:42
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t p1, p2;
switch (p1 = fork()) {
case -1: perror("fork"); return 1;
case 0: /* ここに fork1 の内容を書く */
_exit(0);
default: break; }
switch (p2 = fork()) {
case -1: perror("fork"); return 1;
case 0: /* ここに fork2 の内容を書く */
_exit(0);
default: break; }
976デフォルトの名無しさん:2008/06/08(日) 06:04:27
for (; p1 != -1 || p2 != -1;) {
pid_t c;
int status;
if ((c = wait3(&status, 0, NULL)) == -1) { perror("wait3"); break; }
if (c == p1) {
if (WIFEXITED(status)) printf("fork1 exit (%d)\n", WEXITSTATUS(status));
else printf("fork1 killed (%d)", WTERMSIG(status));
p1 = -1;
}
if (c == p2) {
if (WIFEXITED(status)) printf("fork2 exit (%d)\n", WEXITSTATUS(status));
else printf("fork2 killed (%d)", WTERMSIG(status));
p2 = -1;
}
}
return 0;
}
977デフォルトの名無しさん:2008/06/08(日) 06:28:11
>>972
- iter_heap(a,0,size-2);
+ iter_heap(a,0,size-2);
もう一カ所間違いがあるが、自分で探せ。
978デフォルトの名無しさん:2008/06/08(日) 08:09:30
>>977
もちつけ
979デフォルトの名無しさん:2008/06/08(日) 08:21:35
完全ニ分木って階層を渡って一列に整列できるよね
ある節の子の左の子の添え字を返す関数かいてみてくれない
いやならいいけど
多分嫌だろうけど
980デフォルトの名無しさん:2008/06/08(日) 09:31:12
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6833.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC6
 [3.3] 言語: c++
[4] 期限: 2008/6/10
[5] その他の制限: 問題文中の制限

お願いします(・ω・`)
981側近中の側近 ◆0351148456 :2008/06/08(日) 09:45:57
>>980
(っ´▽`)っ
こんな簡単なプログラムなら自分で作ればいいじゃない
982側近中の側近 ◆0351148456 :2008/06/08(日) 09:50:18
>>980
(っ´▽`)っ

#include <stdio.h>
int main(void)
{
  int h[10];
  int i;
  for(i = 0; i < sizeof(h)/sizeof(h[0]); i++){
    h[i] = 10 - i;
    printf("h[%d] = %d\n", i, h[i]);
  }
  printf("h[%d] = %d\n", 3-1, h[3-1]);
  printf("h[%d] = %d\n", 5-1, h[5-1]);
  return 0;
}
983側近中の側近 ◆0351148456 :2008/06/08(日) 09:55:27
(っ´▽`)っ
これはC言語であって、C++じゃない
というような野暮なことは言わないように。
984デフォルトの名無しさん:2008/06/08(日) 10:28:10
ああc++でした

いくつか似たような問題とかないといけないので参考にさせていただきます
有難うございました(´・ω・)
985デフォルトの名無しさん:2008/06/08(日) 10:31:45
すいません、どなたか>>866お願いします
986デフォルトの名無しさん:2008/06/08(日) 10:49:57
[1]プログラミング
[2]問題文
要素数がnoであるint型の配列v2の並びを逆順にしたものを配列v1に格納する関数を、動作を確認するための適切なメイン文も含め作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
[5]なるべく単純な書き方にしてもらいたいです。
よろしくお願いいたします。

987側近中の側近 ◆0351148456 :2008/06/08(日) 11:08:15
>>986
(っ´▽`)っ
以前回答しただろうがっ
988デフォルトの名無しさん:2008/06/08(日) 11:13:21
989側近中の側近 ◆0351148456 :2008/06/08(日) 11:14:16
>>986
(っ´▽`)っ

void sortInverse(int *v1, int *v2, int no);

int main(void)
{
  int no;
  int i;
  int v1[] = {1, 2, 4, 8, 16, 32, 64};
  int v2[7];
  no = sizeof(v1)/sizeof(v1[0]);
  for(i = 0; i < no; i++){
    printf("v1[%d] = %d\n", i, v1[i]);
  }
  sortInverse(v1, v2, no);
  for(i = 0; i < no; i++){
    printf("v2[%d] = %d\n", i, v2[i]);
  }
}
return 0;
}

void sortInverse(int *v1, int *v2, int no)
{
  int i;
  for(i = 0; i < no; i++){
    v1[i] = v2[no - i - 1];
  }
  return;
}
990側近中の側近 ◆0351148456 :2008/06/08(日) 11:14:56
(っ´▽`)っ
>>989は微妙に間違っているがそれがいい。
>>986は苦しめ☆
991デフォルトの名無しさん:2008/06/08(日) 11:32:03
>>988
ありがとうございます!
例題では
pop 1 回目 50 をpop します。 スタックの中 [ 40 30 20 10 ]
pop 2 回目 40 をpop します。 スタックの中 [ 30 20 10 ]


のところが、書いてもらったプログラムでは
pop 1 回目 50 をpop します。 スタックの中 [ 10 20 30 40 ]
pop 2 回目 40 をpop します。 スタックの中 [ 10 20 30 ]


となっているのですが、どうすればいいのでしょうか?
992デフォルトの名無しさん:2008/06/08(日) 11:36:30
>>991
失礼いたしました。printstack関数を変更して下さい。
/* スタックの出力 */
void printstack(CELL *stack)
{
    int i;
   
    printf("\tスタックの中 [ ");
    for(i = stack->top - 1; i > 0; i--){
        printf("%d ", stack->element[i]);
    }
    /* for文の中に判定文を入れたくなかったから、外に出した */
    if(i == 0){
        printf("%d ", stack->element[i]);
    }
    printf("]\n");
}
993デフォルトの名無しさん:2008/06/08(日) 11:40:32
>>992
ご丁寧にありがとうございます。
ちゃんと動作しました!
994デフォルトの名無しさん:2008/06/08(日) 12:31:30
次スレ
C/C++の宿題を片付けます 109代目
http://pc11.2ch.net/test/read.cgi/tech/1212895856/
995デフォルトの名無しさん:2008/06/08(日) 12:46:14
>>992
なんで外に出してるの?
996デフォルトの名無しさん:2008/06/08(日) 14:49:06
中に出すと出来ちゃうから。
997デフォルトの名無しさん:2008/06/08(日) 14:51:11
>>996 指導 減点1
998765:2008/06/08(日) 16:49:26
>>928
言葉足らずで申し訳ありませんでした。
外部プログラムとして呼ぶ形でお願いいたします。
999デフォルトの名無しさん:2008/06/08(日) 17:02:34
999
1000デフォルトの名無しさん:2008/06/08(日) 17:03:10
うめ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。