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

このエントリーをはてなブックマークに追加
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

【前スレ】
C/C++の宿題を片付けます 65代目
http://pc8.2ch.net/test/read.cgi/tech/1147902222/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
2デフォルトの名無しさん:2006/06/28(水) 16:09:34
2
3デフォルトの名無しさん:2006/06/28(水) 17:39:57
10行10列の行列を考える。
各要素に0〜99の範囲で乱数を入力する。

各行の要素の値について、合計値を表示する。
各列の要素の値について、合計値を表示する。


例)

0  5  3  2    10
3  8  6  0    17
2  3  6  4    15
1  4  7  9    21

6 20 22 15


補足)

乱数は rand() を使って発生させる。

この課題を教えてください。お願いしますm(__)m
4デフォルトの名無しさん:2006/06/28(水) 18:00:14
[1] ポインタと配列
[2]試験の点数データ配列を用いて、10点間隔ごと及び満点(100点)にいくつのデータがあるか
書き出すプログラムhistgram.cを
書きなさい。

点数データ:int grade〔12〕={100、95、47、88、86、92、75、89、81、70、55、80};
出力
0−9:0
10−19:0
20−29:0
30−39:0
40−49:1
50−59:1
60−69:0
70−79:2
80−89:5
90−99:2
100 :1

[3] 環境
 [3.1] OS windowsXP: (Windows/Linux/等々)
 [3.2] Borland c++ compiler 5.5
 [3.3] 言語:C
[4] 期限: 今週の金曜日
[5] 今のところfor文とかポインタ配列程度の知識で
構造体とかそっちのほうは習っていません
お願いします
5デフォルトの名無しさん:2006/06/28(水) 23:06:54
なんでスレ立てたんだ?
6デフォルトの名無しさん:2006/07/05(水) 15:35:41
いや高飛びは実際に砦内で使えちゃった
今後修正される保障はもちろん無いが・・・
そういうのが良い方向に行われた事って殆どないからな。
7デフォルトの名無しさん:2006/07/05(水) 19:01:40
前スレが埋まったんでこっちを勃起age
8デフォルトの名無しさん:2006/07/05(水) 19:02:16
69代目まだー?
9デフォルトの名無しさん:2006/07/05(水) 19:04:10
[1] C言語入門
[2]

file:
11.33 22.33 22.33 22.33 22.34 33.34
11.22 22.22 22.44 22.22 22.12 33.34
11.22 22.22 22.44 22.22 22.12 33.34
11.22 22.22 22.44 22.22 22.12 33.34
11.22 22.22 22.44 22.22 22.12 33.34
上のようなファイルにおいて
このように一行が例えば、11.33から三個スペースその後数字
また三個スペースと続いているn行のファイルからsscanfを使って
読み込むプログラムを作れ。

[3] 環境
 [3.1] OS: (Linux)
 [3.2] gcc
 [3.3] (C

[4] 2006年 7月6日
10デフォルトの名無しさん:2006/07/05(水) 19:10:40
11デフォルトの名無しさん:2006/07/05(水) 19:12:46
>>9チェックのためレス
12デフォルトの名無しさん:2006/07/05(水) 19:16:46 BE:69876566-#
なんで66代目ばかりを乱立するんだろう。66代目だけで5本目。
13デフォルトの名無しさん:2006/07/05(水) 19:19:53
さぁ、学習能力や統率力の無い自分勝手な奴がスレ立てするかでそ
14デフォルトの名無しさん:2006/07/05(水) 19:21:38 BE:124224588-#
>>9
1行にいくつの数値があるかというのは固定なのか可変なのかどっちだ。
15デフォルトの名無しさん:2006/07/05(水) 19:30:21
16デフォルトの名無しさん:2006/07/05(水) 19:31:18
馬鹿ばっか
17デフォルトの名無しさん:2006/07/05(水) 19:35:56 BE:69877049-#
18デフォルトの名無しさん:2006/07/05(水) 19:39:10
はじめまして 専門学校に通っています。
どうしてもわかりません。m(___ ___)m

[1] C言語の授業
[2] FILE *fp;
char s[256];
if ((fp = fopen("smpl.txt", "r")) == NULL) {
printf("file open error!!\n");
exit(1);
}
while (fgets(s, 256, fp) != NULL) {
printf("%s", s);
}
fclose(fp);

[3] 環境
 [3.1] Windows XP
 [3.2] gcc 3.4 VC 6.0
 [3.3] C言語

[4] 2006年07月06日10:00まで

問題点:ファイルの入力をファイル名ではなく、フォルダに格納されている
複数のテキストファイルを読み込みたいのですが、どうしてもわかりません。

フォルダに格納されている、複数のテキストファイルを読み込むために、
ファイル名のところをフォルダのパスを記述すれば、自動でフォルダ内の
テキストファイルを読み込んでくれるのでしょうか?
19デフォルトの名無しさん:2006/07/05(水) 19:41:42
【質問テンプレ】
[1] 授業単元: オペレーティングシステム
[2] 問題文(含コード&リンク):
httpプロキシ(http_proxy)を作成せよ
・forkにより子プロセスを生成することでリクエストの並行処理をサポートすること
[3] 環境
 [3.1] OS: windowsXP,cygwin
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: ([2006年07月16日23:59まで]
[5] その他の制限: ファイル入出力、プロセス制御、パイプ生成に
関してはシステムコールを用いること。
20デフォルトの名無しさん:2006/07/05(水) 19:43:39
>>9
#include <stdio.h>

int main(void){
FILE *fp;
char str[250];
double n[6];

fp = fopen("test.txt", "r");
if (fp){
while(fgets(str, sizeof(str), fp)){
sscanf(str, "%lf %lf %lf %lf %lf %lf\n", &n[0], &n[1], &n[2], &n[3], &n[4], &n[5]);
printf("%.2f %.2f %.2f %.2f %.2f %.2f\n", n[0], n[1], n[2], n[3], n[4], n[5]);
}
fclose(fp);
}
return 0;
}
21デフォルトの名無しさん:2006/07/05(水) 19:45:46
"dir\smpl.txt"とか
22デフォルトの名無しさん:2006/07/05(水) 19:49:48
>>21 レスありがとうございます。
しかし "dir\smpl.txt"だと テキスト名も記述しちゃいますよね?

フォルダ内には複数のテキストファイルがあり、おのおの名前が違います。
smpl.txt/test.txt/AAA.txt/etc
このテキスト名を記述しないとやはり無理なんでしょうか?
フォルダのパスを記述して、後は自動でファイルを次々読み込んでくれるのが
目的なんです。 
23デフォルトの名無しさん:2006/07/05(水) 19:53:16
>>22
そんな方法があるなら俺が知りたい
24デフォルトの名無しさん:2006/07/05(水) 19:53:39
[1]C言語
[2]
int eval[3]という1次元配列を用意して
eval[0]には0〜60の数の個数
eval[1]には61〜80の数の個数
eval[2]には81〜100の数の個数
を格納するようにし、それらを出力するプログラムを作成しなさい。
[3]
 [3.1]Linux
[3.2]Cコンパイラ
[3.3]C++
[4]明日の朝の10:10まで。
[5]初歩的なことしか習ってません。
25デフォルトの名無しさん:2006/07/05(水) 19:56:09 BE:31055982-#
>>24
>0〜60の数の個数

何を数えるんだ。この場合は61でいいのか?
26デフォルトの名無しさん:2006/07/05(水) 20:02:33
>>18
http://wisdom.sakura.ne.jp/system/winapi/win32/win110.html
これの一番上のプログラムを改造すればいいんでないの
27デフォルトの名無しさん:2006/07/05(水) 20:04:24
>>26 ありがとうございます。 参考にして勉強してみます!!
28デフォルトの名無しさん:2006/07/05(水) 20:29:11
ここが本スレでおk?
29デフォルトの名無しさん:2006/07/05(水) 20:31:40
[1] 授業単元:
[2] 問題文(含コード&リンク):
0,1,2,3,4のいずれかの数字から成り立つ4桁の数を1桁目と4桁目、2桁目と3桁目をそれぞれ入れ替えて
もとの数との和を表示するプログラムを作成しなさい。
つまり、1234と入力された場合1234と4321を足した5555を表示しなさい。
実行例
./hoge
1234
5555
[3] 環境
 [3.1] OS: (Windows/Linux/等々) linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc4.0
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 無期限
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
とくになし

よろしくお願いします
3024:2006/07/05(水) 20:40:18
>>25

あ!初めに
34 57 45 21 89 63 39 48 78 68 76 84 92 53 62
って数字が書かれてたので、この中から数えるってことのよう
です。
これらの数値の意味がわけ解らなかったので講師のミスかと思って
書いてませんでした。すいません。
31デフォルトの名無しさん:2006/07/05(水) 20:41:30 BE:93168768-#
>>29
#include<stdio.h>
#include<stdlib.h>
int main(void){char tmp[10];int n;char c;fgets(tmp,sizeof(tmp),stdin);n=atoi(tmp);
if(0<=n&&n<=9999){c=tmp[0];tmp[0]=tmp[3];tmp[3]=c;c=tmp[1];tmp[1]=tmp[2];tmp[2]=c;
printf("%d\n",n+atoi(tmp));}return 0;}
32デフォルトの名無しさん:2006/07/05(水) 20:46:09 BE:23292162-#
>>24
#include<stdio.h>
static int table[]={34,57,45,21,89,63,39,48,78,68,76,84,92,53,62,};
int main(void){int i,eval[3];for(i=0;i<sizeof(eval);i++)eval[i]=0;
for(i=0;i<sizeof(table);i++)if(0<=table[i]&&table[i]<=60)eval[0]++;
else if(61<=table[i]&&table[i]<=80)eval[1]++;else if(81<=table[i]&&table[i]<=100)eval[2]++;
for(i=0;i<sizeof(eval);i++)printf("eval[%d]=%d\n",i,eval[i]);return 0;}
33デフォルトの名無しさん:2006/07/05(水) 20:48:59
[1] 授業単元: 順序データとリスト構造
[2] 問題文:
1.ばらばらの順に格納されたA,B,C,D,E,F,Gのアルファベットと次の場所を指すポインタを構造体の配列で表し、
A,B,C順に表示して、指定した文字を削除もしくは挿入するプログラムを作成せよ。

2.以下の文章を単語ごとに格納した構造体の配列で表現してから
出力し、指定された単語の削除や挿入を行うプログラムを作成せよ。
How was your weekend? It was great. What did you do? I went to Disneyland. I had a great time.

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:07月06日まで
[5] その他の制限:特になし

お願いします

3424:2006/07/05(水) 20:58:55
>>32
ありがとうございます。
助かりました。
35デフォルトの名無しさん:2006/07/05(水) 21:02:34
>>29の最大の4桁はは4321?
36Javaはイイ:2006/07/05(水) 21:07:39
>>http://pc8.2ch.net/test/read.cgi/tech/1151158759/996
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28005

>すべての4 桁の数のうち、上2 桁の数の和が偶数であるものの合計を求めるプログラム。
~~~~~~
という部分がよくわからないのですが、取りあえず上2桁の和が偶数の4桁の整数から和を求めるプログラムを作ってみました。
奇数の場合は入力した整数値を表示するようにしてます。
尚、数式部は遊び心ということでご了承ください。
37976:2006/07/05(水) 21:42:51
前スレの976です。
最後の方に書いたためレスがつかなかったので申し訳ないですが、もう一度
質問させて下さい。

[1]授業:プログラミング入門
[2]問題文:do-while文を用いてキーボードから入力された値が素数であるか
     どうかを判定するプログラムを作成せよ。入力された値が素数の
     場合は「素数」と出力し、素数でない場合は最小の因数を出力せよ。
     ヒント:余りを求める%を使用する。
[3.1]OS:UNIX
[3.3]言語:たぶんC++です。
[4]期限:明日の11時までです。
[5]その他の制限:特にないですが、まだprintf,scanf,if,else,for,while,
do-while,インクリ・ディクリ・四則演算、不等号ぐらい
しか習ってないです。

よろしくお願いします。
38デフォルトの名無しさん:2006/07/05(水) 21:45:17
前スレ923です。もらった回答

int push(int data, int *sp, int *STK){
if(0<*sp){*sp-=1;STK[*sp]=data;return 1;}
return 0;}
int pop(int *dataP, int *sp, int *STK){
if(*sp<N){*dataP=STK[*sp];*sp+=1;return 1;}
return 0;}
void dsp_stack(int top, int *a){
int i;for(i = top;i<N;i++){printf("%d: %d\n",i,a[i]);}}
眠い頭でやった。反省はしてない。

がコンパイルできないので、誰かもいちどお願いします。
[1] 授業単元:情報科学U
[2] 問題文(含コード&リンク):http://www.s.kyushu-u.ac.jp/~z6ty02in/TEXT/mokuji.html
ここの「11.ポインタと配列」の中の、「課題11(1/4)〜(4/4)」です
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2006年7月7日(金)8:40まで
[5] その他の制限:

よろしくお願いします。
39デフォルトの名無しさん:2006/07/05(水) 21:53:41
>>36
つチラシの裏
40デフォルトの名無しさん:2006/07/05(水) 21:56:07
>>38
9ページの、
/* 以下,関数 push, pop, dsp_stack の定義 */
の下にコピペしてコンパイルできない?
41デフォルトの名無しさん:2006/07/05(水) 22:00:45
>>37
>printf,scanf,if,else,for,while,
printfがあるならCじゃね?
42デフォルトの名無しさん:2006/07/05(水) 22:02:53
>>41
は?
4340:2006/07/05(水) 22:06:31
>>38
今チェックしたら、9ページのソースからちょっと修正してたのを忘れてた
下から6行目、printf内の「“」を「"」に直すのと、
一番下「}」が足りないから付け足しておくように
44デフォルトの名無しさん:2006/07/05(水) 22:08:03
>>42
まぁC++でも使えるには使えるが、それじゃcoutって書いていないからに言い換えよう
45デフォルトの名無しさん:2006/07/05(水) 22:09:40
あと、scanfもあるし。C++ならcinを使うだろうし。
46デフォルトの名無しさん:2006/07/05(水) 22:12:33
>>44-45
意味不明。
47デフォルトの名無しさん:2006/07/05(水) 22:14:17
>>46
いちいちうぜぇよ、揚げ足取りでもしに来たか?意味が分からないなら黙ってろ。
>>37の開発環境がCかC++かであって、言語の仕様がどうとかが論点じゃない。
C++に関する文献に目を向ければ、C++ではprintfは一般的ではないと明記されているものばかりだぞ。
48デフォルトの名無しさん:2006/07/05(水) 22:16:48
>>47
さわやかにスルーしようぜ
49デフォルトの名無しさん:2006/07/05(水) 22:17:09
>>47
> >>37の開発環境がCかC++かであって
そんなことお前が決めることじゃないよ。
質問者がC++だといってるんだから、それでいいじゃん。
50デフォルトの名無しさん:2006/07/05(水) 22:17:45
42 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:02:53
>>41
は?

46 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:12:33
>>44-45
意味不明。

↑こいつナニが言いたいのか分からないが、分からないなら黙ってた方が身のためだな。
いちいちここで自分に知識がありませんって露呈しなくて良いから
51デフォルトの名無しさん:2006/07/05(水) 22:18:39
ああ、いつもの奴か。
「露呈」で特定できた。
52デフォルトの名無しさん:2006/07/05(水) 22:19:06
前スレ957より。
よろしくお願いします。

[1]ゲームプログラミング入門
[2]これまでに得た知識を元に、
今回よりいよいよゲーム的なプログラムの作成を実践する。
課題1-3:以下のような内容のプログラムを作成せよ

1:敵のキャラクタと自分のキャラクタが1対1で戦う形式のバトルゲーム
2:それぞれのキャラクタは「力」、「耐久力」、「素早さ」、「運」各4つの要素をもっている.
各キャラクタに初期状態で100のポイントがが与えられ、
これを各要素に合計が100になるように自由に振り分けることができる.
例:
力:20耐久力:50
すばやさ:10運:20
3:1回ごとの戦闘ではプレイヤーは攻撃するか防御するかを選択できる.
4:1回の戦闘で、自分と敵は攻撃か防御のどちらかを1回できる.
5:どちらが先に攻撃するかはランダムで決定されるが、素早さの数値が大きい程先に攻撃する確率が上昇する
6:敵の攻撃があたれば,相手の“力”分だけ耐久力の値が減少する.
7:素早さの値が大きければ、相手の攻撃を回避する確率が上昇.(素早さが10の場合は10%の確率で回避)
8:運の値はクリティカルの発生に影響を与え、高ければ確率が大きくなる(運が20であるならば20%の確率でクリティカルがでる)
9:また運の値が相手の運を上回っている場合、回避率に5%のボーナスを与える
10:クリティカルアタックは通常の攻撃の2倍の威力となる.
11:防御している場合、ダメージは半分になる.
12:体力の点数が先に0以下になった方を敗北とする.
13:敵の行動アルゴリズムはランダムである.
以上13個の要素を全て満たしたゲームを作りなさい.
主に構造体を利用すること.

[3]環境:Linux gcc C言語
[4]7/6
53デフォルトの名無しさん:2006/07/05(水) 22:19:07
>>49
>そんなことお前が決めることじゃないよ。
決めてないよ?たぶんって書かれていて疑問に思ったから
質問者に対して疑問をぶつけただけだが?少なくともお前が分からないなら黙ってろ。
>質問者がC++だといってるんだから、それでいいじゃん。
そうだよ?ナニが言いたいの?俺は別にどっちかはっきりしなきゃダメとか
そんなことは言ってないが、そことなくC言語であろうと思われる箇所を指摘したんだが?
とにかく指摘が分からないなら黙ってろ
54デフォルトの名無しさん:2006/07/05(水) 22:20:01
>>51
いや、お前がいつもの揚げ足煽り厨だろ?
ろくに意見をせずに煽るだけで特定できた。
簡単に釣れるんだな、この自称プロって。
55デフォルトの名無しさん:2006/07/05(水) 22:20:02
今、顔真っ赤です。
56デフォルトの名無しさん:2006/07/05(水) 22:20:59
>>55 オマエガナーwwwww
>>42で自分の無知を晒したのはバレバレ

42 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:02:53
>>41
は?

42 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:02:53
>>41
は?

42 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:02:53
>>41
は?
57デフォルトの名無しさん:2006/07/05(水) 22:21:33
>>46 理解する頭のない奴の恥ずかしい無知晒しwww

46 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:12:33
>>44-45
意味不明。

46 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:12:33
>>44-45
意味不明。

46 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:12:33
>>44-45
意味不明。
58デフォルトの名無しさん:2006/07/05(水) 22:22:09
ファビョった
59デフォルトの名無しさん:2006/07/05(水) 22:22:35
まっ、UNIX使っているならgcc使ってC言語をコンパイルしているであろうと推測してみる
大学に行ったことの無い奴は、UNIXを使ったことがないから知らんのだろうけどw
60デフォルトの名無しさん:2006/07/05(水) 22:23:23
頭に血が上ったらどんな正しい内容だろうと
相手を蔑むニュアンスを入れなきゃレス出来ないなのなら、
頼むからじっと堪えて黙っててくれ・・・
61デフォルトの名無しさん:2006/07/05(水) 22:23:27
脳内大卒生乙。
62デフォルトの名無しさん:2006/07/05(水) 22:24:08
>>60
無理。
63デフォルトの名無しさん:2006/07/05(水) 22:24:12
-------------------- 以下大卒もそうで無い人も争い禁止 --------------------
64デフォルトの名無しさん:2006/07/05(水) 22:24:52
>>60
それが出来る子ばかりなら、こうはならないのさ・・・・・・・
65デフォルトの名無しさん:2006/07/05(水) 22:26:09
くだらんことに突っ込むくらいなら、解答を書きたまえ。
66デフォルトの名無しさん:2006/07/05(水) 22:27:18
>>59
Unixでgcc?
67デフォルトの名無しさん:2006/07/05(水) 22:27:46
けど、これははっきりしているだろ。C++ではprintfとscanfは一般的ではない
もしC++でそれを使って教育をしているんであれば、ちょっと不適切な指導内容かと・・・
市販のC++の本を見ると、cout, cinが普通に使われているしな
>>42>>37じゃなく、実際のところを調べられない第三者なら黙ってろ
68デフォルトの名無しさん:2006/07/05(水) 22:28:32
-------------------- だから争い禁止だってば --------------------
69デフォルトの名無しさん:2006/07/05(水) 22:28:36
今、顔真っ赤です。
70デフォルトの名無しさん:2006/07/05(水) 22:29:35
71 ◆NeetJ30Le. :2006/07/05(水) 22:33:19
>>67
> けど、これははっきりしているだろ。C++ではprintfとscanfは一般的ではない

そんなこと無いと思うよ(個人的意見)。
まあ昨今の大学でC++を教えるときに、printfとcoutのどちらを使うのが一般的なのかは知らんけど。
7238:2006/07/05(水) 22:46:22
>>43ありがとうございました。
73デフォルトの名無しさん:2006/07/05(水) 22:48:24
ヒドい自作自演を見た。
74デフォルトの名無しさん:2006/07/05(水) 22:52:11
>>67
> >>42>>37じゃなく、実際のところを調べられない第三者なら黙ってろ
お前モナー
75デフォルトの名無しさん:2006/07/05(水) 22:55:47
約束は守って欲しいなー。

273 名前:デフォルトの名無しさん[sage] 投稿日:2006/06/16(金) 03:02:28
そして無意味に自分の主張をしてしまった俺こそ無駄だと自覚している
だからもうここへは来ない
やはり、レベルの低い人間を相手にしても自分自身のレベルアップにはつながらない
自分のソースが初心者に伝わるか?理解させられるか?
腕試しをしにきても自由だろ?それすらいちいち否定される筋合いはない

要するに、既に述べたように、これは回答者同士の争い
回答者同士が争う必要はないのは言うまでもない
そしてその争いの結果、トーマスが恥さらしに過ぎないことが露呈された
それだけでも十分だ
性帝トーマスよ、お主の将来に幸あれ
76デフォルトの名無しさん:2006/07/05(水) 23:00:06
ここは約束を守るスレでもなければそんな一個人の主張なんてどうでも良いじゃん
少なくとも守って欲しいなーって要望も無意味だな
分からない奴が来なきゃ一番良いだけ
っつかそれ>>75、ここへはって言うけどそのレスが書かれたのはこのスレじゃないだろ
ここが示す場所がはっきり書かれていないし
これでもし、プログラム板やそのスレとはっきり書かれていれば分かるが
77デフォルトの名無しさん:2006/07/05(水) 23:02:58
小学生並みの論理
78デフォルトの名無しさん:2006/07/05(水) 23:05:05
>>75=>>76なのか?
違うんだったら、

 黙 っ と け ク ズ
79デフォルトの名無しさん:2006/07/05(水) 23:07:18
このスレには、少なくとも二人のクズがいる。
二人ともいらないから。
80デフォルトの名無しさん:2006/07/05(水) 23:07:38
>>78=>>46=>>42
相変わらず知能が低い厨房乙。お前が黙ってろ、っつかうぜぇ
自称プロ名乗っているだけででけぇ態度がとれると思うなよw
81デフォルトの名無しさん:2006/07/05(水) 23:08:54
>>78=>>76を書いたこのスレに常駐する粘着

78 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 23:05:05
>>75=>>76なのか?
違うんだったら、

 黙 っ と け ク ズ

↑さぁ、低俗な人間の必死な姿をとくと見よ!
自分の思う通りに相手が動かないとキレるタイ(プ
82デフォルトの名無しさん:2006/07/05(水) 23:08:55
今、顔真っ赤です。
83デフォルトの名無しさん:2006/07/05(水) 23:10:49
>>82のプロファイリング
自分が気に入った女性が自分が好きじゃない=自分が嫌いと勝手に決めつけ
自分が嫌いじゃないなら好きになれと言う危険人物
こういう奴は、ソースがまともに書けないとコンピュータに対してキレて
ディスプレイを壊すタイプ。ただ、PC本体は固い金属なため、以前殴って手を怪我して
痛い思いをしてからやらなくなった。痛みに対する学習能力はあるようだ
84デフォルトの名無しさん:2006/07/05(水) 23:11:00
333 名前:デフォルトの名無しさん[] 投稿日:2006/06/18(日) 21:33:49
専門学校生乙。恥ずかしいからもう黙ってな。
筋の通った理論に基づいて話してなく、自分がバカだと思う奴がバカって
言っているだけだな。ご愁傷様。
2.0は 変数 ではなく 定数 なので、変数に使う型は関係ない。
問題は変数同士と、代入する変数の型だよ。
あの数式を見れば一目瞭然。さすがに初心者だからといって
理解力のないバカまで指導するスレじゃないんで、俺はこれで失礼するよ。
低俗な人間の問題煮まで相手にしてたら、こっちがバカになるw
85デフォルトの名無しさん:2006/07/05(水) 23:11:55
-------------------- いいかげんに以下争い禁止 --------------------
86デフォルトの名無しさん:2006/07/05(水) 23:12:08
>>84粘着乙。関係ないスレでお前が理論を論破されて恥をかいたのを逆恨みしなくて良いからw
間違っていない理論に噛み付いている姿が痛々しい
87670:2006/07/05(水) 23:12:11
前スレで670に書いた問題をこのスレの19に書きました。
よろしくお願いします。
88デフォルトの名無しさん:2006/07/05(水) 23:12:28
62 名前:デフォルトの名無しさん[] 投稿日:2006/06/26(月) 01:06:48
>>61
おいおい、何キレてんだよ?これだから 低レベル 低俗 な 低学歴 は困るぜ・・・ヤレヤレ
89デフォルトの名無しさん:2006/07/05(水) 23:13:31
669 名前:デフォルトの名無しさん[sage] 投稿日:2006/06/16(金) 20:24:18
>>667-668
すげー、ここって煽りたがり屋が簡単に釣れるんですねw
要するに人を馬鹿にしたい人が集まっているってことか
低俗なクズ共めがw
90デフォルトの名無しさん:2006/07/05(水) 23:14:19








     い い か げ ん に し ろ







386 名前:デフォルトの名無しさん 投稿日:2006/06/19(月) 00:29:00
それからこれも答えてもらおうか。

>>381
>int型の変数に代入する際には、ちゃんと 2.0 に (int)2.0 と書いて下さいね(ニヤニヤ
>俺は2だってわかっている「定数」だったらわざわざ2.0なんて書かずに2って書くけどねw

2と2.0と書いた場合では、コンピュータの扱いが違うのだが。
>>340
>sizeof(2)=4
>sizeof(2.0)=8

わざわざ2と書かずに2.0と書くのには意味があるのか無いのか説明してもらおう。
92デフォルトの名無しさん:2006/07/05(水) 23:15:50
93デフォルトの名無しさん:2006/07/05(水) 23:16:15
>>89
はいはい、誰のレスを引用しているのか分からないけど
それはお前が気に入らなかったレスだろ?よっぽど自分の無知を晒して
釣られたのが悔しかったんだね、もうお前にはレスしないから
安心して永眠しな
94デフォルトの名無しさん:2006/07/05(水) 23:16:52
>>91
あははは、スゲーよ、お前。それ確かに俺のコメントだわw
95デフォルトの名無しさん:2006/07/05(水) 23:17:52
96デフォルトの名無しさん:2006/07/05(水) 23:18:36





     う    ぜ    ぇ




97デフォルトの名無しさん:2006/07/05(水) 23:19:32
いい加減、アク禁にしてくれよ。
98前937:2006/07/05(水) 23:20:14
[1] 授業:プログラミング演習
[2] 問題文:
・100個のノードを生成する
・ノードに重みを適当に点ける(1〜100)
・任意のノードペアを選び、重みの和を取り、重みの和が100以上のノードペアにリンクを張る
・それぞれのノードの持つリンクの数を計算する
・リンクの数の分布
 (リンクが1つ・・・○○、リンクが2つ・・・○○、・・・みたいな)
[3] 環境:[Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語
[4] 期限:一応ないので焦りませんが、早目がうれしいです。
[5] その他の制限:どんな方法を使っても大丈夫です。

後ろの方だったので再レスです。
99デフォルトの名無しさん:2006/07/05(水) 23:21:43
[1]情報プログラム演習(C言語コース)
[2]2つの複素数z = a + b i,w = c + d i (但し,iは虚数単位)を読み込み,足し算とかけ算を計算して印字するプログラムを作成せよ.但し,以下の仕様を満足するように作成すること.

複素数の実部と虚部を示す実数型変数をメンバとする構造体COMPLEXをtypedef文を用いて定義
足し算の関数COMP_ADD(z,w)とかけ算の関数COMP_MULT(z,w)を作成し,main関数ではこれらの関数を呼び出す.

実行例としては以下を参考しなさい
1つ目の複素数(実部):2
1つ目の複素数(虚部):3

2つ目の複素数(実部):4
2つ目の複素数(虚部):-2

足し算:(6) + (1) i
かけ算:(14) +(8) i

[3]OS:Linux コンパイラ:gcc 言語:C
[4]7月6日 正午

荒れ気味のようですが・・・
よろしくお願いします
1009:2006/07/05(水) 23:21:55
>14
各行にある個数は固定です
101デフォルトの名無しさん:2006/07/05(水) 23:25:54
お願いします
【質問テンプレ】
[1] 授業単元:基本プログラミング
[2] 問題文(含コード&リンク): 角度(0度以上180度以下)と計算すべき項数を引数として、正弦値の値を近似する関数を宣言し、入力した角度に対し、指定した項数に対する近似値を出力するプログラムを作成せよ。
角度に0未満もしくは180より大きい数が入力されたときに終了する。
角度は、近似の関数内でラジアンに変換すること。出力はmain関数で行うこと。
(実行例)
Input degree(0<=degree<=180):30
Input n:5
sin30=0.5
Input degree(0<=degree<=180):30
Input n:1
sin30=0.523598
Input degree(0<=degree<=180):30
Input n:2
sin30=0.499674
Input degree(0<=degree<=180):45
Input n:10
sin30=0.707106
Input degree(0<=degree<=180):-1
[3] 環境
 [3.1] OS:UNIX
 [3.3] 言語:C++
[4] 期限:明後日
[5] その他の制限:if,for,whileなどまでやりました
102976:2006/07/05(水) 23:30:24
自分のせいでここまでの言い争いになってしまって申し訳ないです。
というか、CかC++か、はっきり書かずに申し訳ないです。
もしかしたらCかもしれません・・・。


103デフォルトの名無しさん:2006/07/05(水) 23:32:29
>>102
あ、うん・・・
お前の気持ちは実に良く分かった
だから、今の所はもうおとなしくしていたほうがいい…
104デフォルトの名無しさん:2006/07/05(水) 23:33:04
今来たけど、もしかしたらってなんなの?
わからないの?
105デフォルトの名無しさん:2006/07/05(水) 23:34:06
106デフォルトの名無しさん:2006/07/05(水) 23:35:35
>>104
もう、いいから
107デフォルトの名無しさん:2006/07/05(水) 23:35:36
#include <stdio.h>

int main(void)
{
printf("しー!静かに!");
return 0;
}
108デフォルトの名無しさん:2006/07/05(水) 23:37:36
ぶっちゃけ、Cの標準関数を使っとけば、CでもC++でもコンパイルできるコードは書けるから
どっちでもいい。
109デフォルトの名無しさん:2006/07/05(水) 23:41:12
110デフォルトの名無しさん:2006/07/05(水) 23:41:55
うだうだ言わずにコード書け。3分で書けた。

>>37
#include <stdio.h>
int main()
{
int n, i;

printf("Input number: ");
scanf("%d", &n);

for (i = 2; i < n; i++) {
if (n % i == 0) {
printf("最小の因数 = %d\n", i);
return 0;
}
}
printf("素数\n");
return 0;
}
111デフォルトの名無しさん:2006/07/05(水) 23:45:39
>>110
いや、その・・・do-whileを使って下さい・・・おながいします
112デフォルトの名無しさん:2006/07/05(水) 23:46:15
#include <stdio.h>
int main()
{
int n, i;

printf("Input number: ");
scanf("%d", &n);
if (n == 2) {
printf("素数\n");
return 0;
}
i = 2;
do {
if (n % i == 0) {
printf("最小の因数 = %d\n", i);
return 0;
}
i++;
} while (i < n);
printf("素数\n");
return 0;
}
113デフォルトの名無しさん:2006/07/05(水) 23:53:57
全角の引用符と等号を使う奴には要注意。
114デフォルトの名無しさん:2006/07/05(水) 23:55:22
引用記号・・・・orz
115デフォルトの名無しさん:2006/07/06(木) 00:07:56
このスレは、いろんな意味で特殊。
116デフォルトの名無しさん:2006/07/06(木) 00:18:29
>>105
完璧に理解できてないのであれですが、たぶんあってます
本当にありがとうございます
また何かあったらレスしますので、よろしくおねがいします
俺も早く手伝う側に回りたい・・・
117デフォルトの名無しさん:2006/07/06(木) 00:22:00 BE:23292162-#
>>37
>最後の方に書いたためレスがつかなかったので

http://pc8.2ch.net/test/read.cgi/tech/1151158759/981

が見えないなら死ね。
118976:2006/07/06(木) 00:22:43
>>112
解答ありがとうございます。

もし、また今度わからないことがあったら、曖昧な部分は、はっきりさせてから
質問します。
それでは、お騒がせしました。
119デフォルトの名無しさん:2006/07/06(木) 00:25:41 BE:46584746-#
>>110
また中学生レベルの数学も知らない(ry
120デフォルトの名無しさん:2006/07/06(木) 00:34:31
>>117
さすがにそのコードじゃ見向きもされんだろう
121デフォルトの名無しさん:2006/07/06(木) 00:43:36
>>120
わざわざrejectされるコードを書いておきながら、無視されたら逆切れですか。
思った以上に子供のようだ。
122デフォルトの名無しさん:2006/07/06(木) 00:46:10
俺がスリムにしてやろうw

#include<stdio.h>
#include<limits.h>

int prime[]={2, 3, 5,7};
int IsPrimenumber(int n){
for (int i=0; n>1 && prime[i]<=n*n; i++) {
if (n%prime[i] == 0) {
return prime[i];
} }
return n;}

int main(void){
int n,p;
do {
printf("整数(%dまで):",INT_MAX);
scanf("%d",&n);
p = IsPrimenumber(n);
if (n == p) printf("素数\n");
else printf("最小の素因数:%d\n", p);
}while(0);
return 0;
}
123デフォルトの名無しさん:2006/07/06(木) 00:48:04
124デフォルトの名無しさん:2006/07/06(木) 00:50:22
>>122
馬鹿が
125デフォルトの名無しさん:2006/07/06(木) 00:51:02
126デフォルトの名無しさん:2006/07/06(木) 00:59:58 BE:87345195-#
>>120-121
コードの意味がわからないくせに選別するようなクズに配慮する必要はありませんから。
127デフォルトの名無しさん:2006/07/06(木) 01:00:29
128デフォルトの名無しさん:2006/07/06(木) 01:01:39
トーマスも地に落ちたな
129デフォルトの名無しさん:2006/07/06(木) 01:06:10
いつまでも中学生にこだわっているな、低学歴必死だなの奴と一緒だな
煽り、罵倒レスにはスルーが一番だな。レスが無くなったとたん静かになるしw
130デフォルトの名無しさん:2006/07/06(木) 01:07:12
>>128
今頃気づいた?
ソートしろって宿題にqsortを使うような奴だから。
なんでそんな解答をわざわざ書き込むのか理解不能。
131デフォルトの名無しさん:2006/07/06(木) 01:07:38
>>128
ということにしたくて必死ですねw
132デフォルトの名無しさん:2006/07/06(木) 01:08:39
>>129
中学生レベルと中学生の区別が付かないかわいそうな人ですか?
133デフォルトの名無しさん:2006/07/06(木) 01:09:57
>>130
ソートしろって宿題にqsort使うと何か問題あるの?
134デフォルトの名無しさん:2006/07/06(木) 01:10:04
135デフォルトの名無しさん:2006/07/06(木) 01:10:54
>>132
日本語が理解できないならもう黙ってろ
136デフォルトの名無しさん:2006/07/06(木) 01:11:00
まだまだ、暴れたり無いようです。この人たち。
137デフォルトの名無しさん:2006/07/06(木) 01:16:01
そろそろ通報、アク禁の要請が必要だな
138デフォルトの名無しさん:2006/07/06(木) 01:18:51
>>137
この程度じゃ無理だよ・・・
139デフォルトの名無しさん:2006/07/06(木) 01:19:16
「気に入らない」という理由でアク禁にできるという妄想はどこから湧いたんだろう。
140デフォルトの名無しさん:2006/07/06(木) 01:19:40
>>129


 お 前 が 言 う な

141デフォルトの名無しさん:2006/07/06(木) 01:24:01
                |
                |
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'




      | Hit!
      |
   ぱくっ|
     /V\
    /◎;;;,;,,,,ヽ   そんなエサで
 _ ム::::(,,゚Д゚)::|   俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
142デフォルトの名無しさん:2006/07/06(木) 01:25:27
143デフォルトの名無しさん:2006/07/06(木) 01:31:54
>>140 黙ってろ
144デフォルトの名無しさん:2006/07/06(木) 01:32:04
>>123,125,127,134,142
>>90
145デフォルトの名無しさん:2006/07/06(木) 01:40:13
流れがアレなのになんだが
誰か>>33も頼む
146デフォルトの名無しさん:2006/07/06(木) 01:41:22
↓良いから黙ってろ、無駄レスするな。書き込むなら宿題の質問か回答だけにしろ
147デフォルトの名無しさん:2006/07/06(木) 01:43:34
hoge
148デフォルトの名無しさん:2006/07/06(木) 02:11:44
>>146


 お 前 が 言 う な

149デフォルトの名無しさん:2006/07/06(木) 02:15:36
>>99
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2258.txt

ちなみに、実行例の結果が間違っています(かけ算)。
150デフォルトの名無しさん:2006/07/06(木) 02:16:27
こんな時間にですけど、
どなかた>>52もお願いします・・・。
151デフォルトの名無しさん:2006/07/06(木) 02:19:09
>>99
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2259.txt

スマソ。実数型変数と条件にあったので直した。でもこれじゃ小数点以下が
表示されないから。実行例に合わせるとこうなるので。
152151:2006/07/06(木) 02:21:33
47
-t.im = z.im * w.re + z.re + w.im;
+t.im = z.im * w.re + z.re * w.im;

寝ぼけてたごめん。実行例合ってた。テポドンが落ちてこないかと
心配で眠れないので起きてたんです。
153デフォルトの名無しさん:2006/07/06(木) 04:12:23
>>52
こんな大物を直前に持ってくるなボケ。
だいたいこの程度が自分でできねえならいますぐ退学しろ。
154デフォルトの名無しさん:2006/07/06(木) 04:15:29
>>52
マンドクサ('A`)
神が降臨するまで待てよ。永遠にな。
155デフォルトの名無しさん:2006/07/06(木) 04:33:19
>>52
待ってろぉ、俺が今やっている、けど期待はするな
一応、6日中に出せれば良いんだよな?
156デフォルトの名無しさん:2006/07/06(木) 04:38:40
>>52よ、体力はどうするんだ・・・耐久力が体力なのか?
157デフォルトの名無しさん:2006/07/06(木) 04:46:50
>>52の人気にshit
>>33も(ry
158 ◆NeetJ30Le. :2006/07/06(木) 05:46:47
>>52
急いでるみたいなので、手直しせずにそのまま回答。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2260.txt

#これって防御の意味あるのか?
159 ◆NeetJ30Le. :2006/07/06(木) 06:04:55
あ、そうそう、淡い期待をしてるといけないからはっきり言っとくけど、
前スレの簡易DBの続きは、全くやる気無いので、自分でなんとか
してください。>質問した人
160デフォルトの名無しさん:2006/07/06(木) 06:30:22
>>101をお願いします
161デフォルトの名無しさん:2006/07/06(木) 08:29:39
>>52
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2262.c
これでええやろか・・・一応13の要素を取り込んだ、はず
162デフォルトの名無しさん:2006/07/06(木) 09:22:02
16352:2006/07/06(木) 09:41:47
>>158-162
ありがとうございますっっ!
もう少しだけ時間に余裕が出来たので、
独自の要素の追加にも挑戦してみようと思います

>>156
う・・・、問題文そのままコピペでしたので、
恐らく耐久力のコピペだと思います・・・


164デフォルトの名無しさん:2006/07/06(木) 10:00:44
>>163
ういっ、かなり粗いソースだが、所々を別々に関数にして重複している箇所とか
すっきりさせられるところはあるのだが、面倒だし急いでいるかもしれんので
それで勘弁。というか、丸投げだから細かいことは良いかw
1659:2006/07/06(木) 10:42:14
11.33 22.33 22.33 22.33 22.34 33.34
11.22 22.22 22.44 22.22 22.12 33.34
11.22 22.22 22.44 22.22 22.12 33.34
上のようなファイルにおいてこのように一行が例えば、11.33から三個スペースその後数字
また三個スペースと続いているn行のファイルからsscanfを使って読み込むプログラムを作れ。
→このように書き込みをしたら
20さんが以下のプログラムを教えてくださりほぼうまくいったのですが
#include <stdio.h>
int main(void){
FILE *fp;
char str[250];
double n[6];
fp = fopen("test.txt", "r");
if (fp){
while(fgets(str, sizeof(str), fp)){
sscanf(str, "%lf %lf %lf %lf %lf %lf\n", &n[0], &n[1], &n[2], &n[3], &n[4], &n[5]);
printf("%.2f %.2f %.2f %.2f %.2f %.2f\n", n[0], n[1], n[2], n[3], n[4], n[5]);
}
fclose(fp);
}
return 0;
}
読み込みファイルの中身が一部分
11.22 □2.22 22.44 22.22 22.12 33.34
□のようにスペース一個分、桁が少ないときに
出力がずれてきてしまいます。
この対処は上のプログラムをどのように変えればいいでしょうか


166デフォルトの名無しさん:2006/07/06(木) 10:43:03
112のプログラムって1でも素数って表示されないか?
1は素数じゃない希ガス
167デフォルトの名無しさん:2006/07/06(木) 10:45:46 BE:34939229-#
>>101
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define PI 3.1415926535
double fact(int n){double r=1;for(int i=0;i<(n-1);i++)r*=(n-i);return r;}
double mysin(double deg,int dep){double rad=deg*PI/180.0,res=0;
for(int n=0;n<=dep;n++)res+=(n&1?-1:1)/fact(2*n+1)*pow(rad,2*n+1);return res;}
int main(void){char tmp[100];double deg,s;int n;printf("Input degree(0<=degree<=180):");
fgets(tmp,sizeof(tmp),stdin);deg=atof(tmp);printf("Input n:");fgets(tmp,sizeof(tmp),stdin);
n=atoi(tmp);printf("sin%0.0f=%f\n",deg,mysin(deg,n));return 0;}
168デフォルトの名無しさん:2006/07/06(木) 11:25:33
[1] 構造体
[2]下記参照
 [3.1]XP
 [3.2]borlandC++compiler5.5
 [3.3] 言語: (C
[4] 期限: 明日
[5] その他の制限: ほとんど初心者でポインタ配列程度までしか習ってません。

ax^2+bx+c=0の係数a,b,cを読み込み解を求めるプログラムを作りなさい。ただし
次のような構造体Root用いること。
・異なる2実数根の場合:typeは、real、r1,r2は実根
・重根の場合:typeはdouble、r1,r2は重根
・虚数根の場合:typeはcomplex、r1は実部、r2は虚部

typedef struct {
char type[8];
double r1;
double r2;
}Root;
main()
{double a,b,c;
Root x;
GeCoefficients(&a,&b,&c);*/:scanfでa,b,cを読み込む。*/
SolveQuadratic(a,b,c,,&x);*/公式で解を求める*/
DisplayRoots(x);*/解をファイルに書き出す。虚根の場合はr1+r2i.,r1-r2と書く。*/

169デフォルトの名無しさん:2006/07/06(木) 11:26:18
【質問テンプレ】
[1] 授業単元:情報処理演習
[2] 問題文(含コード&リンク):
オークションアルゴリズム
入力:正整数n n×nの非負整数行列W=(w(i,j))
出力:{1.2....n}の順列σで以下を最小にするもの
Σ(i=1 からn) w(i,σ(i))

これを解くのに以下のアルゴリズムを用いる
Step 0 M=(n+1)W, sigma(i)=-1 (i=1,2,...n)とする
Step 1 任意のi,sigma(i)≠-1ならば終了
Step 2 sigma(i)=-1を満たす者を一つ選びi*とする。
     m(i*,j)の値が行列Mの第i*行で最小となるjをj*とする(候補が複数ある場合は、それでも良いのでそのうち一つを選ぶ)
行列Mの第j*列の各要素に,1を加える。
Step 3 3-1 sigma(i')=j*となるi'が存在するならば、sigma(i')=-1,sigma(i*)=j*とする。
3-2 sigma(i')=j*となるi'が存在しないなら sigma(i*)=j*とする。
Step1に戻る  
 [3] 環境
 [3.1] OS:XP
[3.2] コンパイラ名とバージョン: Borland
 [3.3] 言語: C
[4] 期限: 明日
[5] その他の制限:ポインタは習ってません

お願いします!
170デフォルトの名無しさん:2006/07/06(木) 12:25:53
ランレングス法を使った文字列圧縮法
実行結果は
圧縮前文字列→AAABCCCCCCDDDEFGHHHHJJJ
圧縮前文字数→23
圧縮後文字列→AAAB@C6DDDEFG@H4JJJ
圧縮後文字数→19
という風になります。
sprintf(&cCnt,"%d",iCnt);
cHairetu[soeji]=cCnt;
を使うみたいです。
途中までやってみたのをとりあえず乗せてきます。
#include <stdio.h>
void main()
{
int iCnt;
int gokei;
int i=0;
int b=0,b2=0;
char mojiretu[50] = "AAABCCCCCCCCDDDEFGHHHHJJJ";
char mojiretu2[50];
char taihi;
i = 0;
printf("圧縮前文字列 → ");
while(mojiretu[i] != '\0'){
putchar(mojiretu[i]);
i++;
}
putchar('\n');
printf("圧縮前文字数 → %d\n",i);

お願いします
171デフォルトの名無しさん:2006/07/06(木) 12:39:06 BE:67935375-#
>>170
元の文字種の範囲が不明。英大文字限定なのかそうでないのか。
172デフォルトの名無しさん:2006/07/06(木) 12:41:08
普通でいいと思います、
すいませんわかりづらくて・・・
173デフォルトの名無しさん:2006/07/06(木) 12:57:12
>普通でいいと思います
なにそれ。分からんわ
174デフォルトの名無しさん:2006/07/06(木) 12:58:13 BE:31056544-#
>普通でいいと思います、

わかるかボケ!
175もはもは:2006/07/06(木) 13:03:32
HELPです!!!!!

1次元配列に 34 57 45 21 89 63 39 48 78 68 76 84 92 53 62 のデータをセットして、
これらの平均値を求めよ。
さらに int eval[3]という1次元配列を用意して
eval[0] には0〜60の数の個数
eval[1]には61〜80の数の個数
eval[2]には81〜100の数の個数
を格納するようにし、それらを出力するプログラムを作成せよ。

よろしくお願いします。
176デフォルトの名無しさん:2006/07/06(木) 13:05:56 BE:77640858-#
177デフォルトの名無しさん:2006/07/06(木) 13:06:32
>>170
# include <stdio.h>
# include <string.h>

int main(void)
{
  char mojiretu[50] = "AAABCCCCCCCCDDDEFGHHHHJJJ";
  char mojiretu2[50];
  int i = 0, n = 0, out = 0;
  char c;
  printf("圧縮前文字列→%s\n", mojiretu);
  printf("圧縮前文字数→%d\n", strlen(mojiretu));
  do {
    if(c == mojiretu[i])
      n++;
    else
    {
      for(; n > 9; n -= 9)
        out += sprintf(mojiretu2 + out, "@9%c", c);
      if(n <= 3)
        while(n--) mojiretu2[out++] = c;
      else
        out += sprintf(mojiretu2 + out, "@%d%c", n, c);
      n = 1;
      c = mojiretu[i];
    }
  }while(mojiretu[i++]);
  mojiretu2[out++] = '\0';
  printf("圧縮後文字列→%s\n", mojiretu2);
  printf("圧縮後文字数→%d\n", strlen(mojiretu2));
  return 0;
}
178177:2006/07/06(木) 13:10:00
補足。
数字が入力に含まれる可能性は考慮したが、@は無いと仮定した。
179デフォルトの名無しさん:2006/07/06(木) 13:18:42
お前らはどうせ理髪店でも「普通でお願いします」って頼むタイプなんだろ
180デフォルトの名無しさん:2006/07/06(木) 13:32:42
>>158
入力チェックするんなら、scanf使うのやめようよ。
181デフォルトの名無しさん:2006/07/06(木) 13:37:25
>>177
それcを初期化する前に参照しちゃってるよ。
182デフォルトの名無しさん:2006/07/06(木) 13:43:57
>>181
どんな値が入っていても正しく動く、というちょっとしたネタ。
183デフォルトの名無しさん:2006/07/06(木) 14:00:19
プリモーフィズムってなんなんでしょうか?
184デフォルトの名無しさん:2006/07/06(木) 14:04:20
辞書ひくかグーグル様に聞いてみなさい。
185デフォルトの名無しさん:2006/07/06(木) 14:05:43
ぐぐった結果2つしかでなくて、結局わけわからんのです。
@一応レポートの課題なんでおねがいします。
186デフォルトの名無しさん:2006/07/06(木) 14:08:02
ポリモーフィズム
187デフォルトの名無しさん:2006/07/06(木) 14:08:54
ポリモーフィズムじゃないの
188デフォルトの名無しさん:2006/07/06(木) 14:10:03
ポリモーフィズムで検索かけたら普通にでました。
ごめいわくかけてすみません
189デフォルトの名無しさん:2006/07/06(木) 14:40:59
ポインタの単元です。
LinuxでC言
以下の条件で入力された2から1000までの全ての素数を求めるプログラムを作りなさい。
【条件】
・素数を配列に格納すること
・素数を求める関数 void prime_number(int *p)を作ること
※ただし int *pは、素数を入れる配列のポインタ

明日までなので早めにお願いしたいです。
190 ◆qbNb6Ma0MY :2006/07/06(木) 14:41:09
[1] 授業単元: ?
[2] 問題文: ファイルから
 make made
 cook cooked
 run ran
 work work
 のように、単語を順次2つずつ読み込み、文字コードで大小関係を比較して、次のように大小関係を出力するプログラムを作成しなさい。
 make < made
 cook > cooked
 run < ran
 work = work
ただし、結果がモニタ画面上の他に、新たに結果を書き出すファイルを作成し、その中に結果を書き込むようにすること。
なお、プログラムの仕様は以下の通りです。
(1) 単語の最大長は各自で設定して構わない。
(2) 大小関係は、単語の先頭から順番に比較し、文字が異なった時点での文字コードの大小関係とする。例えば、make と made は ‘m’, ‘a’ については同じで、3文字目の‘k’ と ‘d’ に大小関係 k < d があるので、make < made となる。
(3) 文字サイズが異なり、どちらかが他方の先頭に完全に一致する場合には、短い方の単語の方が大小関係で大きくなるものとする。例えば、cook と cooked では、cook > cooked である。
(4) 全く同じ文字列の場合には同値である。例えば、work と work では、work = work となる。
(5) 文字の大小関係を比較する部分の計算は、main() 関数の外でべつに関数として記述すること。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: microsoft Visual C++
 [3.3] 言語: C++
[4] 期限: 今日の20時までで
[5] よくわからないので簡単なプログラムでおねがいします。
191デフォルトの名無しさん:2006/07/06(木) 15:03:39 BE:81522667-#
192 ◆CUZLM8U3vI :2006/07/06(木) 15:10:36
/* 整数のべき乗を再帰を使って */
/* 計算するプログラム */

#include <stdio.h>

int power(int base,int n);

main()
{
int base, n;

printf("べき乗 base^n を計算します\n");
printf("まず base を入力してください:");
scanf("%d",&base);
printf("次に n を入力してください:");
scanf("%d",&n);

printf("%d の %d 乗は = %d です\n", base, n, power(base,n) );

return 0;
}


/* 関数 power */
int power(int base,int n)
{
return base*power(base,n-1);
}


よろしくお願いします。
193デフォルトの名無しさん:2006/07/06(木) 15:16:42 BE:58230656-#
>>190
>結果を書き出すファイル

の指定方法は?
194 ◆CUZLM8U3vI :2006/07/06(木) 15:16:56
すいません、できました('A`)
195デフォルトの名無しさん:2006/07/06(木) 15:17:15 BE:31057128-#
196デフォルトの名無しさん:2006/07/06(木) 15:28:09
[1] 授業単元: 演習
[2] 問題文:
(1) 1桁の乱数を得るとき、その総和が100を超えるまで表示する。超えたら終了する。
表示は得られた乱数とそこまでの総和を表示する。
(2) 構造体で定義した年齢(整数)、氏名(アルファベット)、趣味(アルファベット)のデータをn個入力した後、 趣味を入力したら同じ趣味の人の氏名を表示し、年齢を入力したら同じ年齢の人の氏名を表示するプログラムを作成せよ。 人数は数人でよい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C
[4] 期限:できればすぐ!
[5] その他の制限:特にありません。宜しくお願い致します。
197 ◆CUZLM8U3vI :2006/07/06(木) 15:32:19
/* 2つの整数の最大公約数をユークリッドの互除法を使って */
/* 計算するプログラム */
#include <stdio.h>
int gcd(int n,int m);

main()
{
int n, m;
printf("二つの整数の最大公約数を計算します\n");
printf("まず整数をひとつ入力してください:");
scanf("%d",&n);
printf("もうひとつ整数を入力してください:");
scanf("%d",&m);
printf("%d と %d の最大公約数は %d です\n", n, m, gcd(n,m));
return 0;
}
/* 関数 gcd */
int gcd(int n,int m)
{
int x;
x=n%m;

if(x==0){
return m;
}
else{
return gcd(n,x);
}
}
198デフォルトの名無しさん:2006/07/06(木) 15:34:27 BE:81522476-#
>>196
(1)
#include<stdio.h>
#include<stdlib.h>
int main(void){int sum=0;while(sum<100){sum+=rand()%10;printf("%d\n",sum);}return 0;}
199 ◆CUZLM8U3vI :2006/07/06(木) 15:34:43
ユークリッドの互除法を使用し、
二つの整数の最大公約数を計算する関数gcdを作成しなさい

よろしくお願いします。
200デフォルトの名無しさん:2006/07/06(木) 15:40:28
>>198
有難うございます!
201デフォルトの名無しさん:2006/07/06(木) 15:40:43
>>197
>return gcd(n,x);

>return gcd(m,x);
にすれば大体大丈夫。
202デフォルトの名無しさん:2006/07/06(木) 15:44:29
>>191
ワロタ
203 ◆mfl6EhR6DM :2006/07/06(木) 15:45:24
[1] 授業単元:C言語プログラミング
[2] 問題文:

@ 下記のような9×9のマスを出力するプログラムを書く

a b c d e f g h i
1
2
3
4
5
6
7
8
9

A @のプログラムに
たとえば、【d→4→5】と打つと、下記のように出力されるプログラムを作る。

a b c d e f g h i
1
2
3
4    5
5
6
7
8
9
204 ◆mfl6EhR6DM :2006/07/06(木) 15:45:56
・・・・・続き
B @にファイルを読み込ませ、下記のように数字を出力させる。

a b c d e f g h i
1   6      1
2  7   6   5
3 8   1  3 2
4   5  4  8
5  4  7  2  9
6   8  1  7
7   1 2  5   3
8  6   7   8
9 2      4

ttp://www.puzzle.jp/letsplay/sudokurule-j.html
数字の例えは、上のサイトから持ってきました。


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:2006年7月7日12:00まで
[5] その他の制限:if〜else文、do〜while文、scanf文、ファイルの読み込み  を習いました。
205デフォルトの名無しさん:2006/07/06(木) 15:47:30 BE:19410252-#
>>199
int gcd(int a,int b){return (a%b)==0?b:gcd(b,a%b);}
206デフォルトの名無しさん:2006/07/06(木) 15:50:54 BE:122283779-#
つーか、

>・素数を求める関数 void prime_number(int *p)を作ること
>※ただし int *pは、素数を入れる配列のポインタ

とてもじゃないがこんなクソ仕様にまともに回答する気になれない。
207 ◆CUZLM8U3vI :2006/07/06(木) 15:54:06
ありがとうございました!
208 ◆CUZLM8U3vI :2006/07/06(木) 16:10:57
/* 配列に入った整数をすべて times 倍する関数の作成 */
#include <stdio.h>
#include <stdlib.h>
times_all(int data[], int n, int times);
main()
{
int num_data,data[10],times;
char input_str[20];
int i;
for (num_data=0; num_data < 10; num_data++){
printf("データを入力してください:");
gets(input_str);
if (input_str[0] == NULL){
break;
}
data[num_data] = atoi(input_str);
}
printf("何倍するかを入力してください:");
scanf("%d",×);
printf("\n\n\n"); /* 少しあける */
printf("%d 倍したデータは\n", times);
for (i = 0; i < num_data; i++){
printf("%d \n", data[i]);
}
return 0;
}
/* 関数 times_all */
times_all(int data[], int n, int times)
{
209 ◆CUZLM8U3vI :2006/07/06(木) 16:12:08
data[]の値をすべてtimes倍する
関数times_allを作成しなさい

よろしくお願いします・・・。
210196:2006/07/06(木) 16:18:50
済みません
>>198のフローチャートも教えて頂けますでしょうか
211デフォルトの名無しさん:2006/07/06(木) 16:19:03
>>209
void
times_all(int data[], int n, int times)
{
int i;
for (i = 0; i < n; i++) {
data[i] *= times;
}
}
212デフォルトの名無しさん:2006/07/06(木) 16:20:41 BE:23292926-#
>>208
void times_all(int data[],int n,int times){while(--n>=0)data[n]*=times;}
213 ◆qbNb6Ma0MY :2006/07/06(木) 16:21:17
>>190です
>>193
すいません遅くなりました
特に指定はされてないです
214デフォルトの名無しさん:2006/07/06(木) 16:21:32 BE:15528342-#
>>210
死ね。
215196:2006/07/06(木) 16:22:22
>>214
すいません><
216デフォルトの名無しさん:2006/07/06(木) 16:32:47 BE:67935757-#
>>190
#include<stdio.h>
#include<stdlib.h>
int mystrcmp(const char* s1,const char* s2){int i=0;
while(s1[i]&&s2[i]){if(s1[i]!=s2[i])return(s1[i]-s2[i]);i++;}
if(!s1[i])return s2[i]?1:0;else if(!s2[i])return -1;return 0;}
int main(void){char tmp[100],s1[100],s2[100];int c;FILE* fp;
if((fp=fopen("output.txt","w"))!=NULL){
while(fgets(tmp,sizeof(tmp),stdin)){sscanf(tmp,"%s %s",s1,s2);c=mystrcmp(s1,s2);
sprintf(tmp,"%s %c %s",s1,c>0?'>':c<0?'<':'=',s2);puts(tmp);fputs(tmp,fp);}
fclose(fp);}return 0;}
217 ◆qbNb6Ma0MY :2006/07/06(木) 16:56:47
>>216
フフフフフと文字がでてきて比較できないです><
218デフォルトの名無しさん:2006/07/06(木) 17:04:22 BE:54348847-#
>>217
VC.NET2003で動作確認済み。
219 ◆CUZLM8U3vI :2006/07/06(木) 17:05:30
>>211
ああああごめんなさい
再帰を使わないといけない問題でした
ごめんなさい
220デフォルトの名無しさん:2006/07/06(木) 17:07:13
221デフォルトの名無しさん:2006/07/06(木) 17:13:13
大学の教官って奇妙な問題作るよね。
しかも良くわからないチェックシステム作るし。
時間のチェックが厳しいですよとかチェックサムを調べてコピーかどうかを見ますよとか。
怖くて滅多な操作が出来ない。
222 ◆mfl6EhR6DM :2006/07/06(木) 17:25:09
>>220

おおおお><
220さん、ありがとうございます!!

223デフォルトの名無しさん:2006/07/06(木) 17:35:16 BE:81522667-#
意味もなく「ただし、○○を使って…」とか条件を付けるような教官は全員クビでいいと思う。
どうしても○○を使わせたいなら「何でもいいから○○を有効に使ったプログラムを作れ」
みたいな課題を出せばいい。
224デフォルトの名無しさん:2006/07/06(木) 17:42:23
Cで二次元配列の関数を使うとき、宣言ってどういう構文になる?
225デフォルトの名無しさん:2006/07/06(木) 17:43:13 BE:157221599-#
スレ違い
226デフォルトの名無しさん:2006/07/06(木) 17:43:53
のびのびとやらせる、あるいは本人が持つ知識の範囲内でも結果を出させる
というのは良いかもね。どんどん自発的に調べて学習しようとする生徒と
そうでない生徒の差がはっきりしてくるしね
227220:2006/07/06(木) 17:49:18
228デフォルトの名無しさん:2006/07/06(木) 18:39:25
[1]プログラミング
[2]五人の学生の数学と英語と国語の成績を2次元配列に格納して、点数表と各人の平均点と各科目の平均点を表示するプログラムを作れ
 全科目全員の点数を表示する関数,人毎の平均を計算し表示する関数,科目ごとの平均を計算し表示する関数を使うこと
 [3.1]windowsXP
 [3.2]bcc ver5.5
 [3.3]c
[4]7/11
[5]上記の通り関数を使うそうです。点数は初期化で与えるとのこと。
229デフォルトの名無しさん:2006/07/06(木) 19:05:30
[1] 授業単元: ソフトウェア
[2] 問題文(含コード&リンク):キーボードより10 以上、30 以下の偶数を入力し、これをn とする。
n=2 個の0 とn=2 の8 が表示されるようなプログラムを作れ。但し、if 文やswtich 文は用いては
ならず、
printf ("%2d",x ) ;
printf ("Yn" ) ;
以外にprintf やputs は用いてはならない。
(ヒント: 除算と乗算を使う。演算順序に注意。)
(実行例) 下線部はキーボードより入力する。
整数を入力===>16
0000000088888888
[3] 環境 windowsXP
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 明日まで
[5] その他の制限:
230デフォルトの名無しさん:2006/07/06(木) 19:24:27
[1] 授業単元: C言語実習授業
[2] 問題文(含コード&リンク):
「abcde」・「aa」・「aab」・「aaa」・「abbcdef」の順番で表示される5つの文字列を
アルファベット順に表示されるようにしなさい。 ただし、単純に順番を直しただけの文字列を「表示する」のは駄目である。
アルファベット順に直す過程のプログラミングを入れること。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:明日の午前中までです。
[5] その他の制限: 特にありませんが私はかなり初心者です…orz

もし解いてくださる方がいてくださったらお願いします。
231デフォルトの名無しさん:2006/07/06(木) 19:34:11
>>223,226
キモチ悪い。
232デフォルトの名無しさん:2006/07/06(木) 19:36:49
233デフォルトの名無しさん:2006/07/06(木) 19:46:19 BE:23292162-#
>>229
>n=2 個の0 とn=2 の8 が表示されるような
意味ワカンネ
234デフォルトの名無しさん:2006/07/06(木) 19:53:04
>>231
おいっ、本当にいい加減にしとけよ。どこの教員か指導員か講師か知らんが
悪質過ぎ。自分の落ち度を指摘されてこんな場所で罵倒を続けていて恥ずかしくないか?
昨日みたいな荒れた状況にするわけにはいかないんで、今後はお前をスルーするが。
そろそろ強制IDも考えてもらわんとな。あとマジで悪質な煽りにはアク禁を要請する。
235デフォルトの名無しさん:2006/07/06(木) 20:05:42
236デフォルトの名無しさん:2006/07/06(木) 20:06:58
>>234
>今後はお前をスルーするが。
まず>>234を書く前にスルーしろ。
237デフォルトの名無しさん:2006/07/06(木) 20:09:57 BE:62112948-#
別に荒れてなかったと思うけどなぁ。スレ乱立するバカがいただけで。
丸投げ厨が余所のスレに漏れてなければ荒れてるとは言わないし。
238デフォルトの名無しさん:2006/07/06(木) 20:14:15
本当にリアル中卒引きこもりなのかもね。彼。
239デフォルトの名無しさん:2006/07/06(木) 20:20:42 BE:122283779-#
中卒でもnの因数がたかだか√nまでであるということぐらいは知っていて然るべきだがな。
240デフォルトの名無しさん:2006/07/06(木) 20:21:41
>>231
>>90

>>238
だろうね。2chで相手の素性が分からず、発言しても直接攻撃を受けないことを良いことに
煽ってくるが、実社会で人とまともに接していない奴か、自分勝手を押し通して
孤立している職員か生徒だろうね。とにもかくにも、>>231に気持ちよく思われなくても問題ないし
>>231のご機嫌取りなんてする必要もないことに気づいて欲しいね。
241デフォルトの名無しさん:2006/07/06(木) 20:22:11
√って中学校で習うっけ?
242デフォルトの名無しさん:2006/07/06(木) 20:23:24
243デフォルトの名無しさん:2006/07/06(木) 20:23:36 BE:23292634-#
>>241
習うよ。2次方程式の解の公式にも入ってるし。
244デフォルトの名無しさん:2006/07/06(木) 20:23:57
荒れてる?
245デフォルトの名無しさん:2006/07/06(木) 20:25:32 BE:15528342-#
いや別に。
246デフォルトの名無しさん:2006/07/06(木) 20:26:52
>>240
>とにもかくにも、>>231に気持ちよく思われなくても問題ないし
>>>231のご機嫌取りなんてする必要もないことに気づいて欲しいね。
そのわりには、ほら、君の顔、真っ赤だよ。
247デフォルトの名無しさん:2006/07/06(木) 20:26:54
>>243
ぉぉ ちょっと思い出した
√2とかも暗記した記憶がある・・・
248デフォルトの名無しさん:2006/07/06(木) 20:27:41
そんなもん小学校で約数習った時点でわかるけどな
249デフォルトの名無しさん:2006/07/06(木) 20:28:19
>>239
n の因数って n とか n/2 とか含まないのか?

n が素数かどうかを調べるには
高々√n までの素数で割れるかだけ調べればいいけど。
250デフォルトの名無しさん:2006/07/06(木) 20:28:21
>>246
お前も物好きだなw
251デフォルトの名無しさん:2006/07/06(木) 20:34:22
[1] 授業単元: プログラミング言語演習
[2] 問題文(含コード&リンク):
回答ansがb、r、gのいずれかの場合それぞれblue,red,greeと出力するプログラムを
switch文による多分岐の方法で書け。b、r、g以外の文字が入力された場合
no colorと出力するようにせよ。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Borland c++ compiler
 [3.3] 言語: C
[4] 期限:7/9まで
[5] その他の制限:switch文を使うということ以外には特にはありません

よろしくお願いします。
252デフォルトの名無しさん:2006/07/06(木) 20:38:55
もし可能なら>>230もお願いします…。
253デフォルトの名無しさん:2006/07/06(木) 20:39:22
switch(ans){
case 'r':
printf("red");
break;
case 'g':
printf("green");
break;
case 'b':
printf("blue");
break
default:
printf("no color");
}
254デフォルトの名無しさん:2006/07/06(木) 20:50:37
だれか168をよろしくお願いします。
255デフォルトの名無しさん:2006/07/06(木) 20:58:07
>>254
Root.type に文字列入れるという設計が気に入らない
256デフォルトの名無しさん:2006/07/06(木) 21:04:06
一方的に自分の妄想を垂れ流し、突っ込まれたら、切れて勝利宣言。
いつものパターン。
257デフォルトの名無しさん:2006/07/06(木) 21:21:40
258デフォルトの名無しさん:2006/07/06(木) 21:30:12
>>257
丁寧にコメントまで…本当にありがとうございます!
2599:2006/07/06(木) 21:31:00
11.33 22.33 22.33 22.33 22.34 33.34
11.22 22.22 22.44 22.22 22.12 33.34
11.22 22.22 22.44 22.22 22.12 33.34
上のようなファイルにおいてこのように一行が例えば、11.33から三個スペースその後数字
また三個スペースと続いているn行のファイルからsscanfを使って読み込むプログラムを作れ。
→このように書き込みをしたら
20さんが以下のプログラムを教えてくださりほぼうまくいったのですが
#include <stdio.h>
int main(void){
FILE *fp;
char str[250];
double n[6];
fp = fopen("test.txt", "r");
if (fp){
while(fgets(str, sizeof(str), fp)){
sscanf(str, "%lf %lf %lf %lf %lf %lf\n", &n[0], &n[1], &n[2], &n[3], &n[4], &n[5]);
printf("%.2f %.2f %.2f %.2f %.2f %.2f\n", n[0], n[1], n[2], n[3], n[4], n[5]);
}
fclose(fp);
}
return 0;
}
読み込みファイルの中身が一部分
11.22 □2.22 22.44 22.22 22.12 33.34
□のようにスペース一個分、桁が少ないときに
出力がずれてきてしまいます。
この対処は上のプログラムをどのように変えればいいでしょうか
260デフォルトの名無しさん:2006/07/06(木) 21:37:16
>>259
%2.2fにする
261デフォルトの名無しさん:2006/07/06(木) 21:39:46
>>260
%5.2f じゃないのか?
2629:2006/07/06(木) 21:48:46
11.22 □2.22 22.44 22.22 22.12 33.34
□のようにスペース一個分、桁が少ないときや
11.22 □2.22 22.44 ー2.22 ー2.12 33.34
のようにマイナスのときに

出力がずれてきてしまいます。
263デフォルトの名無しさん:2006/07/06(木) 21:50:50
>>261
スマソ よくわかってないで適当に答えた
264デフォルトの名無しさん:2006/07/06(木) 21:54:38
>>262
やる気の無い豚は死んでしまえ
265デフォルトの名無しさん:2006/07/06(木) 21:55:46
>>262
じゃあ%6.2fにして、スペース文字を削れば?いろいろ自分で試してみろよ。
266デフォルトの名無しさん:2006/07/06(木) 21:58:02
それから、sscanf()で読み取る時は、ホワイトスペース文字が2個続いて
いようが100個続いていようが、書式指定にはスペース1個でいいからな。
267デフォルトの名無しさん:2006/07/06(木) 22:02:34
[1] 授業単元: プログラム1
[2] 問題文(含コード&リンク): a*x*x+b*x+c=0の値をキーボードから読み込みその解を解の公式を使って解くプログラムを作成する。
b*b-4*a*cを計算する関数。b*b-4*a*cが正の場合を計算する関数。b*b-4*a*cが0の場合を計算する関数。b*b-4*a*cが負の場合に[no]と表示する関数。の4つをプログラム内に構成すること。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:明後日まで。
[5] その他の制限:関数を使って作成する。
268デフォルトの名無しさん:2006/07/06(木) 22:05:01
>>262
% 5.2f という風に、% と 5の間にスペースを一個入れると、符号が離れて
印字されるようになるぞ。
269デフォルトの名無しさん:2006/07/06(木) 22:21:45
>>253
即レスありがとうございます。
ちょっと改良してコンパイル出来る状態にしてみたのですが
実行すると初っぱなからno colorが出てきてしまいます。
scanfを使いrやらgやらbに上手く反応出来るようにさせたいのですが
どうすればいいかご教授ください

#include <stdio.h>
int main(){
int ans;
switch(ans){
case 'r':
printf("red");
break;
case 'g':
printf("green");
break;
case 'b':
printf("blue");
break;
default:
printf("no color");
break;
}
}
270デフォルトの名無しさん:2006/07/06(木) 22:21:49
271デフォルトの名無しさん:2006/07/06(木) 22:23:21
>>269
真面目に講義聞いてりゃ分かる
272デフォルトの名無しさん:2006/07/06(木) 22:28:08
>>268
符号が離れるんじゃなくて、符号が正の時はスペースになるんだったorz
実は俺もよくわかってない。
273デフォルトの名無しさん:2006/07/06(木) 22:29:06
>>270
ありがとうございます!!
274デフォルトの名無しさん:2006/07/06(木) 22:30:25
>>232
サンクス、助かりました
275デフォルトの名無しさん:2006/07/06(木) 22:31:57
RTFM
276デフォルトの名無しさん:2006/07/06(木) 23:01:03
>>269
getcharじゃ駄目?
#include <stdio.h>

int main(void){
int ans;
ans=getchar();
switch (ans){
case 'r':
printf("red");
break;
case 'g':
printf("green");
break;
case 'b':
printf("blue");
break;
default:
printf("no color");
break;
}
return 0;
}
277デフォルトの名無しさん:2006/07/06(木) 23:12:56
>>276
出来ました!
こんなに早く解決したのも答えてくださった方々のおかげです。
ありがとうございました!
278デフォルトの名無しさん:2006/07/07(金) 00:26:05
1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2273.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 土曜日いっぱい
[5] その他の制限: なし

どなたかよろしくお願いいたします。
279デフォルトの名無しさん:2006/07/07(金) 02:12:10
[1] 授業単元: program
[2] 問題文(含コード&リンク): 1〜100までの整数について、7で割り切れない数値、3と2で割り切れる数値、3と2の倍数で10より大きく50以下の数値を表示する1つのプログラムで3つ作動できるプログラムを作成する。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:明日のお昼まで
[5] その他の制限: 選択処理を使って。
お願いします。
280デフォルトの名無しさん:2006/07/07(金) 02:17:04
[1] 授業単元:プログラミング2
[2] 問題文(含コード&リンク):a*x*x+b*x+c=0のa,b,cをキーボードから読み込んで解を求めるプログラムを作成する。しかし解がD=b*b-4*a*cの結果により複素数の時は画面にNOを、解はx=(-b+-ルートD)/2aを用いる。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:午前中
[5] その他の制限:なるべく初歩的なプログラムでお願いできればありがたいです。
281デフォルトの名無しさん:2006/07/07(金) 02:21:19
ぷろぐらむ3
等比数列a,ar,ar*r,ar*r*r,・・・・・a*rのn乗について、arnをキーボードから入れ、それらの総和を求めるプログラムを作成する。
windows gcc c言語 お昼の2時まで
よろしくお願いします!
282デフォルトの名無しさん:2006/07/07(金) 02:22:32
おー、学期末なのか盛況やねえ
283デフォルトの名無しさん:2006/07/07(金) 02:33:00
>>278
アルゴリズムの検索してたら過去スレに同じ問題あったのだぜ?
284デフォルトの名無しさん:2006/07/07(金) 02:38:49
だれか>>168をお願いします・・・
285デフォルトの名無しさん:2006/07/07(金) 03:18:50
>>280
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2275.c
不要な文は適当に削除しておいてw
286デフォルトの名無しさん:2006/07/07(金) 03:20:12
>>280
ってか、解は計算結果を数値で出さずに分数で表した方が良かったのかな?
まぁそうでも自分でやれるでそ
287デフォルトの名無しさん:2006/07/07(金) 04:31:16
[1] 授業単元: プログラミング演習T
[2] 問題文(含コード&リンク):

課題4-A2を変更して,以下の2つの処理をそれぞれユーザ定義関数として定義して,これを使うようにせよ.応用課題4-A2を行っていないものは,解答例のプログラムを用いてよい.
○一回の貯金の処理
  ・現在の貯金額の表示
  ・貯金額の問い合わせと入力受付
  ・入金処理を行い、処理後の貯金額を円単位で整数として返す
○金額の表示(金額を整数で受け取って,3桁区切り表示)

[3] 環境
 [3.1] OS: WindowsXP SP2
 [3.3] 言語: C++
[4] 期限: 07月07日12:00まで
[5] その他の制限: グローバル関数は使うなとのことです。↓課題4-A2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2277.txt
288デフォルトの名無しさん:2006/07/07(金) 04:39:42
[1] 授業単元: プログラミング演習T
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2278.txt
[3] 環境
 [3.1] OS: WindowsXP SP2
 [3.3] 言語: C++
[4] 期限: 07月07日12:00まで
[5] その他の制限: グローバル関数は使うなとのことです。
↓は今までにやった範囲(html×5)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2279.zip

上と合わせて二つ、申し訳ないッスが両方出来ないと単位もらえないんでorz
289デフォルトの名無しさん:2006/07/07(金) 04:48:14
っつか、マジで質問者が増えたな・・・今までお前ら何を勉強してたんだと(ry
290デフォルトの名無しさん:2006/07/07(金) 05:00:27
0からの状態で一ヶ月と半月の期間で200ページ近く進んでついていけません。><
291デフォルトの名無しさん:2006/07/07(金) 05:04:02
292デフォルトの名無しさん:2006/07/07(金) 05:05:34
あっ>>291にゴミ(無駄な変数)が残ってたけど、まぁ良いか
293デフォルトの名無しさん:2006/07/07(金) 07:07:41
どなたか>>208の再帰を使った方法で解いてもらえますかorz
294デフォルトの名無しさん:2006/07/07(金) 08:33:12
>>279
#include <stdio.h>
#define NUM 100

void func1(void){
int i;
for (i = 1; i <= NUM; i++) if ((i%7) != 0) printf("%d ", i);
}

void func2(void){
int i;
for (i = 1; i <= NUM; i++) if (((i%3)==0) && ((i%2)==0)) printf("%d ", i);
}

void func3(void){
int i;
for (i = 1; i <= NUM; i++) if (((i % 3)==0) && ((i%2)==0) && (i>10) && (i<=50)) printf("%d ", i);
}

int main(){
printf("7で割り切れない数値\n");
func1();
printf("\n\n");
printf("3と2で割り切れる数値\n");
func2();
printf("\n\n");
printf("3と2の倍数で10より大きく50以下の数値\n");
func3();
printf("\n");
return 0;
}
295デフォルトの名無しさん:2006/07/07(金) 08:34:49
>>294
選択処理入れ忘れた
まあいいや
296278:2006/07/07(金) 09:24:04
>>283
過去スレ見てきました。
フラーリーのアルゴリズムは使われていないように見えるのですが、
今回の答えと一緒でしょうか?
297デフォルトの名無しさん:2006/07/07(金) 09:29:03
>>288
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2281.txt

Cで書いてしまったが、C++でもコンパイルできると思う。
つーかC++のも一応作るからちと待て。
298デフォルトの名無しさん:2006/07/07(金) 09:40:46
>>288
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2283.txt

これがC++版。
>>287は意味がよくわからんな。
299デフォルトの名無しさん:2006/07/07(金) 10:16:01
>>287
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2284.txt

こんなのにしかならんな。カウンタの i で動作を変化させるというのが
どうも気にいらん。適当に直してくれ。
300デフォルトの名無しさん:2006/07/07(金) 10:41:54
[1] 授業単元: プログラム1
[2] 問題文(含コード&リンク): Kruscal法を用いて最小木を求めよ。
http://s.pic.to/1uw91

[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 7月7日正午まで]
[5] その他の制限: (二次元配列を用いる。)

よろしくお願いします。
301デフォルトの名無しさん:2006/07/07(金) 12:48:05
>>300
今見た
間に合わなくてすまんかった
302デフォルトの名無しさん:2006/07/07(金) 12:52:59
>>301
一応、やってみてくれませんか?
303デフォルトの名無しさん:2006/07/07(金) 14:08:26
char cmojiretu[50] = "AAABCCCCCCCCDDDEFGHHHHJJJ";
char cmojiretu2[50];
int isoeji = 0;
int icnt = 0;
int out = 0;
char ccnt;

printf("\n圧縮前文字列→%s\n", cmojiretu); //圧縮前文字列の表示
printf("圧縮前文字数→%d\n", strlen(cmojiretu)); //圧縮前文字数の表示

do {
if(ccnt == cmojiretu[isoeji])
icnt++; //icntを1つずつずらす
else{
for(; icnt > 9; icnt -= 9)
out += sprintf(cmojiretu2 + out, "@9%c", ccnt);
if(icnt <= 3)
while(icnt--) cmojiretu2[out++] = ccnt;
else
out += sprintf(cmojiretu2 + out, "@%c%d", ccnt, icnt);
icnt = 1;
ccnt = cmojiretu[isoeji];
}
}while(cmojiretu[isoeji++]);

cmojiretu2[out++] = '\0';
printf("\n圧縮後文字列→%s\n", cmojiretu2); //圧縮後文字列の表示
printf("圧縮後文字数→%d\n", strlen(cmojiretu2)); //圧縮後文字数の表示
return 0; //main関数を終了させる
}

このC言語のコメントがわかりません、わかる方コメントをお願いします。
304デフォルトの名無しさん:2006/07/07(金) 14:33:13
あぁそれ日本人という民族が使ってる言語、日本語だよ
305デフォルトの名無しさん:2006/07/07(金) 14:56:28
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク): n 個の整数からr 個の整数を取り出す組み合わせの数nCr を計算するプログラムを
作成し、実行しなさい。nCr は以下のように表される。
nCr = n-1Cr-1+n-1Cr , (nC0 = nCn = 1, nC1 = n)
ただし、for ループ、while ループ、do-while ループが必要な場合は、それらを再帰関数によっ
て実現すること。また、各自が定義し、使用する関数については、それらのプロトタイプを必ず
宣言すること。
<表示例>
Please input n and r: 4 2
nCr = 6
[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C
[4] 期限: 7月10日
[5] その他の制限: とくにございません、おねがいします
306デフォルトの名無しさん:2006/07/07(金) 15:34:12
>>305
# include <stdio.h>

int normalize(int m, int n, int cm, int cn, int x, int y, int z, int w, int (*k)(int, int, int, int, int, int));
int combo_0(int, int, int, int);
int combo_1(int, int, int, int, int, int);
int combo_2(int, int, int, int, int, int);
int combo_3(int, int, int, int, int, int);

int main(void) {
  int n, m;
  printf("Please input n and r: ");
  scanf("%d%d", &m, &n);
  printf("nCr = %d\n", combo_0(m, n, 1, 1));
  return 0;
}
int normalize(const int m, const int n, const int cm, const int cn, const int x, const int y, const int z, const int w, int (*const k)(int, int, int, int, int, int)) {
  return cn ? normalize(m, n, cn, cm % cn, x, y, z, w, k) : k(m / cm, n / cm, x, y, z, w);
}
int combo_0(const int m, const int n, const int num, const int denom) {
  return n ? normalize(m, n, m, n, num, denom, m, n, combo_1) : num;
}
int combo_1(const int cm, const int cn, const int num, const int denom, const int m, const int n) {
  return normalize(num, cn, num, cn, denom, cm, m, n, combo_2);
}
int combo_2(const int num, const int cn, const int denom, const int cm, const int m, const int n) {
  return normalize(denom, cm, denom, cm, num, cn, m, n, combo_3);
}
int combo_3(const int denom, const int cm, const int num, const int cn, const int m, const int n) {
  return combo_0(m-1, n-1, num * cm, denom * cn);
}
307デフォルトの名無しさん:2006/07/07(金) 17:38:43
>>305
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2287.c
漏れもやってみた。が、n=100 で r=5とか50の計算結果は不適切っす
原因は途中までの階乗の値がint型で扱える値を超えることなんだけど
その辺は俺の足りない頭じゃ解決できないっす orz
>>306のだと100C5の計算はできますね
308デフォルトの名無しさん:2006/07/07(金) 20:19:25
[1] 総合演習1
[2] 問題文(含コード&リンク):
  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2291.txt
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1
 [3.3] 言語: C
[4] 期限: 2006年07月10日23:00まで
[5] その他の制限: 特に無し
309デフォルトの名無しさん:2006/07/07(金) 21:00:48
[1]プログラミング
[2]○×ゲーム
○×ゲームは、皆さん知っているとは思うが、3x3のマス目に○と×を交 互に置いて、縦横または斜めに3個早く並べた方を勝ちとするゲームであ る。
以下のような内容の、人間対コンピュータ○×ゲームのプログラムを作りな さい。
人間に自分が先手か後手かを入力させる。
人間の番のときは、打つ手を入力させる。
コンピュータの番のときは、盤のどこに打ったらコンピュータの勝 ち目が多そうか調べ、最も勝ち目が多そうなところに打つ。
2〜3を繰り返して、どちらかが勝つか、または、9マスすべて埋まっ た場合(すなわち引き分けの場合)に、結果を表示して終了。
以上の手順の中で最も難しいのは3.であろう。
この作り方の代表的なもの は、評価関数を用いた先読み方法であり、以下のような方法で作ることが 出来る。
盤のどこに打ったらコンピュータの勝ち目が多そうか(評価関数の作り方)
コンピュータが次の一手を打つ場合、コンピュータ勝ち目の 最も高い場所に打つようにする。
しかし、対戦者も対戦者の勝 ち目の最も高い場所(コンピュータが最も負ける可能性の高い場所) に打とうとする。したがって、何手か先の組合せをすべて調べ、コ ンピュータの勝ち目の最も高い場所を探す必要がある。
今回は、簡単のためとりあえず「1手先読み」とする。コンピュー タの打てるすべての次の一手について、次のような基準で点数をつ ける。
そして、最も点数の高い手を採用する。

盤面を見て、縦横斜め8つのそれぞれの並びにおいて、
自分の記号が打たれたマス目1つと、まだ記号がないマス目2 つからなる『並び』は1点
自分の記号が打たれたマス目2つと、まだ記号がないマス目1 つからなる『並び』は5点
自分の記号が3個並んだ(つまり勝った)ら100点
を、コンピュータの点の場合は正で、対戦者の点は負として集計する。

[3]
[3.1]mac OS X
[3.2]gcc
[3.3]C
[4] 7/10 17:00
[5]特になし
310デフォルトの名無しさん:2006/07/07(金) 21:04:05
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2292.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2006年07月11日まで]
[5] その他の制限: なし

よろしくお願いします。
311デフォルトの名無しさん:2006/07/07(金) 21:08:12
>>310
出題者の質がいいね。
312デフォルトの名無しさん:2006/07/07(金) 21:41:35
[1] 授業単元:プログラミングI
[2] 問題文(含コード&リンク):
 2から100までの階乗を求めるプログラムを作成しなさい。
 実行結果をレポートに記入すること。
 (ヒント)100の階乗は高々200桁なので、200個の配列のを用意し、
 ひとつの配列に一桁を当てはめること。
[3] 環境
 [3.1] OS:Linux
 [3.3] 言語:C
[4] 期限: 2006年7月10日10:00まで
[5] その他の制限: まだ始めたばかりなので、if,switch,do,while,for文
しか習っていません。int型のやつを使って解くらしいです。
自分でやってみたんですが9桁以上の計算は結果がおかしくなりました。

初歩的なものかもしれませんが、よろしくお願いします。
313デフォルトの名無しさん:2006/07/07(金) 21:44:56
つdouble
314デフォルトの名無しさん:2006/07/07(金) 22:06:24
>>312
思ったより簡単でびっくりした。
#include <stdio.h>
#define N 200
main(){
int num[N]={1};
int i,j,flag;
for(i=2;i<=100;i++){
for(j=0;j<N;j++){num[j]*=i;}
for(j=0;j<N-1;j++){
if(num[j]>=10){num[j+1]+=num[j]/10;num[j]%=10;}
}
flag=0;
printf("%d! = ",i);
for(j=N-1;j>=0;j--){
if(flag || num[j]){printf("%1d",num[j]);flag=1;}
}
printf("\n");
}
}
315312:2006/07/07(金) 22:54:19
>>314
解答ありがとうございます。

今習ったのはint main(void) 〜 return(0)という形の
ものだけなのですが、main()というのはint main(void)の
代わりのものなんでしょうか?
316デフォルトの名無しさん:2006/07/07(金) 23:00:10
[1] 授業単元:プログラミング2
[2] 問題文(含コード&リンク):
しりとりするプログラムを作成せよ
入力はすべて標準入力から行う。
しりとりしたものが過去に出ていた場合はしりとりを成立させない。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 明日
[5] その他の制限: 特にないです
317デフォルトの名無しさん:2006/07/07(金) 23:41:10
[1]授業単元:オペレーティングシステム
[2]httpプロキシ(http_proxy)を作成せよ
 参考サイト
http://www6.plala.or.jp/dx033/mydoc/myworks/web-text/
http://www.mars.dti.ne.jp/~torao/rfc/rfc2068-ja.html
[3] 環境
[3.1]OS:UNIX
[3.2]コンパイラ:gcc
[3.3]言語:C
[4] 期限:7月17日
[5]その他の制限
ネットワークプログラミングに関してはsocketやselectを少し習ったくらいです。
ネットワークの話が1回しか講義でなかったのにこんな難しそうな課題が出ました。
参考サイトを見ても何を作って良いのか全く分かりません。
指針だけでも良いので誰か教えてください。
318278:2006/07/08(土) 00:06:56
どなたか>>278の問題をお願いできませんでしょうか・・・?
319デフォルトの名無しさん:2006/07/08(土) 00:18:24
>>817
単なる中継機能だけであれば、次のような機能を実装すればよい。
・サーバは、とあるポート(8080)でlistenする。
・ブラウザからの接続要求で、URLに含まれるサーバへのコネクションを張る(port80で)。
・ブラウザから受信したデータをそのままHTTPサーバに送信する。
・HTTPサーバから受け取ったデータをそのままブラウザに送る。

ブラウザはプロキシの設定でlocalhostの8080番を指定する。
複数クライアントに対応する場合は、forkでもthreadでもお好きなように。
320デフォルトの名無しさん:2006/07/08(土) 00:58:38
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
前問でキーボードの数字の配置では「1」の隣に「2」が来るが、
20回の試行のうち12あるいは21の並びが何回程度現れるかも確かめておきたい。
このためのプログラムを作成せよ。結果はnumber_12=***の形式で表示させること。
ちなみに『前問』というのは↓です。
サイコロを用いた賭けを行いたいのだが, 当のサイコロが無いことに気がついた。
そこで、この賭けには何も利害関係を持たないAさんをつかまえて別室に待機させ、
サイコロを振る必要が生じたときにAさんにその瞬間頭にひらめいた1〜6までの数字の
中で好きな数字を言わせ、その数字をもって「サイコロの目の代用」とすることを考えた
い。しかし、例えば Aさんはとりわけ「3」という数字が好きで、3を他の5つの数字より
も頻繁に言う傾向があるかもしれない。
これを確かめるための予備実験として1〜6までの数字120個を可能な限りでたらめに
キーボードから入力すると、20回の試行のうち1が出た回数、2が出た回数、 …、6が出た回数、及び打ち込んだ数の総和を表示するプログラムを作成せよ。ただし、そのときの結果を
number_1=***…sum_number=*****の形式で表示すること。
[3] 環境
 [3.1] OS: (Windows/Linux/等々) WinXP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) もう過ぎてますが、なるべく早くだしたいです_| ̄|○
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ポインタを使わないでお願いします!
321デフォルトの名無しさん:2006/07/08(土) 01:02:34
[1] 授業単元: 計算機プログラミング
[2] 問題文(含コード&リンク):
初期値0.1、a=4と選んだ場合のロジスティック写像:
x(n+1) = ax(n)(1-x(n))
に対し、軌道: x(1),x(2),.... を生成させ、
それが区間: d_{k}=[k/M,(k+1)/M] (k=0,....,M-1)(Mは区間[0,1]の分割数)に落ちる回数をカウントし、
横軸にk/Mを縦軸にd_{k}に軌道が落ちた回数をgnuplotを用いてプロットせよ。
具体的には配布資料70ページの図10のような分布図を描くためのファイルを生成するプログラムを作成せよ。
ただし、ファイルの名前をdis100.datにすること。
ただし、M=100と選び、ロジスティック写像の繰り返し回数は10000にすること。
[3] 環境
 [3.1] OS: (Windows/Linux/等々) winxp
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) LSI C 86試食版
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 1週間後
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
gnuplotは自分でやるので、落ちる回数をカウントする辺りをお願いします。
分かりづらくてすみませんm(__)m
322デフォルトの名無しさん:2006/07/08(土) 01:04:29
>>320
その前問の模範解答なり、あなたの解答なりはないの?
323デフォルトの名無しさん:2006/07/08(土) 02:35:24
>>322
合ってるかわかりませんが、一応やったのは↓です。
#include <stdio.h>
main(){
int i,a[6],n,sum,k;
printf("1〜6の数字を入力\n");
for (k=0;k<6;k++){a[k]=0;}
sum = 0;
for (i=0;i<120;i++){ scanf("%d", &n);
if (n == 1){a[0] = a[0]+1;}
else if (n==2){a[1]=a[1]+1;}
else if (n==3){a[2]=a[2]+1;}
else if (n==4){a[3]=a[3]+1;}
else if (n==5){a[4]=a[4]+1;}
else {a[5]=a[5]+1;}
sum += n;}
for (k=0;k<6;k++){printf("number_%d=%d\n", (k+1),a[k]);}
printf("sum_number=%d\n", sum);
return 0;
}
324デフォルトの名無しさん:2006/07/08(土) 02:39:44
>>320
>1〜6までの数字120個を可能な限りでたらめにキーボードから入力すると、20回の試行のうち
120回なのか20回なのかどっちだべ
325デフォルトの名無しさん:2006/07/08(土) 04:02:25
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):素数pを入力して、その位数を求めるプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 7/8
よろしくお願いします。
326デフォルトの名無しさん:2006/07/08(土) 04:35:20
327326:2006/07/08(土) 04:36:52
あ、math.h いらねーんだった
消しといておくれ
328デフォルトの名無しさん:2006/07/08(土) 09:09:41
93 :ひよこ名無しさん :2006/03/28(火) 02:03:32 0

別に竹石圭佑がゲイでもホモでもどーでもいいだろ。関わらずに無視すりゃ良いだけだし。
大体、ほっとけば勝手に犯罪起こして、また逮捕されて社会から消えるような野郎だしな。
329デフォルトの名無しさん:2006/07/08(土) 11:10:41
>>324
すいません(^_^;A
120回です。
お願いします!
330デフォルトの名無しさん:2006/07/08(土) 11:16:20
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):
自然対数の底(e)を計算し表示するプログラムを作成せよ。
正規分布の確率密度関数に現れるeのことである。

eは次の式で計算できる。
e=1+1/1!+1/2!+1/3!+1/4!……

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日2006/7/8
[5] その他の制限:等比数列の和を求めるプログラム↓を修正し作成
#include <stdio.h>
main()
{
float sum=1, x=1;
int i;
for (i=1; i<10; i++){
x/=2;
sum+=x;
printf("%d %f\n", i, sum);
}
}

おながいします
331デフォルトの名無しさん:2006/07/08(土) 11:22:21
>>330
#include <stdio.h>
#include <math.h>
main()
{
    float sum=0;
    int i;
    for (i=1; i<10; i++){
        sum += 1/tgamma(i);
        printf("%d %f\n", i, sum);
    }
}
332デフォルトの名無しさん:2006/07/08(土) 11:35:18
[1] 授業単元:プログラミングV
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2296.txt
[3] 環境
 [3.1] OS:WindowsXP HomeEdition
 [3.2] コンパイラ名とバージョン:Dev-C++ 4.9.9.2
 [3.3] 言語:C
[4] 期限: [2006年07月13日07:00まで]
[5] その他の制限:while文まではいきました。
333デフォルトの名無しさん:2006/07/08(土) 12:34:13
暇だから、HTTPプロキシ作ってみるかなぁ。
でもこのスレに少なくとも二人欲しい人がいるんだよなぁ。
同じ学校だったら困るよね?
334デフォルトの名無しさん:2006/07/08(土) 13:11:03
>>333
全く問題ないです。作っていただいたのを参考に自分で考えて作り直しますから。
何せ授業でプロキシについて全く役立つ説明がなかったもので・・・。
助かります。よろしくお願いします。
335デフォルトの名無しさん:2006/07/08(土) 13:21:41
ふんふん。
じゃ、明日の夜までを目処に、forkパターンで作ってみる。
336デフォルトの名無しさん:2006/07/08(土) 13:23:51
>>335
お願いします。
337ラムちゃん:2006/07/08(土) 13:52:31
[1] C言語と数値計算法
[2] 問題文:5名分3教科のテスト結果が5×3の配列に入っているとき、
各教科ごとに点数の高い順に並び替えた配列を出力する関数とmain関数を作成せよ
[3] 環境
[3.1] OS:windows
[3.2] visual studio 2003
[4] 期限:7月14日
[5] 次の例文を参考に
5名分の英語、数学、国語の3教科のテスト結果が5×3の配列に入っている。
各教科の平均点を求めるための関数を、配列へのポインタを引数として作成する。
include<stdio.h>
void get_ave(float *score, float *ave);
void main(void){
float result[5][3] = {{50,65,45},{77,80,90},{30,40,50},{75,92,80},{65,69,90}}; /* 点数の5×3配列 */
float average[3]; /* 平均点の配列 */
get_ave(&result[0][0], average); /* ポインタ渡しで関数呼び出し */
printf("Average is %4.1f(Eng), %4.1f(Math), %4.1f(Jap)\n",average[0],average[1],average[2]);
}
void get_ave(float *score, float *ave) /* 関数本体 (引数はポインタ) */
{
int i,j;
float total[3];
for(i = 0; i < 3; ++i){
total[i] = 0.0; /* 配列total[3]の初期化 */
for(j = 0; j < 5; ++j)
total[i] += *(score + 3*j + i); /* 各教科の合計点算出 */
}
for(i = 0; i < 3; ++i)
*(ave + i) = total[i] / 5.0; /* 各教科の平均点算出 */
}
大好きだっちゃ♪
338333:2006/07/08(土) 14:54:33
339デフォルトの名無しさん:2006/07/08(土) 15:47:21
[1]プログラミング
[2]チェスのナイト(knight)という駒は、将棋の桂馬の動きを4方向に拡張した下表のよう な動きができる。
m*nのマス目のチェス盤に対して解の求め方を、
1.出発点に戻らなくて良いので、全地点を巡回する
2.全地点を巡回してから出発点に戻る解を一つ求める
3.全地点を巡回してから出発点に戻る解を全て求める
の順序で付け加えていき、プログラムを完成させなさい。
(ナイトのスタート地点はどこでもよいが、四隅のどこかにして おけばよい。
答えの表示は、m*nのマス目に訪問順番を書き込んだ形にせよ。)
[3]
[3.1]mac
[3.2]gcc
[3.3]C
[4]7月11日
[5]ポインタは使わず
お願いします
340デフォルトの名無しさん:2006/07/08(土) 16:24:14
ナイトの動きは4方向ではなく、8方向あるが、それで解けばいいのか?
341デフォルトの名無しさん:2006/07/08(土) 16:36:53
(桂馬+4)方向じゃね?
342デフォルトの名無しさん:2006/07/08(土) 16:39:22
>>341
いや、桂馬は2方向。
343デフォルトの名無しさん:2006/07/08(土) 16:42:57
>>342
すまん 寝ぼけてた
(桂馬×4)方向 だな
344デフォルトの名無しさん:2006/07/08(土) 17:24:22
>>338
ありがとうございます。その調子でお願いします。
345333:2006/07/08(土) 17:42:04
おそらくKeep-Aliveに対応しないと使い物にならない(テストすらできない)
ことが判明したため、挫折 orz
346デフォルトの名無しさん:2006/07/08(土) 17:58:50
M,N = 7,7
 1 46 43 34 13 18 15
44 35  2 19 16 33 12
47 42 45 32  3 14 17
36 31 20 25  6 11  4
41 48 39 28  9 22  7
30 37 26 21 24  5 10
49 40 29 38 27  8 23

力技。
8x8でやろうとすると結構時間かかるな。
全パターン調査するなら、5x5くらいのサイズが適当か?
でも、あんまり小さいと種発点に戻る解があるかどうか。
ちょっと風呂入ってくる。
347デフォルトの名無しさん:2006/07/08(土) 18:06:54
n*mってことは汎用的につくれってことなのかのう
ポインタなしだと、どうつくったらいいやら想像つかね
348346:2006/07/08(土) 18:07:58
>>346 を導いたソース
#include <stdio.h>
#define M 7
#define N 7
int matrix[M * N];
int next(int x, int y, int counter){
  int index = x + y * M;
  if(counter > M * N){
    return 1;
  }else if(x >= M || x < 0 || y >= N || y < 0 || matrix[index] != 0){
    return 0;
  }else{
    static int d[][2] = {{2,1},{2,-1},{1,2},{1,-2},{-1,2},{-1,-2},{-2,1},{-2,-1}};
    int i;
    matrix[index] = counter;
    for(i = 0 ; i < sizeof(d)/sizeof(d[0]); i++)
      if(next(x + d[i][0], y + d[i][1], counter + 1)) return 1;
    matrix[index] = 0;
    return 0;
  }
}
void print_matrix(void){
  int i;
  for(i = 0; i < N * M; i++){
    printf("%2d", matrix[i]); putchar( i % M == M-1 ? '\n' : ' ' );
  }
}
int main(){
  if(next(0, 0, 1)) print_matrix();
  else puts("impossible");
  return 0;
349デフォルトの名無しさん:2006/07/08(土) 18:09:21
>>345
残念です。
350デフォルトの名無しさん:2006/07/08(土) 18:10:45
>>347
まぁ、グローバルに配列でメモリをとっておけば、関数引数とかにポインタを使わずに書くことはできる。
もちろん、本質的にはポインタを使っていないとはいえないけど。
351デフォルトの名無しさん:2006/07/08(土) 18:23:07
>>347
一次元配列を二次元配列に見立てればできる。
まあその場合でもarray[1024];とかとっとく必要があるが。
352デフォルトの名無しさん:2006/07/08(土) 19:03:07
うーん、内部的にはそれでいいけど、
もしm,nをユーザーに選ばせるなら、
ポインタを使わずにどうやって入力さ
せるかが悩みの種だなw
353デフォルトの名無しさん:2006/07/08(土) 20:20:06
#include <stdio.h>
#define M 6
#define N 5
int matrix[M * N];
void print_matrix(void){int i;for(i = 0; i < N * M; i++){printf("%2d%c", matrix[i], i % M == M-1 ? '\n' : ' ' );}
void next(int x, int y, int counter){
  int index = x + y * M;
  if(x >= M || x < 0 || y >= N || y < 0 || matrix[index] != 0) return;
  matrix[index] = counter;
  if(counter >= M * N){
    static int n = 1;
    if((x==2 && y==1)||(x==1 && y==2)){ /* (0,0)へ回帰する解であるかどうかの判定 (全ての解を表示する場合、この判定をはずす)*/
      printf("\n[%d]\n", n++);
      print_matrix();
      /* exit(0); */    /* 最初の解だけでいい場合は、ここで終了 */
    }
  }else{
    static int d[][2] = {{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}};
    int i;
    for(i = 0 ; i < sizeof(d)/sizeof(d[0]); i++)
      next(x + d[i][0], y + d[i][1], counter + 1);
  }
  matrix[index] = 0;
}
int main(){
  int x = 0, y = 0, n = 1;
  if(M == N){/* 正方形の場合、鏡面対称の解を除くために1手目を決めうちにする。*/
    matrix[0] = 1; x = 2; y = 1; n++;
  }
  next(x, y, n);
  return 0;
}
354デフォルトの名無しさん:2006/07/08(土) 20:26:51
>>353 は、>>339への回答。

あと、コンパイルエラー。
print_matrix() の中の、for(..) { ← この中括弧削除してください。

5x5 だと、
 全部で 152パターン (鏡面対称は除去)
 一周して (0,0) へ戻ってくるパターンは無し。

6x5 だと、
 全部で 4285パターン
 一周して (0,0) へ戻ってくるのが 16パターン。

6x6だと、5分待っても処理が終わらないので中断した。

ちなみに、うちの環境は Pen||| 3GHz, メモリ1Gbyts;
3551234 ◆bUBxjLJPpU :2006/07/09(日) 00:09:01
おねがいします
[1]プログラミング基礎
[2]文字列に暗号をかける関数encode(a,b)と、暗号文を元に戻す関数decode(c,d)を作ってみましょう。
ただし、aとdは平文、bとcは暗号化された文字列です。本格的な暗号文は難しいので、
ここでは「文字コードに1を加える」という方法でいいことにします。
これでも、ちょっと見た目には暗号らしくなります。元に戻すには1を引けば良いわけですね。
さらに、学校ではこの課題に追加して→最大50字までの文字列について暗号化と復元が可能となるようにせよ。
main()の中でキーボードから元の文字列を読み込み、それを標準出力へ表示するとともに、
暗号化した結果の文字列も表示して、暗号化が指定どおり行われているか容易に確認できるようにせよ
[3]環境
[3.1]windows xp
[3.2]Microsoft visual c++ 6.0
[3.3]C++
[4]7月11日まで
[5]基礎的な内容を習っています。標準ライブラリ、というものは知りません
あと制限ではありませんが、最初の4行の問題文はサイエンス社、ザ・Cの210ページにあります。
 
356デフォルトの名無しさん:2006/07/09(日) 01:14:53
>>355 適当だけど
#include <iostream>
using namespace std;
#define LIMIT_NUM 50

void encode(char s1[], char s2[]){
int i = 0;
while(s1[i]){
s2[i] = s1[i] + 1;
i++;
if (i >= LIMIT_NUM) break;
}
s2[i] = '\0';
}

void decode(char s1[], char s2[]){
int i = 0;
while(s1[i]){
s2[i] = s1[i] - 1;
i++;
if (i >= LIMIT_NUM) break;
}
s2[i] = '\0';
}

int main(){
char str1[250], str2[LIMIT_NUM+1], str3[LIMIT_NUM+1];
cin >> str1; cout << "\n元の文字列\n" << str1 << "\n\n";
encode(str1, str2); cout << "暗号化された文字列\n"<< str2 << "\n\n";
decode(str2, str3); cout << "復元した文字列\n" << str3 << "\n";
return 0;
}
357デフォルトの名無しさん:2006/07/09(日) 01:31:41
[1] C言語と数値計算法
[2] 問題文:5名分3教科のテスト結果が5×3の配列に入っているとき、
各教科ごとに点数の高い順に並び替えた配列を出力する関数とmain関数を作成せよ
[3] 環境
[3.1] OS:windows
[3.2] visual studio 2003
[4] 期限:7月14日
[5] 次の例文を参考に
5名分の英語、数学、国語の3教科のテスト結果が5×3の配列に入っている。
各教科の平均点を求めるための関数を、配列へのポインタを引数として作成する。
include<stdio.h>
void get_ave(float *score, float *ave);
void main(void){
float result[5][3] = {{50,65,45},{77,80,90},{30,40,50},{75,92,80},{65,69,90}}; /* 点数の5×3配列 */
float average[3]; /* 平均点の配列 */
get_ave(&result[0][0], average); /* ポインタ渡しで関数呼び出し */
printf("Average is %4.1f(Eng), %4.1f(Math), %4.1f(Jap)\n",average[0],average[1],average[2]);
}
void get_ave(float *score, float *ave) /* 関数本体 (引数はポインタ) */
{
int i,j;
float total[3];
for(i = 0; i < 3; ++i){
total[i] = 0.0; /* 配列total[3]の初期化 */
for(j = 0; j < 5; ++j)
total[i] += *(score + 3*j + i); /* 各教科の合計点算出 */
}
for(i = 0; i < 3; ++i)
*(ave + i) = total[i] / 5.0; /* 各教科の平均点算出 */
}
358デフォルトの名無しさん:2006/07/09(日) 01:41:07
qsort使っていいの?
359Javaはイイ:2006/07/09(日) 01:49:42
360デフォルトの名無しさん:2006/07/09(日) 01:56:03
これは最悪だな
void encode(char a[], char b[]) {
int i = 0;

while(a[i] != NULL) {
++a[i++];
}

b = a;
}
361278:2006/07/09(日) 02:04:10
どなたか>>278をお願いします・・・
月曜日まででかまいません
362Javaはイイ:2006/07/09(日) 02:12:26
>>360
最悪なんだ・・・、そういうコードは趣味の中では良く書いてます orz
363デフォルトの名無しさん:2006/07/09(日) 02:16:05
XOR使えばエンコードとデコードは同じ関数でよくね?
364デフォルトの名無しさん:2006/07/09(日) 02:32:14
>>361
橋を求めるアルゴリズムは分る?
O(E)ですべて求められるらしいけど、私は知らないので
遅いアルゴリズム(O(VE))になってしまう。
365デフォルトの名無しさん:2006/07/09(日) 03:28:58
1] プログラム
[2]
以下のCプログラムは、あなたが使っているPCのCPUがBig EndianかLittle Endianかを判定するものです。
if文の条件部を埋めてプログラムを完成させてください。

main()
{
long data = 0x00000001;

if ( )
printf("Big Endian\n");
else
printf("Little Endian\n");
}

[
3] 環境
 [3.1] WindowsXP
 [3.2] gcc
 [3.3] C
[4] 明日
[5] 単位ギリギリだったんでバイトオーダーとかバイナリとかわけがわかりません・・・。
どうか御願いします。
366デフォルトの名無しさん:2006/07/09(日) 03:35:04
>>365
*((char *)(&data)) == 0x00
367デフォルトの名無しさん:2006/07/09(日) 03:41:21
助かりました('∀`)
有難う御座います。
368デフォルトの名無しさん:2006/07/09(日) 03:43:30
long って1byteより大きいことって保証されてた?
369デフォルトの名無しさん:2006/07/09(日) 04:29:47
1バイト≦char≦short≦int≦long
ちょっと微妙だね。
370デフォルトの名無しさん:2006/07/09(日) 04:33:20
1バイト=char=short=int=long=32ビット
がありえるはず。
371デフォルトの名無しさん:2006/07/09(日) 04:34:23
char は 1byte 固定じゃなかった?
372デフォルトの名無しさん:2006/07/09(日) 04:53:33
>>361
やろうと思ったけど、自分の知ってるフラーリーのアルゴリズムと違っていたのでやめた。
373デフォルトの名無しさん:2006/07/09(日) 05:05:33
まちがってるよね
そのふらーりーあるごりずむ
374デフォルトの名無しさん:2006/07/09(日) 10:14:09
>>361
∈これなんて記号?
375デフォルトの名無しさん:2006/07/09(日) 10:33:23
クックルのくちばし。

じゃなくて集合の要素である。
376278:2006/07/09(日) 10:52:47
>>364
すみませんわかりません・・・。
遅くても全然かまいません。
>>372
授業で習ったのはこれなんですが、特にこの通りにやる必要は
ないので、お願いします。
377デフォルトの名無しさん:2006/07/09(日) 11:27:31
ειναι
3781234 ◆bUBxjLJPpU :2006/07/09(日) 11:39:56
>>355を作ってくれた方ありがとうございます。助かりますた!
379デフォルトの名無しさん:2006/07/09(日) 12:06:43
>>365
環境条件から考えるとif文の条件部に入れるべきは0だろ

>>369
>>371が指摘したように
1バイト=char≦short≦int≦long
だったと思う
したがって >>370 の言うようなlongに至るまで全て1バイトの場合も……
それどころか1バイト=1オクテットとかさえ
380379:2006/07/09(日) 12:12:29
あー、間違い
「したがって」は余計だった
もし 1バイト≦char≦short≦int≦long だったとしてもそうなるね
381デフォルトの名無しさん:2006/07/09(日) 12:29:37
処理系での1バイトがcharと等しいかどうかはわからんでしょ。
sizeof(char)は常に1を返すけど。
382デフォルトの名無しさん:2006/07/09(日) 12:32:37
LONG_MAXの最小値が規定されている関係で、longは少なくとも32ビットだったと思う。
383デフォルトの名無しさん:2006/07/09(日) 12:35:12
CHAR_BITS == 32と言うことも論理的には有り得る。
384デフォルトの名無しさん:2006/07/09(日) 12:57:53
C++builderで点を左から右に移動させるだけの簡単なプログラムの作り方教えてください
385デフォルトの名無しさん:2006/07/09(日) 12:59:24
暑くなると頭のおかしいのが出てくるね
386デフォルトの名無しさん:2006/07/09(日) 12:59:35
あ、ほんとだ
標準C規格だとlongの幅は最低限32ビットあるね
longが1オクテットというのは少なくとも標準規格ではありえないのか
387デフォルトの名無しさん:2006/07/09(日) 13:11:23
>>384
int main(void){
int x=100,dx=10;
x+=dx;
return 0;
}
388デフォルトの名無しさん:2006/07/09(日) 15:43:24
>>387
つづき
/*
これは C++builder でのみ使用してください!!!!!!!!!!!
*/
389389 ◆VJk5KzZ21U :2006/07/09(日) 15:59:17
[1] C言語
[2]
10個の数字を入力して、最小値を返すというものです
仕様は以下なのですが、どうか宜しくお願いします。

●main 関数
1. 要素数10個のint型配列data を宣言する
2. 繰り返しを用いて配列に10個のデータを入力する
3. getmin を用いて最小値を求め、int型ポインタ変数pos に代入する
4. pos が参照する位置の値を表示する

●getmin 関数
1. 第1引数(int型ポインタ)・ ・ ・ データが格納されている配列の先頭アドレス
2. 第2引数(int型)・ ・ ・ データの個数
3. 戻値(int型ポインタ)・ ・ ・ 最小値が格納されている要素のポインタ
4. 配列の最小値の位置を求める

[3] WinXP、MS Visual Studio 2005
Version 8.0.50727.42 (RTM.050727-4200)
Microsoft Visual C++ 2005 77972-233-0252147-41762

[4] 期限は今夜10時頃です
[5] ポインタが理解出来なくて躓いています・・・orz
390デフォルトの名無しさん:2006/07/09(日) 16:13:45
>>389
# include <stdio.h>

int *getmin(int *a, int n)
{
  int min = a[0];
  int *minptr = a;
  int i;
  for(i = 0; i < n; i++)
    if(a[i] < min)
    {
      min = a[i];
      minptr = &a[i];
    }
  return minptr;
}

int main(void)
{
  int data[10];
  int i;
  int *pos;
  for(i = 0; i < 10; i++)
  {
    printf("input: ");
    scanf("%d", &data[i]);
  }
  pos = getmin(data, 10);
  printf("min: %d\n", *pos);
  return 0;
}
391389 ◆VJk5KzZ21U :2006/07/09(日) 17:47:04
>390
おお、どうも有難う御座いました!
何とかポインタを理解できるよう頑張ります。
392デフォルトの名無しさん:2006/07/09(日) 18:26:37
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):以下のプログラムを完成させて、親子プロセス間で交互にメッセージを交換するプログラムを作成せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2304.c
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限: 7/11 22:00まで

よろしくお願いします
393デフォルトの名無しさん:2006/07/09(日) 18:46:23
[1] 授業単元:合成、フレンド
[2] 問題文(含コード&リンク):
以下のような制度を持つ学習塾に通学する学生の成績管理プログラムを作成する。
・すべての学生が英語、国語、数学、社会、理科の5教科を受講する。
・すべての学生は受講科目の試験を受ける。
・5教科の総合得点が最も高かった学生に100万円の奨学金が支給される。
・5教科の総合得点が450点以上の学生には報奨金として各1万円、400点以上の学生には各5000円が支給される。
 (奨学金とは別に支給される)
・試験の結果は、以下の一覧を作成し、コンソールに表示する。
  ・学生別科目別の得点と、各学生の総合得点および平均点、報奨金の一覧
  ・科目別の平均と標準偏差
  ・奨学金資金の学生の、氏名と総合得点および平均点
・過去の試験結果については、考慮する必要はない。
・学生は最大で100名入力できるようにする。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C++
[4] 期限: 7月12日まで
[5] その他の制限:クラスなどを使って、変更に強い仕様に。

自分でやってたら途中からこんがらがってきて・・。よろしくお願いします。
394デフォルトの名無しさん:2006/07/09(日) 20:30:53
>>393
>・5教科の総合得点が最も高かった学生に100万円の奨学金が支給される。
同得点の場合が不明
395デフォルトの名無しさん:2006/07/09(日) 21:07:18
[1] 授業単元: 演習
[2] 問題文(含コード&リンク):
入力された素数pに対して位数がp-1個数を
求めるプログラムを作ったのですが、数が大きくなると
オーバーフローを起こすのか、値がおかしくなってしまいます。
値が巨大になっても動作するように改良お願いいたします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2306.c
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: 7/10
396デフォルトの名無しさん:2006/07/09(日) 21:33:59
>>395
int modpow(int a, int n, int p)
{
int m = 1;
for( int flag = 1 << 30 ; flag ; flag >>= 1 ) {
m = (m * m) % p;
if( flag & n ) m = (m * a) % p;
}
return m;
}
32bit符号付き整数限定。これで2^16=65536まではOKなはず。
使い方は
-a = pow(i,(p-1));
+a = modpow(i,(p-1),p);
397デフォルトの名無しさん:2006/07/09(日) 21:41:36
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
データを圧縮するプログラムを作成する.一般に,バイナリデータ(0か1で構成されたデータ)では,1や0が連続して出現する傾向がある.
ここに注目してデータの量を減らす方法がある. たとえば,1111のように1が4つ連続して出現した場合,14のように表す. 同様に,
00000のように0が5つ連続して出現した場合,05のように表す. 例えば,111100000(計9文字)のようなデータは,1405
(4文字)と表されるので, 同じデータを少ない文字数で表すことができる.
# プログラム名をcompressとする
# 圧縮ファイル名をcompress.datとする
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 明日
お願いします。
398デフォルトの名無しさん:2006/07/09(日) 21:43:54
>>389
ちょww Producy Keyww
399デフォルトの名無しさん:2006/07/09(日) 21:51:16
あっ、、あー
400デフォルトの名無しさん:2006/07/09(日) 22:15:22
>>396
すいません、何をしているのかよくわかりません。
int modpow(int a, int n, int p)なんですが、
aとnの引数をどんな値にしても、pへの引数がそのまま返されてしまいます。
例えば、p=3としたとき、
for(i=0;i<p;i++)
{
a = (i,(p-1),p);
printf("%d\n",a);
}
こうすると、3しか出力されないのですが。
使い方がおかしいのでしょうか?
401デフォルトの名無しさん:2006/07/09(日) 22:25:29
突撃したら、書き込む前に冷静になって前50れすを読んでほしい。
なんか、クォリティー高いのがいるぞーwww
http://pc8.2ch.net/test/read.cgi/hack/1148626368/
402デフォルトの名無しさん:2006/07/09(日) 22:25:31
>>400
そんなこというからプログラム組んで確認したじゃないか。
使い方が間違ってるはず。こっちではちゃんとでた。

そういや、微妙にC++方式使ってたのでその点だけ訂正。
-int m = 1;
-for( int flag = 1 << 30 ; flag ; flag >>= 1 ) {
+int m = 1, flag;
+for( flag = 1 << 30 ; flag ; flag >>= 1 ) {
403デフォルトの名無しさん:2006/07/09(日) 22:31:12
>>402
本当に申し訳ございませんが、使い方がわかりません。
頭の-や+って何なのでしょうか?
こんなの初めて見るので・・
404デフォルトの名無しさん:2006/07/09(日) 22:38:03
ヒント:- 削除、+ 追加
405デフォルトの名無しさん:2006/07/09(日) 22:52:47
[1] 授業単元:オペレーションシステム
[2] 問題文(含コード&リンク):Linux のコマンドを一つとりあげ,同様の動作をするプログラムを作成せよ.
簡略化された機能の実装や授業でとりあげたコマンドの改良でも構わない.システムコールは必ず使用すること.
コマンド概要とプログラムについて説明すること.
また,そのコマンドを実行するときに,OSがどのような処理を行い,
資源をどのように操作しているのか,具体的に説明せよ.
管理しているデータやどのような契機で動作するかなどについて記述することが具体的な説明となる.
[3] 環境
 [3.1] OS: WindowsXP Home.E
 [3.2] コンパイラ名とバージョン: Visual Studio C++ 6.0
 [3.3] 言語: C++
[4] 期限: 2006/07/10/09:00 明日の朝ですorz

ほんと放置しすぎでテンパリまくりです。留年かかってるのでどうか助けてやってくださいorz
406405:2006/07/09(日) 22:54:25
すいません。
誤 [3.2] コンパイラ名とバージョン: Visual Studio C++ 6.0
正 [3.2] gcc

でした;;
407デフォルトの名無しさん:2006/07/09(日) 23:00:17
>>405
なんでOSがWindowsなんだ?
408デフォルトの名無しさん:2006/07/09(日) 23:00:40
>>400
for(i=0;i<p;i++)
{
a = (i,(p-1),p); // 関数名が無い。この「式」ではpが返ってくるのは当たり前。
printf("%d\n",a);
}
409デフォルトの名無しさん:2006/07/09(日) 23:07:53
>>405
cat.cとかで検索したらソース転がってるべ
410278:2006/07/10(月) 00:19:33
>>278をどなたかお願いいたします・・・。
火曜日まででけっこうです。
フラーリーのアルゴリズムは、違うやり方があればそれでもかまいません。
411デフォルトの名無しさん:2006/07/10(月) 00:36:45
#ifndef DELETE
#define DELETE(x);{ if( x != NULL ){ delete x; }x = NULL; }// C++スタイルのメモリ解放
#endif

をグローバルで宣言して使ったらerror C2064: 1 引数を取り込む関数には評価されません。
とでました何がおかしいですか?
412405:2006/07/10(月) 00:49:07
>>407
すいません…Linuxですね。ちなみにRed Hutです。

>>409
それっぽいファイル名を適当に入れて検索かけてみます。

ただ当方Cを習い初めで「猫でもわかるC言語」を読み通した程度の知識しかなく、
関数なども調べながらなのでなかなか難しい現状ですorz
413デフォルトの名無しさん:2006/07/10(月) 00:57:00
>>411
('A`)
414デフォルトの名無しさん:2006/07/10(月) 00:58:55
>>412
んじゃ、これで

#include <stdio.h>

int main(int argc, char **argv)
{
FILE *fp;
int c;
if( argc > 1 ){
fp = fopen(argv[1], "r");
if( fp ){
while( (c = fgetc(fp)) != EOF )
putchar(c);
}
}
return 0;
}
415デフォルトの名無しさん:2006/07/10(月) 00:59:42
>>411
>グローバルで宣言
この時点でおかしいわけだが

マクロを使用している部分のソースも欲しいところ
416デフォルトの名無しさん:2006/07/10(月) 01:01:02
>>405
> [3.3] 言語: C++

>当方Cを習い初めで「猫でもわかるC言語」を読み通した程度の知識しかなく、
ォィ
417デフォルトの名無しさん:2006/07/10(月) 01:35:16
>>405
ひょっとして環境はすべて間違い?
418405:2006/07/10(月) 01:45:26
すいません…。
正しくは、

[1] 授業単元:オペレーションシステム
[2] 問題文(含コード&リンク):Linux のコマンドを一つとりあげ,同様の動作をするプログラムを作成せよ.
簡略化された機能の実装や授業でとりあげたコマンドの改良でも構わない.システムコールは必ず使用すること.
コマンド概要とプログラムについて説明すること.
また,そのコマンドを実行するときに,OSがどのような処理を行い,
資源をどのように操作しているのか,具体的に説明せよ.
管理しているデータやどのような契機で動作するかなどについて記述することが具体的な説明となる.
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006/07/10/09:00 明日の朝ですorz
[5] その他の制限:「猫でも分かるC言語プログラミング」を一読した程度の知識。

だと思います;;
課題はLinuxで動くということなのですが自宅にはWindowsパソコンしかなく、
Visual Studio C++ 6.0 でソースを作成して明日の朝大学で動作確認しようと思い、
上記のような書き込みミスをしてしまいました。

>>416
CとC++の違いを未だ理解しておらず…すみません。
VS C++ 6.0 で、と思ってたのでC++と書き込みました。
419デフォルトの名無しさん:2006/07/10(月) 02:06:55
>>418
Windows しかないなら、 Cygwin をインストールした方がいいよ。
420デフォルトの名無しさん:2006/07/10(月) 02:14:39
>>418
それ授業単元名からして間違ってないか?
てなことは置いといて、これまで何をどう習ってきたのかがわからないと
説明が書けないよ。時間もないし。時間があるなら、
ttp://www.amazon.co.jp/gp/product/475614389X/
とかから適当にでっち上げることも出来たのに。もちろん、君自身が、だけど。

ご愁傷様。もっと早く来ればよかったね。
421405:2006/07/10(月) 02:29:29
>>419
情報ありがとうございます。
調べてみます。

>>414
遅れましたがありがとうございます。
自分なりにこのソースを行ごとに考えてみたのですが、
L4の int c;
はchar型じゃないのかと思ったのですがintで合ってるのでしょうか?
失礼でしたらスミマセン;;

>>420
OSの仕組みを学ぶということで
「オペレーティングシステムの役割と構成,動作原理等について学び,
オペレーティング・システムの全体像を理解することを目的とする。」
とシラバスにはあります。
422420:2006/07/10(月) 02:33:51
とまあ、これだけじゃなんなので、system callを使ったcatを書いてみた。
この程度のコードで十分なのかどうなのか不明だけど。
じゃ頑張って。俺寝るから。
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
int main(int argc, char* argv[])
{
int fd;
size_t size;
char buf[128];

if (argc == 1) {
fd = STDIN_FILENO;
} else {
fd = open(argv[1], O_RDONLY);
if (fd == -1) {
sprintf(buf, "file open error(%d)\n", errno);
write(STDERR_FILENO, buf, strlen(buf));
return 1;
}
}
while ((size = read(fd, buf, 1)) > 0) {
write(STDOUT_FILENO, buf, 1);
}
close(fd);
return 0;
}
423デフォルトの名無しさん:2006/07/10(月) 02:38:21
>>421
EOF受け取る必要があるので、intでおk
むしろcharだとここのみんなからぼっこぼこですお
あとシステムコール使用必須だったのね、読んでなかったスマソ
424420:2006/07/10(月) 02:39:18
あ、そうそう、
mycat foo.txt(ファイルをオープンして読み書きするパターン)
ls | mycat(パイプで結合された標準入力から読み込むパターン)
mycat < foo.txt(標準入力をリダイレクトされたパターン)
mycat(端末の標準入力から読み込むパターン)

あたりに関して説明するといいかもよ。
じゃ寝る。
425デフォルトの名無しさん:2006/07/10(月) 02:50:39
>fgetc() は stream から次の文字を unsigned char として読み int にキャストして返す。

(;・∀・) シランカッタ
426405:2006/07/10(月) 02:57:47
>>421
なるほど。>>425のような仕様によりこれで良かったのですね。
ありがとうございます。

>>422>>424
何から何まで…どうもです゚・(ノД`)・゚・
このソースに僕自身がやや追いついていない感がありますが頑張って一行一行咀嚼しながらレポ書きます(`・ω・´)
427デフォルトの名無しさん:2006/07/10(月) 06:48:09
よくよく考えたら>>305はn-1Cr-1+n-1Crを使ってnとrを引いていって
n=r,r=0,r=1の条件で再帰を止めてnか1を戻して足していくようにするんだったんだね・・・
答えた後になって気づいたが、今からじゃもう遅いか・・・
428デフォルトの名無しさん:2006/07/10(月) 09:14:11
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
double x,y;
char buf[1024];
do
{
printf("実数1を入力してちょ: ");
fgets(buf,1024,stdin);
}while((sscanf(buf,"%lf",&x))!=1);
do
{
printf("実数2を入力してちょ: ");
fgets(buf,1024,stdin);
}while((sscanf(buf,"%lf",&y))!=1);
printf("和: %lf\n",x+y);
printf("差: %lf\n",x-y);
printf("積: %lf\n",x*y);
printf("商: %lf\n",x/y);
system("PAUSE");
return 0;
}

値はscanf()で文字列として取り込み、
atof()で実数に変換するにはどうすればいいですか?
429デフォルトの名無しさん:2006/07/10(月) 10:40:46
キチガイが現れた。
各自臨戦態勢へ移行せよ。
430デフォルトの名無しさん:2006/07/10(月) 11:26:57
[1] 授業単元:
[2] 問題文(含コード&リンク):

座標(50,50)(200,200)からその2点を結ぶ線分を求め、
(60,60)(70,70)と10刻みで点を表示したいのですが、
こういう関数を作る公式?が思い浮かびません。
なお、2点の座標は可変です。
(30,30)(60,120)の時の場合を考えて見ます。この時は
(40,60)(50,90)(60,120)という3点を求められれば正解です。
つまり、x座標に対し10刻みにyの値を求めるような関数です。

[3] 環境
 [3.1] OS: (Windows/Linux/等々) linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc4.0
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限:無期限
[5] その他の制限:とくになし

分かりづらい説明で申し訳ありませんが、出来そうな方よろしくお願いします。
仕様が曖昧な為、正確でなくても構いません。似たような処理が完成している
ものであれば問題はないのです…
431デフォルトの名無しさん:2006/07/10(月) 11:40:25
>>430
高校でやった直線の方程式のベクトル表示なんだけど。
432デフォルトの名無しさん:2006/07/10(月) 11:53:46
>>430
あまり自信がないが。

# include <stdio.h>

int get_coord(int *x, int *y)
{
  char line[100];
  printf("Input coordinate: ");
  fgets(line, 100, stdin);
  if(sscanf(line, "(%d,%d)", x, y) != 2)
  {
    printf("Bad input\n");
    return -1;
  }
  return 0;
}

int main(void)
{
  int x0, x1, y0, y1;
  int x;
  if(get_coord(&x0, &y0) < 0 || get_coord(&x1, &y1))
    return 1;
  for(x = x0 + 10; x <= x1; x += 10)
  {
    int y = y0 + (y1 - y0) * (x - x0) / (x1 - x0);
    printf("(%d,%d)\n", x, y);
  }
  return 0;
}
433432:2006/07/10(月) 12:00:59
> if(get_coord(&x0, &y0) < 0 || get_coord(&x1, &y1))
これでも正しいけど、どうせならこっちで。
> if(get_coord(&x0, &y0) < 0 || get_coord(&x1, &y1) < 0)
434デフォルトの名無しさん:2006/07/10(月) 12:53:57
おぉ…すばらしい(ノ・ω・)ノ
Input coordinate: (20,40)
Input coordinate: (120,75)
と入力すると、
(30,43)
(40,47)... のようにズラズラーっと表示されました。
まさに期待したとおりの公式です。
int y = y0 + (y1 - y0) * (x - x0) / (x1 - x0);
ここの部分がミソですね!数学がさっぱりな僕にはこういうのが
スラスラっと出来る人がうらやましス もっと時間が掛かると思って
いたのですが(; ̄ー ̄) >>432-433 ありがとうございました。
435デフォルトの名無しさん:2006/07/10(月) 13:15:28
直線をドット打ちで引くプログラムを昔作ったの思い出した。
436デフォルトの名無しさん:2006/07/10(月) 14:08:07
[1] 授業単元:C言語入門
[2] 問題文:120人分のテストの点数を10点記刻みのヒストグラムで表示せよ。
      *により1人を表現して横向きのグラフとすること。また120人のテストの点はrandom関数を利用せよ
[3] 環境
 [3.1] OS: WinXP
 [3.2] コンパイラ名とバージョン:BCC1.2.21
 [3.3] 言語: Cのみ
[4] 期限: 今週中でお願いします。
[5] その他の制限:if,for,while,do whileを習い今回はarrayの学習です。

誰か助けてください‥。お願いします
437デフォルトの名無しさん:2006/07/10(月) 14:45:48
100点満点のテスト?
0点と100点はどう扱えばいいの?
438デフォルトの名無しさん:2006/07/10(月) 14:46:00
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void){
int array[120], i, j;
srand((unsigned)time(NULL));
for (i = 0; i < 120; i++){
array[i] = rand() % 101;
printf("%3d:%3d点 ", i+1, array[i]);
for (j = 0; j < array[i] / 10; j++) putchar('*');
printf("\n");
}
return 0;
}
439デフォルトの名無しさん:2006/07/10(月) 14:51:27
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void print_bar(int n){while(n--)putchar('*');putchar('\n');}
int main(){
int a[120],b[11]={0},i,j;
srand(time(NULL));
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)a[i]=rand()%101;
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)b[a[i]/10]++;
for(i=0;i<sizeof(b)/sizeof(b[0])-1;i++){
printf("%3d-%3d : ", i*10, i*10+9); print_bar(b[i]);
}
printf("100 : "); print_bar(b[i]);
return 0;
}
440438:2006/07/10(月) 14:58:01
題意を勘違いしてた
>>438は無かったことに
441デフォルトの名無しさん:2006/07/10(月) 15:05:26
>>392を誰かおねがいします
442436:2006/07/10(月) 15:33:35
>437さん

100点満点です。点の区切りは0〜9、90〜100です。

>439さん。

ありがとうございます。でもちょっと高度すぎて怪しまれます(;^_^

もう少し幼稚なプログラムにしていただけないでしょうか?ごめんなさいm(_ _)m
443@:2006/07/10(月) 15:47:18
[1] 授業単元:C言語入門
[2] 問題文:つぎの問題のプログラムについて、各自気になった点を具体的に指摘せよ
問2次方程式ax2+bx+c=0 の解を求めるプログラム.ただし,プログラムは,main()に加えて次の4関数で構成されるものとします.
􀀕判別式を計算する関数(戻り値なしの型で,参照渡しによって引数を与えること).
􀀕判別式が0 の場合の解を計算する関数(戻り値ありの型で,解はmain()で出力させる.参照渡しによって引数を与えること).
􀀕判別式が正の場合の解を計算する関数(戻り値なしの型で,解はmain()で出力させる.参照渡しによって引数を与えること).
􀀕判別式が負の場合,「解無し」と表示する関数.
ソース
#include <stdio.h>
#include <math.h>
void func_discri(double *array, double *d_value);
double zero_case(double *array);
void positive_case(double *array, double *d_valuei, double *ans1, double *ans2);
void negative_case(void);
int main(void){
double coef_arr[3], v_discri, sol1, sol2;
printf("Please input coefficients!");
printf("\na="); scanf("%lf", coef_arr);
printf("b="); scanf("%lf", coef_arr+1);
printf("c="); scanf("%lf", coef_arr+2);
printf("Solutions of (%f)*x^2+(%f)*x+(%f) are
calculated.\n",
coef_arr[0], coef_arr[1], coef_arr[2]);
func_discri(coef_arr, &v_discri);
if (!v_discri) printf("Single solution: x=%.4f\n",zero_case(coef_arr));
else if (v_discri>0) {
positive_case(coef_arr, &v_discri, &sol1,&sol2);
printf("Double solutions\n\tFirst solution: x=%.4f\n", sol1);
printf("\tSecond solution: x=%.4f\n",sol2); }
else negative_case(); return 0; }
444A:2006/07/10(月) 15:49:16
void func_discri(double *array, double *d_value){
*d_value=array[1]*array[1]-4*array[0]*array[2];}
double zero_case(double *array){
return (-1)*array[1]/(2*array[0]);}
void positive_case(double *array, double *d_valuei, double
*ans1, double *ans2){
*ans1=((-1)*array[1]+sqrt(*d_valuei))/(2*array[0]);
*ans2=((-1)*array[1]-sqrt(*d_valuei))/(2*array[0]);}
void negative_case(void){
printf("No solutions due to negative discriminant value!\n");}

[3] 環境 [3.1] OS: linux[3.2] コンパイラ名とバージョン:gcc[3.3] 言語: C[4] 期限: 7/12
445デフォルトの名無しさん:2006/07/10(月) 15:51:35
// マジックナンバーだらけにしただけで幼稚かどうかは知らんが題意にあわせてみた
#include <stdio.h>
#include <stdlib.h>

void print_rank(int st, int ed, int n)
{
printf("%3d - %3d:%3d:", st, ed, n);
for (int ic = 0; ic < n; ++ic) {
putchar('*');
}
putchar('\n');
}

int main()
{
int rank[11]={0};
for (int ic = 0; ic < 120; ++ic) {
++rank[(rand() % 101) / 10];
}
for (int ic = 0; ic < 9; ++ic) {
print_rank(ic * 10, ic * 10 + 9, rank[ic]);
}
print_rank(9 * 10, 9 * 10 + 10, rank[9] + rank[9 + 1]);
return 0;
}
446デフォルトの名無しさん:2006/07/10(月) 16:37:44
ttp://www.sra.co.jp/people/miyata/algorithm/
ここのソースも参考になりそうやな
447デフォルトの名無しさん:2006/07/10(月) 17:56:12
[1]授業単元;IT入門
[2]問題文:No.2311
[3]環境
 [3.1]OS:(Linux)
[3.2]コンパイラ名とバージョン:(gcc3.4)
[3.3]言語:C
[4]期限:今日
[5]その他の制限:構造体まで一通り習いました。
よくわからないので、ご協力お願いします。助けてください。
448デフォルトの名無しさん:2006/07/10(月) 18:02:00
>>447
うpろだ使ったらリンク貼れ。
449デフォルトの名無しさん:2006/07/10(月) 18:07:55
>>447
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=1993
っつか、うpロダ使ってるなら、問題文をテキストファイルにして
うpしてファイルに直リンした方が良いが
そんな問題を期限が今日で他人任せってのもねぇ・・・
俺は>>52の問題を時間があったからやったけど、今回はパス。
450デフォルトの名無しさん:2006/07/10(月) 18:21:35
無意味な自己主張うざ。
451デフォルトの名無しさん:2006/07/10(月) 18:22:27
452デフォルトの名無しさん:2006/07/10(月) 18:22:58
>>429 >>450
http://pc8.2ch.net/test/read.cgi/tech/1152095097/95
無意味な煽りうざっ。どうせお前にレスする奴をとことん叩いてまた荒らすつもりだろ
もう回りは気づいているよ、キチガイニートが荒らしていることなんて
453397:2006/07/10(月) 18:44:26
397に書き込んだ者です。
もしわかる方いらっしゃったらお願いします。
4549:2006/07/10(月) 19:01:54
>272
意見ありがとうございます。
455デフォルトの名無しさん:2006/07/10(月) 19:23:28
>>308
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2291.txt
あまり時間が無いので何方かお願い致します。
途中まではなんとか出来ていると思います。
456デフォルトの名無しさん:2006/07/10(月) 19:29:58
>>453
01は文字列で出力すればいいの?(´・ω・`)
457397:2006/07/10(月) 19:54:49
>>456
はい、文字列だと思います。実行例があったのでのせときます。
[xxxxxxxx]%cat compress.dat
1011111000010111100
[xxxxxxxx]%./compress
1101150411011402
458デフォルトの名無しさん:2006/07/10(月) 19:55:21
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 2つの整数をキーボードから入力し,
大きい方を表示するプログラムを関数を用いて作って下さい。
[3] 環境
 [3.1] OS: リナックス
 [3.2] コンパイラ名とバージョン: (gcc
 [3.3] 言語: (C
[4] 期限: 明日
[5] その他の制限:
整数型引数が2つ,返り値が整数型の
 Int  max_out(int a, int b){}
関数を作り,main()関数から呼びだす。

459デフォルトの名無しさん:2006/07/10(月) 20:02:17
>>455
例えば、レコード番号1を指定したはずが番号3のが表示されるってのがまずいってことでいいの?
それなら point_line() の for 文のとこを for(i = 1; i < recno; i++) に
460デフォルトの名無しさん:2006/07/10(月) 20:14:47
どなたか317をお願いできないでしょうか?
461デフォルトの名無しさん:2006/07/10(月) 20:20:05
>>459
それでも、レコードを7個入力すると、どの番号を指定してもエラーになりますが。
462デフォルトの名無しさん:2006/07/10(月) 20:35:42
[1]授業単元;IT入門
[2]問題文:二次方程式ax²+bx+c=0の係数a,b,cを入力し、
実数解、重解、虚数解にわけて解を求め表示するプログラムを作成せよ。
ただし「a≠0とする。
[3]環境
 [3.1]OS:Windows XP
 [3.2]コンパイラ名とバージョン:gcc
 [3.3]言語:C
[4]期限:7/11
[5]その他の制限:特にないです
463デフォルトの名無しさん:2006/07/10(月) 20:44:44
>>461
7個とはまた妙なバグを・・・と思ったら free_line() がバグってるだけじゃまいか
p = w->pnext; を p = w; に
464462:2006/07/10(月) 20:54:40
あ、授業単元は「IT入門」というものではありませんでした。
直前にあった>>447さんのものをコピペして参考に使わせてもらったのですが
そこを直し忘れました。授業単元は「プログラミング言語」です。
よろしくお願いします。
465デフォルトの名無しさん:2006/07/10(月) 21:13:12
>>462
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2316.txt

間違ってたら(´・ω・`) ゴメン
466Javaはイイ:2006/07/10(月) 21:14:20
>>458
もっと良い方法が無い物かと考えましたがこれが限界です。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28052

<や>を使うのは自分としては卑怯でした orz
できれば論理演算でやりたかったです・・・・ (時間がないため断念)
467デフォルトの名無しさん:2006/07/10(月) 21:20:13
>>458
int max_out(int a,int b)
{
return a>b ?a :b;
}
468デフォルトの名無しさん:2006/07/10(月) 21:25:49
ところで、Forum and Sourcepostって何?
初めて見たんだけど。
469デフォルトの名無しさん:2006/07/10(月) 21:30:29
>>465
解ごとに実数解、虚数解、重解全部ちゃんと動作しました。
うpろだでのテキストアップでTABキーもつぶれていなく見やすくて、
コメントアウトもあって非常に流れがわかりやすかったです。
こんなに早くわかりやすく やってくださってありがとうございました!
470デフォルトの名無しさん:2006/07/10(月) 21:48:01
[1] 授業単元: プログラミング言語演習
[2] 問題文(含コード&リンク):
問題には分数や累乗が含まれていたのでテキストじゃ見づらいと思い
画像データで転写しました。
ttp://tool-ya.ddo.jp/webfs/~enigma/%e7%84%a1%e9%a1%8c.JPG
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland c++ compiler
 [3.3] 言語: C
[4] 期限:7/12まで
[5] その他の制限:

よろしくお願いします。
471デフォルトの名無しさん:2006/07/10(月) 21:51:22
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):関数function()を使って,
Main 1
Function 1
Main 2
Function 2
Main 3
Function 3
と表示するプログラムを作って下さい。
 数字も正確に出力すること。 

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: (gcc
 [3.3] 言語: c
[4] 期限: 明日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ナシ
472デフォルトの名無しさん:2006/07/10(月) 22:02:27
関数 function() って何?
473デフォルトの名無しさん:2006/07/10(月) 22:03:46
>>471
ここはCかC++の宿題用だよ。
c なんて言語はスレ違い。
474デフォルトの名無しさん:2006/07/10(月) 22:05:20
>>471
#include <stdio.h>
void function(int a);
main() {int i;
for(i=1; i<=3; i++) {printf("Main %d\n",i);function(i);}}
void function(int a) {printf("Function %d\n",a);}
475デフォルトの名無しさん:2006/07/10(月) 22:06:05
#include <stdio.h>

void function(int n){
printf("Function %d\n", n);
}

void main(void){
int i;
void (*func_p)(int) = function;
for(i=1;i<=3;i++){
printf("Main %d\n", i);
(*func_p)(i);
}
}
476デフォルトの名無しさん:2006/07/10(月) 23:00:06
[1] 授業単元:基礎プログラム2
[2] 問題文(含コード&リンク):
配列の加算
main関数で3つの配列array1[n],array2[n]とresult[n]を宣言、初期化する。array1とarray2における同一添え字
の要素の値を加算した結果をresultにある当該添え字の要素に格納する関数void add_array(int n,int array1[],int array2[],int result[])を作成せよ。
ただし、main関数の最後でresultの各要素の値を表示させること。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: cygwin
 [3.3] 言語: C
[4]期限:明日の13時まで。
お願いします。
477デフォルトの名無しさん:2006/07/10(月) 23:02:58
固定文だからputsでよくね?

#include <stdio.h>
int function(void){return puts("Main 1 \nFunction 1 \nMain 2 \nFunction 2 \nMain 3 \nFunction 3");}
int main(void){return function();}
478デフォルトの名無しさん:2006/07/10(月) 23:09:01
>>397
#include <stdio.h>
int main(void){
int c1,c2,n;
n = 1;
c1 = getchar(); /*1文字目ゲット*/
while(EOF != (c2 = getchar())){ /*文字列の最後に改行があることに注意*/
if(c1 == c2){ /*同じならばカウント*/
n++;
if(n==10){ /*9文字越えたら分割*/
printf("%c%c",c1,'9');
n=1;
}
}
else{ /*違ったら出力*/
printf("%c%c",c1,'0' + n);
n = 1;
c1 = c2;
}
}
printf("\n");
return 0;
}
479デフォルトの名無しさん:2006/07/10(月) 23:15:32
>>455
if文から != (LIST *)NULL を省略すると
警告 W8060 ensyu.c 108: おそらく不正な代入(関数 disp_now )
になるのは何故でしょうか?省略できるはずですが。
480デフォルトの名無しさん:2006/07/10(月) 23:30:50
>>479
当たり前だろ
不正かどうかはともかくなんで代入式をまんまif文の中に書いてんだよ
これはmallocがメモリ確保できたどうかを判断するためにNULLチェックしてるんだろ多分
そうでなきゃifの括弧内に書くな
481デフォルトの名無しさん:2006/07/10(月) 23:56:16
>>480
自分の言ってること理解してますか?
482デフォルトの名無しさん:2006/07/11(火) 00:01:45
朝鮮語でおk
483デフォルトの名無しさん:2006/07/11(火) 00:10:10
while((c=getchar())!=EOF)とかは書いちゃだめですか
484デフォルトの名無しさん:2006/07/11(火) 00:11:57
>>479
暴れられてもぬるぽなのでマジレス
警告はコンパイラがそれっぽいっていう文に対して出すだけなので実際に間違ってるか否かは場合による
この場合、文法的には問題はねーし gcc だと警告も出なかったりする
気になるなら警告レベルを下げてみれ
485デフォルトの名無しさん:2006/07/11(火) 00:13:17
だから最終的に真偽式にしろってことだ
486デフォルトの名無しさん:2006/07/11(火) 00:17:03
なんで簡単にはっきりと書かないのかわけわからん。

コンパイラが代入式に警告を出すようになったのは'=='のつもりで
'='と書いてしまうのを防ぐため。デフォルトで出すか出さないかは
コンパイラによる。
487397:2006/07/11(火) 00:19:24
>>478
./compress のあとに圧縮ファイルがでてくるようにするにはプログラムに何をつけたせばいいのですか?
488デフォルトの名無しさん:2006/07/11(火) 00:33:52
>>484 >>486
どうもありがとうございます。
ステップ3、4(>>308)についてもわかる方がいらっしゃればよろしくお願いします。
489デフォルトの名無しさん:2006/07/11(火) 00:38:19
>>487
リダイレクト。
490397:2006/07/11(火) 01:07:21
>>489
すいませんリダイレクトって何ですか. . .?
491デフォルトの名無しさん:2006/07/11(火) 01:37:26
[1] C言語入門
[2] scanf により10 個の3 桁の数をキー入力する。
この入力した整数の中で700 以上で
尚且つ偶数である数の個数を求めるプログラムを作成せよ。
ただし、if 文や、switch 文は用いてはならない。
ループも一回のみとする。また、3 桁か否かを判断する必要はないとする。
(ヒント:+= ????? * ( x / 700 ) )
(実行例) 下線部はキーボードより入力する。
整数を入力===>256
整数を入力===>189
整数を入力===>667
整数を入力===>328
整数を入力===>467
整数を入力===>980
整数を入力===>533
整数を入力===>315
整数を入力===>889
整数を入力===>662
700 以上の偶数は1 個です。
[3] 環境
 [3.1] windowsXP
 [3.2] Visual Studio .NET2003
 [3.3] C++
[4] 2006/07/11 つまり、今日です。
[5] 2重ループまで
制限に関しては上記の通り、if 文や、switch 文を使わない。
  ループも一回のみとする。また、3 桁か否かを判断する必要はないとする。
492デフォルトの名無しさん:2006/07/11(火) 02:30:50
>>491
for(i = 0; i < 10; i++){
 scanf("%d", &x);
 n += (!(x % 2)) * (x / 700);
}
493デフォルトの名無しさん:2006/07/11(火) 02:38:03
>>492

ありがとう。
でもエラーでちゃいます・・
494デフォルトの名無しさん:2006/07/11(火) 02:45:13
>>493
スマソ、インデントのために全角スペース入れてるという注意忘れてた
これを丸々コピペでどうか

#include <stdio.h>

int main(void)
{
int i, x, n;
n = 0;
for(i = 0; i < 10; i++){
printf("整数を入力===>");
scanf("%d", &x);
n += (!(x % 2)) * (x / 700);
}
printf("700以上の偶数は%d個です。", n);
return 0;
}
495デフォルトの名無しさん:2006/07/11(火) 02:53:47
論理積を使ってみた

#include <stdio.h>

int main(void)
{
int i, x, n;
n = 0;
for(i = 0; i < 10; i++){
printf("整数を入力===>");
scanf("%d", &x);
n += (!(x & 1)) * (x / 700);
}
printf("700以上の偶数は%d個です。", n);
return 0;
}
496デフォルトの名無しさん:2006/07/11(火) 02:55:44
>>494
ありがとうございます。
理解しがたい部分もありますが、ノート見つつ理解していってみようと思います。

本当にありがとうございました。
497デフォルトの名無しさん:2006/07/11(火) 03:50:39
[1]授業単元;プログラミング
[2]問題文:配列に1〜16の数字を入れ、その中からランダムに
2つの数字を入れ替える。
さらに、その数字の間を全て逆順に入れ替え、出力するプログ
ラムを作成せよ。
例えば、2と13が選ばれた場合、
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

1,13,12,11,10,9,8,7,6,5,4,3,2,14,15,16
となるようにせよ。
[3]環境
 [3.1]OS:Windows XP
 [3.2]コンパイラ名とバージョン:gcc
 [3.3]言語:C
[4]期限:7/11
よろしくお願いします。
498デフォルトの名無しさん:2006/07/11(火) 05:11:04
499デフォルトの名無しさん:2006/07/11(火) 07:16:05
>>498
どうもありがとうございます。
500デフォルトの名無しさん:2006/07/11(火) 10:11:06
C++でwaveformatについて詳しく書いてあるサイト知りませんか?
501デフォルトの名無しさん:2006/07/11(火) 11:42:24
[1]情報プログラミング入門U
[2]前課題で作成した、リストを自動的に作成する関数を再帰的に用いて作成したリ
ストのプログラムhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2319.txt
を元に、リストの個数をカウントする関数を付け加え、
リストの個数をカウントするプログラムに改訂しなさい。
[3]Linux gcc C言語
[4]本日です・・・
502デフォルトの名無しさん:2006/07/11(火) 13:35:43
>>501
void count_list(LINK head)
{
static int count = 0;
if (head == NULL) printf("count = %d\n", count);
else {
count++;
count_list(head->next);
}
return;
}
503デフォルトの名無しさん:2006/07/11(火) 13:42:28
>>501
こっちのほうがいいか。
void count_list(LINK head, int count)
{
if (head == NULL) printf("count = %d\n", count);
else {
count_list(head->next, count+1);
}
return;
}

呼び出しは
count_list(h, 0);
504デフォルトの名無しさん:2006/07/11(火) 17:14:13
再帰ックフォース。
505392:2006/07/11(火) 20:28:53
どなたか解けませんか?
506デフォルトの名無しさん:2006/07/11(火) 22:36:52
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
複素行列Aの一般化逆行列を求めよ
ただし一般化逆行列とは次の4つの条件を満たすような行列Xのこと
AXA=A, XAX=A, (AX)~*=AX, (XA)~*=XA
A~*とはAの共役転置行列とする

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:Cのみ
[4] 期限: ([2006年07月25日23:59まで)
[5] その他の制限: なし

[6コメント:頼む・・・ってこんなめんどくさいの誰もやってくれないかな?
てか難しくない?俺の単位がかかってるのよ
ネットでソース探したんだが、よくわからなかった
507デフォルトの名無しさん:2006/07/11(火) 22:46:22
>>506
すんげー簡単そう
でも俺
って数
Cやっ
ないの
よね。
508393:2006/07/11(火) 22:46:48
>>394
返事送れてすいません・・(汗)。
最高得点の生徒が複数いた場合は、その全員に奨学金が支給される、ってコトでお願いします。
・・いや、実はその場合の指示がないんで、複数いる場合は想定しなくても良いです。
509デフォルトの名無しさん:2006/07/11(火) 22:51:11
>507
くだらないレスしないでね
510デフォルトの名無しさん:2006/07/11(火) 22:57:16
511デフォルトの名無しさん:2006/07/11(火) 23:17:03
単位がかかってるとか言われるとネタに走りたくなるな
512506:2006/07/11(火) 23:21:21
ネタはやめてくれよw

せっかく毎週授業に出たのに、結局成績は期末レポート重視
要はこの問題ができれば単位くれるのだが、、、、

っていうかやってくれるやつが居たら神だな・・・
513デフォルトの名無しさん:2006/07/11(火) 23:26:41
[1]授業単元;情報活用基礎C
[2]問題文;123...9の間に+か-をいくつか入れて、計算結果が100になるものをすべて求めるプログラム
を作成せよ。たとえば、1+23-4+56+7+8+9はその解の一つである。
最初の1の前に-をつけることを許した場合と許さない場合について求めよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:Cのみ
[4] 期限:明日の正午
[5] その他の制限:なし
514デフォルトの名無しさん:2006/07/11(火) 23:31:42
>>506
A^TをAの転置行列として、一般化逆行列ってA^T * ( A * A^T )^-1でよかったっけ?
線形代数なんてもう忘却の彼方なので、複素行列の場合に成立したか自信ない
515デフォルトの名無しさん:2006/07/11(火) 23:34:14
[1]授業単元:情報活用基礎C
[2]問題文:キーボードから順次入力された正の整数を0が入力
されるまで、配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)にもっとも近い値(平均との差が最小
になる値)が何番目に入力されたどういう値であるかを表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日の正午
[5] その他の制限:なし
516506:2006/07/12(水) 00:04:10
>514
すまない
質問しておきながら、実はよくわかっていない
そういう式から導けるのかな・・・
4つの条件式から連立方程式を作って解いていくのかと思っていた
でもそれだと二次関数になるしな
もしかしたら考えてくれる人がいるかもだし、明日の朝図書館で調べてくる
517332:2006/07/12(水) 00:18:30
どなたか、>>332を教えて下さい。
とりあえず、1のAと2のC、3のBだけでも良いので、お願いします。
518デフォルトの名無しさん:2006/07/12(水) 00:21:11
519518:2006/07/12(水) 00:21:59
>int add(int x, int y) { return x + y; }
>int sub(int x, int y) { return x - y; }
消し忘れでした。
520デフォルトの名無しさん:2006/07/12(水) 00:25:00
[1] 授業単元:情報処理基礎演習
[2] 問題文:素数の表示
      指定した数以下の全素数(例えば10以下の全素数は2,3,5,7)
      を表示するプログラムを、次のような3つの関数定義して
      作成してください。ただし指定する数の入力は適切な値が
      入力されるまで繰り返され、素数10個を表示するごとに
      改行するようなプログラムとしてください。
      
      (ア)指定した数が適切な範囲かどうかを検査し、適切ならば0、
        不適切ならば1(逆の方が使いよければ逆でも可)を返す関数
      (イ)適切な値が入力されるまで入力を繰り返し、最終的に
        入力値を返す関数((ア)を利用)
      (ウ)引数に指定した数が素数なら1、素数でなければ0を返す関数

      ヒント
       a)(ウ)で素数かどうかを判定するには、指定した数mが2〜m-1の
       数値で割り切れるかどうかを判定し、ひとつも割り切れるものが
       なければ素数と判定します(素数の定義通り)。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2006年7月12日17時まで
[5] その他の制限:初心者です。よろしくお願いします。
521デフォルトの名無しさん:2006/07/12(水) 00:28:49
>>517 3-B
#include <stdio.h>
int main(void) { int n; scanf("%d", &n); n=(n+1)>>1; printf("%d\n", n*n); return 0;}
522デフォルトの名無しさん:2006/07/12(水) 00:52:40
"適切な値"ってなに?
入力できる値の制限ルールとかあんの?
523デフォルトの名無しさん:2006/07/12(水) 00:54:56
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):

ttp://cateye.nce.buttobi.net/cgi-bin/upload/src/up0170.txt
上記URLにあるプログラムにて、p2とp3をfor文に書き換えることが問題になります。

[3] 環境
 [3.1] OS: RedHatLinux9.0
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006年7月13日 09:00まで
[5] その他の制限: 特にありません。よろしくお願いします。
524デフォルトの名無しさん:2006/07/12(水) 00:55:40
やれやれ、出題者が馬鹿なのか、入力した香具師が馬鹿なのか。いや、両方だな。

>A.長方形の2辺の長さをキーボードから入力したときに、4編の和を求めるプログラムを作成せよ。
誤変換はあるし、「2辺の長さ」に対して「4辺の和」では用語が統一されていない。

>  Long side = 50 (cm), Short side = 10 (cm), Total = 120 (cm)
入力単位はcmオーダと仮定していいのか悪いのか、明示しておくべきだろう。

>B.y=x(2)の値を0<x<10の範囲で1刻みで計算し表示するプログラムを作成せよ。(注:(2)は2乗のこと)
>  ̄  ̄
まさか「≦」を知らないのか? (2)で2乗ってセンスも凄いけど。

>C.円周率Π(数学のパイ)を3.141593とし、半径を10(cm)としたときの、円周の長さと面積および、
「Π」と「π」を混同するな。円周の面積は常に0だ。

飽きたからこの辺で。
525おもろい:2006/07/12(水) 01:01:11
>「2辺の長さ」に対して「4辺の和」
長方形ですが、何か?


>>円周の長さと面積および、
>円周の面積は常に0だ。
長さは円周について、
面積は円の面積だろ、この文脈では
526デフォルトの名無しさん:2006/07/12(水) 01:05:58
>>525
>524は論って揶揄しているだけだから気にすんな。
#まぁ、普通は「4辺の長さの和」とするわな。
527デフォルトの名無しさん:2006/07/12(水) 01:33:41
>>515
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2329.c
こんな感じでええやろか?平均が3.5で入力された値に3と4があった場合
どちらか一方のみで先に入力された方を表示するようにしか対応してないけど
528デフォルトの名無しさん:2006/07/12(水) 02:01:11
>>517
1のABCを解いてから注文が違うことに気がついた orz
1-A
#include<stdio.h>
int main(){int side1, side2, tmp;
printf("長方形の2辺の長さ:"); scanf("%d %d", &side1,&side2);
if(side1 < side2){tmp = side1;side1 = side2;side2 = tmp;}
printf("Long side = %d (cm), Short side = %d (cm), Total = %d (cm)\n",side1,side2,side1*2+side2*2);
return 0;}
2-C
#include<stdio.h>
int main(){int i;
for(i=1;i<=100;i++)if(i%7)printf("%d ",i);
printf("\n");
for(i=1;i<=100;i++)if(!(i%3||i%2))printf("%d ",i);return 0;}
3-B
#include<stdio.h>
int main(){int n,i,sum=0;
scanf("%d",&n);if(n%2){for(i=1;i<=n;i+=2)sum+=i;printf("%d",sum);}
else printf("偶数です"); return 0;}

なんか疲れてるから致命的な馬鹿をやってるかも。反省はしてない。
3-Bも最初は1+3+5=9って画面に表示させたり・・・ orz
529392:2006/07/12(水) 02:28:18
>>510
あいrがとゆごじます!!
530デフォルトの名無しさん:2006/07/12(水) 02:42:11
>>524
氏ね
531デフォルトの名無しさん:2006/07/12(水) 03:13:02
>>524
揚げ足が取りたいのか、自分が無知だと晒したいのか、はっきりしてくれ
俺としては君の意見の方が笑えるw
532デフォルトの名無しさん:2006/07/12(水) 03:45:46
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
自然数をキーボードから入力し,昇順ソートして画面に出力する.
入力データ数は50個以下,各自然数は0以上9999以下とする.
出力は各行10個まで,それぞれの数について,右端を揃えること.

これをバブルソートではなくクイックソートを使って動かせ.その際,基準値の取り方を工夫せよ.
(工夫し過ぎると,その処理に時間がかかって却って遅くなることもある.)

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [7/12が締め切りでヤバイです…。]
[5] その他の制限: 特にありません。
533デフォルトの名無しさん:2006/07/12(水) 05:23:51
534デフォルトの名無しさん:2006/07/12(水) 05:33:45
あ、自分でクイックソートのコードも書けってことか?マンドクセッから後は
その部分をご自分で適当にどぞ
535332:2006/07/12(水) 07:33:51
>>528
どうも有り難うございました。
536デフォルトの名無しさん:2006/07/12(水) 08:21:42
>>333
httpプロキシの作成を頼んだものですがkeep-Ariveの確認ができなくても良いのでプログラムを見せていただけないでしょうか。
お願いします。
537デフォルトの名無しさん:2006/07/12(水) 10:35:30
[1] C言語プログラミング
[2] 問題文(含コード&リンク):
要素数5の配列key[5]に、適当な初期値を用意し、単純交換法でソートするプログラムを作成せよ
要素が1つ決定されるたびに(前ページの流れ図のループ1の中で)、確認の為配列を画面に出力しなさい
初期値として、スライド・教科書の例を使い確認すること。
{58, 27, 6, 32, 13}
比較回数を数えて、最後に画面に出力しなさい
計算量の説明を参照して、確認すること
教科書・スライドの流れ図とプログラムで、要素番号の違いに注意する
[3] 環境
 [3.1] OS: XP
 [3.2] visual studio.2003
 [3.3] 言語: C
[4] 期限: 来週の火曜日まで
[5] 配列、ループ、線形探索、二部探索、構造体
538デフォルトの名無しさん:2006/07/12(水) 11:40:34
>>537
#include<stdio.h>
#define N 5
int main(){int key[N]={58,27,6,32,13},i,j,temp,count;
for(i=0;i<N-1;i++){for(j=N-1;j>i;j--){
if(key[j-1]>key[j]){temp=key[j-1];key[j-1]=key[j];
key[j] = temp;count++;}}}printf("%d",count);}

ぐぐって(元はJavaだったけど)ほとんどコピペ。反省はしてない。
えーっと、説明を参照して確認するのは自分でやってね?
539デフォルトの名無しさん:2006/07/12(水) 11:41:40
count=0にするの忘れてた orz
540デフォルトの名無しさん:2006/07/12(水) 11:46:22
なんだろう だいぶ疲れてるみたいだ 問題文読み飛ばしてた main以降を再度貼る
int main(){int key[N]={58,27,6,32,13},i,j,temp,count=0;
for(i=0;i<N-1;i++){for(j=N-1;j>i;j--){
if(key[j-1]>key[j]){temp=key[j-1];key[j-1]=key[j];
key[j] = temp;count++;}}printf("%d %d %d %d %d\n",key[0],key[1],key[2],key[3],key[4]);}
printf("%d",count);return 0;}

これで大丈夫・・・ そう信じたい・・・ orz
541IQ77:2006/07/12(水) 15:08:48
エロゲスレより

エントロピはデータに本質的に内在されるもので
データの外面性との関連はない
データの性質が変わった瞬間にエントロピも変わる

データの本質がかわらない可逆圧縮ではエントロピは変わらない
データの本質が変化する可逆圧縮では内在するエントロピが変化する

つまり、不可逆圧縮はエントロピ自体を削ることにより容量を少なくしている

>可逆圧縮のとき、求められるエントロピーXの値に対して
>非可逆圧縮で圧縮された値PがXを下回ることがない
可逆圧縮のXと比較している時点でおかしい。
542デフォルトの名無しさん:2006/07/12(水) 22:13:09
[1] 授業単元:プログラミング技術
[2] 問題文(含コード&リンク):文字型配列を、"OKINAWA"と初期値として宣言し、
文字列を反転させて、"AWANIKO"と出力するプログラムを作りなさい。
[3] 環境
 [3.1] Windows XP sp2
 [3.2] BCC
 [3.3] C
[4] 無期限
[5] なし

よろしくおねがいします。
543デフォルトの名無しさん:2006/07/12(水) 22:33:48
>>542
#include<stdio.h>
int main(){char s[]="OKINAWA",t;int i,j=0,k;
printf("%s\n",s);k=sizeof(s);
for(i=k-2;i>=(k/2);i--){t=s[i];s[i]=s[j];s[j]=t;j++;}
printf("%s\n",s);return 0;}
544デフォルトの名無しさん:2006/07/13(木) 00:07:09
>>321おながいします_| ̄|○
545デフォルトの名無しさん:2006/07/13(木) 02:11:25
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):ビットごとのXOR演算子を用いて、文字列を暗号化するプログラムを作成せよ。ただし、プログラムは以下のの条件を満たすものとする。
条件@対象とする文字列は80文字以下とし、アルファベット小文字、スペース、ピリオド、コンマからなる。
条件A暗号化は、対象文字列を逆順にするとともに、各文字と0から9までの数字(キーナンバーとして打ち込んだもの)とのXORをとって完了する。ただし、スペース、ピリオド、コンマについてはXOR演算の対象としないこと。
条件B暗号化、復号化の処理は、それぞれ少なくとも1個ずつ関数を定義し実行させること。
<仕様>@ファイルoriginal.dat(ASCII形式)二保存されている文字列を暗号化対象として読み込む。original.datが存在しないときには、最初に対象文字列をそのファイルに書き込ませること。
A上記条件Aで示した方法によって、暗号化する。そして、キーナンバーと暗号化文字列をファイルcoded_wds.dat(ASCII形式)に書き込む。
B復号化の際は、coded_wds.datを読み込んで実行すること。まず、キーナンバーを打ち込ませる。誤ったキーナンバーを3回連続して打ち込んだ場合、処理を終了させること。正しいキーナンバーが打ち込まれた場合、復号化してその結果を表示させること。
<original.dat作成入出力例>
MENU
1.Making a file
2.Coding
3.Decoding
Please input number 1-3:ab←1〜3以外の文字は受け付けないようにする。
Try again!
1.Making a file
2.Coding
3.Decoding
Please input number 1-3:1
Please input original words(The length is less than 80):i have a pen,you have a pencil.
(以上が完了後、各自のホームディレクトリにoriginal.datが作成される)
[3] 環境 [3.1] linux[3.2] gcc [3.3] C [4] 7/18[5]条件多いですがぜひともよろしくお願いします><
546デフォルトの名無しさん:2006/07/13(木) 09:34:24
[1] 授業単元:
[2] 問題文(含コード&リンク):
テキストファイルを読み込み,ファイルの中のアルファベットを数え上げるプログラムを作成しなさい.

キーボードからファイル名を入力すると,そのファイル名のテキストファイルを読み込み,アルファベット(大文字と小文字は区別しない)のみをそれぞれの文字ごとに数えるプログラムを作成しなさい.

# ファイル名は256文字まで入力できるようにしなさい.
# 出力は、printf("%3c:%d");の形で示しなさい.
実行例

]%cat test.txt
That the pretended power of suspending laws, or the execution of laws,
by regal authority, without consent of parliament is illegal.
]%./charcount
test.txt
a:8 b:1 c:2 d:3 e:13 f:3 g:3 h:5 i:7 j:0 k:0 l:7 m:1 n:7 o:9 p:4 q:0 r:6 s:6 t:12 u:4 v:0 w:4 x:1 y:2 z:0
[3] 環境
 [3.1] OS: (Windows/Linux/等々) linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 13日20時まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)なし
よろしくおねがいします
547デフォルトの名無しさん:2006/07/13(木) 13:54:32
[1] 授業単元:
[2] 問題文(含コード&リンク):
ファイル data1.txt には整数値が100個書かれているとする。
data1.txt から読み込んだデータを大きい順に並べ替えてdata2.txtに書き込むプログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C
[4] 期限: できればすぐ!
[5] その他の制限:特にありません。宜しくお願い致します。
548547:2006/07/13(木) 14:01:12
すみません間違えました

[1]業単元: プログラミング演習
[2] 問題文(含コード&リンク):
data1.txt に100個の乱数を書き込むプログラムを作成し、data1.txt ファイルを作成する。
data1.txt から読み込んだデータを大きい順に並べ替えてdata2.txtに書き込むプログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C
[4] 期限: できればすぐ!
[5] その他の制限:特にありません。宜しくお願い致します。
549デフォルトの名無しさん:2006/07/13(木) 14:22:47
>>544
#include <stdio.h>
#include <stdlib.h>

#define N 10000
#define M 100
#define A 4.0
#define X0 0.1

int main(int argc, char **argv)
{
int i, n = argc > 1 ? (int)strtol(argv[1], NULL, 0) : N;
int d_cnt[M] = {};
double x = X0;

for (i = 1; i < n; i++) {
x = A * x * (1.0 - x);
d_cnt[(int)(x * M)]++;
}

for (i = 0; i < M; i++) {
printf("%d ", d_cnt[i]);
}
printf("\n");
return 0;
}
550デフォルトの名無しさん:2006/07/13(木) 15:05:24
551547:2006/07/13(木) 15:12:51
>>550
申し訳ないです
本当にありがとうございます
552デフォルトの名無しさん:2006/07/13(木) 15:30:53
[1] 授業単元: プログラミング演習1
[2] 問題文(含コード&リンク): 以下の2つの課題について,C言語でプログラムを作成し,プログラムおよび実行結果を示し,考察せよ.

@キーボードから正整数を読み込み,その数を素因数分解した結果を画面に表示する.た
だし,1つの整数を引数とし,その整数の最小の素因数を返す関数をユーザ定義関数として作成
し,この関数を使用すること.

Aキーボードから7桁の整数を2つ読み込み,その積を表示する.ただし,整数型以外の
変数を用いてはならない.

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VisualStudio2003
 [3.3] 言語: C
[4] 期限: できるだけ早くお願いします。
[5] その他の制限: お願いします

553デフォルトの名無しさん:2006/07/13(木) 16:42:08 BE:108696678-#
554デフォルトの名無しさん:2006/07/13(木) 17:02:00
久々に書き込みを見かけたと思ったらそれか・・・あんたほんっとワンパターンで詰まらん男だな
555デフォルトの名無しさん:2006/07/13(木) 17:07:16
>>544
>>326
(´・ω・`)
556デフォルトの名無しさん:2006/07/13(木) 17:25:33
>>552のA分かる人いますか?
557デフォルトの名無しさん:2006/07/13(木) 17:28:16
>>556
いますよ、ここに。桁の多い数値を扱う計算をするプログラムのソースは
俺の手元にあるけど、参考書の丸写しになっちゃうから
俺なりに書き換えが出来たらレスしちゃる
558デフォルトの名無しさん:2006/07/13(木) 17:29:54
>>557
ありがとうございます。
559デフォルトの名無しさん:2006/07/13(木) 17:32:22
>>558
いや、期待されてもなぁ・・・
ttp://www.gihyo.co.jp/books/syoseki-contents.php/4-7741-1239-9
この本に載っているやつなんだが
560デフォルトの名無しさん:2006/07/13(木) 18:00:53
[1] 授業単元:プログラム1
[2] 問題文(含コード&リンク):Kruskal法を用いて最小木を求めよ。

1)乱数を0〜150の整数の範囲で100個発生させ、2つごとに、点のx座標,y座標とする。
  つまり、50個の点をつくる。

 例えば、乱数が
2,50,8,62,…
  であれば、
点0(2,50)、点2(8,62)…
  となる。

2)各点間の距離をはかり、配列に格納する。点aと点b (0≦a ,b≦49) の距離は、
  (a, aのx座標, aのy座標, b, bのx座標, bのy座標, aとbの距離, 辺のチェック)
  の8項目が入るような配列とすること。
※(x1,y1)と(x2,y2)の距離は、(x1-x2)^2+(y1-y2)^2としてよい。ルートは面倒なので。

3)Kruskal法を用いて、最小木を求める。
  辺の出力は、<点番号 (x座標,y座標),点番号 (x座標,y座標)>とする。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VisualStudio2003
 [3.3] 言語: C
[4] 期限: [2006年7月14日13:00まで]
[5] その他の制限:

説明が下手ですがよろしくお願いします。
561デフォルトの名無しさん:2006/07/13(木) 18:40:56
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2344.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 2006/07/15
[5] その他の制限: システムコールを使う
562デフォルトの名無しさん:2006/07/13(木) 18:56:05
[1] 授業単元:
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2345.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 2006/07/15
[5] その他の制限:




563デフォルトの名無しさん:2006/07/13(木) 19:34:17
すんげー連発・・・学期末に今までまともに勉強してこなかった香具師のツケやな
564デフォルトの名無しさん:2006/07/13(木) 19:52:39
そうか、もうそんな時期なのか
565デフォルトの名無しさん:2006/07/13(木) 20:41:41
[1] C言語のプログラミング
[2]下記
[3] 環境
 [3.1] OS: (WindowsXP
 [3.2] gcc 3.4
 [3.3] 言語: C言語
[4] 期限:今夜中に
[5] その他の制限: 問題文の通りやれば基本的にはないです
コインとスの関数coinflipを用いて表(head)、裏(tails)を書き出し三回続けてheadsが出たら
止めるプログラムcoinflip.cを書け。Randomizeを使うこと
(main()部分が21行程度、関数string coinflip()が2行程度のコード)

void Randomize(void)
{stand((int)time(NULL));
}
出力例
tails
heads
heads
heads
4 flips before 3cons

どうかよろしくお願いします
566デフォルトの名無しさん:2006/07/13(木) 20:43:07
うわぁ〜、こんだけ連発されると、逆に放置したくなるわw
567 ◆NeetJ30Le. :2006/07/13(木) 20:53:17
>>566
黙って放置しろ。
568デフォルトの名無しさん:2006/07/13(木) 21:00:32
>>567
> 黙って放置しろ。
お前ガナーwwww っつか命令するやつうぜー、氏ねよカスw
569デフォルトの名無しさん:2006/07/13(木) 21:02:29
くだらん発言でスレを埋める奴の方がうざい。
570 ◆NeetJ30Le. :2006/07/13(木) 21:02:52
>>565
coinflipの戻り値の型はstringなのか?
あとどうでもいいことだが、consってナニ?
571デフォルトの名無しさん:2006/07/13(木) 21:03:33
>>569
> くだらん発言でスレを埋める奴の方がうざい。
だからお前だろ?w 黙ってろよ、うざいのはお前もだろ?w
572デフォルトの名無しさん:2006/07/13(木) 21:04:26
>>569 何お前?質問者?そのレス見てむかついたし
ぜってー答えてやらねーから黙って指でもくわえてろよ?
573デフォルトの名無しさん:2006/07/13(木) 21:08:36
>>570
戻り値はstringでいいと思います
consは自分もよく分からないのですが文脈三回続けて
表がでたってことじゃないでしょうか
574デフォルトの名無しさん:2006/07/13(木) 21:18:03
>>572
勝手にしろ。俺は質問者じゃない。

回答者だと言うだけで偉くなった気になってる奴は痛すぎ。
575デフォルトの名無しさん:2006/07/13(木) 21:18:12
>>549
ありがとうございます!!
でも12行目でエラーがでてしまいました(>_<)
576デフォルトの名無しさん:2006/07/13(木) 21:20:03
>>543
助かりました!!どうも有難う御座いました!
577 ◆NeetJ30Le. :2006/07/13(木) 21:29:30
>>573
あー、質問の仕方が悪かった。
言語はCで良いのか?Cにはstring型は無いぞ。C++にはあるが。
578デフォルトの名無しさん:2006/07/13(木) 21:35:32
>>577
いやC言語限定なんで戻り値string型ではまずいですね・・・
579549:2006/07/13(木) 21:48:30
>>575
={}; がダメなのかな? ={0}; なら大丈夫かも。
というかその上の行の strtol のところとか全然いらないんで、main
の始めは
int main(void) {
int i, d_cnt[M], n = N;
double x = X0;
for (i = 0; i < M; i++)
d_cnt[i] = 0;
とでもしておいて。

ただ、
俺も>>555を見て気づいたけどこれってとっくにやってあって、しかも
そっちのほうが出力とかにも気をつかってるんで、>>326のを頂いたほうがいいよ。
580デフォルトの名無しさん:2006/07/13(木) 21:53:17
[1] 授業単元:c入門
[2] 問題文(含コード&リンク):いくつかの複素数を入力し、最後に1を入力して
[Enter]キーを押すとそれまでに入力した複素数とそれらをすべてかけ算した結果を
表示するプログラムを作りなさい
[3] 環境
 [3.1] OS: unix
 [3.2] gcc
 [3.3] 言語: Cです
[4] 期限: 2006年7月20日24:00まで
[5] その他の制限:連結リストを必ず使わなければいけないそうです。よろしくお願いします
581デフォルトの名無しさん:2006/07/13(木) 21:54:25
>>はっ(;´д`)!!
失礼しました…>>579>>326
{0}にしたらエラー出ませんでした。ありがとうございます!
582sage:2006/07/13(木) 21:57:40
>>565
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
void Randomize( void ){
srand((int)time(NULL));
}
char *coinflip( void ){
return rand()%2 ? "heads" : "tails";
}
int main( void )
{
int i=0, j=0;
char *s;
Randomize();
while( i < 3 ){
printf( "%s\n", s=coinflip() );
if( !strcmp( s, "heads" ) )i++; else i=0;
j++;
}
printf( "%d flips before 3coins", j );
return 0;
}
583デフォルトの名無しさん:2006/07/13(木) 22:00:30
>>582
ほんとにありがとうございます!!!
584デフォルトの名無しさん:2006/07/13(木) 22:01:07
>>320お願いします…
>>322
>>323
585デフォルトの名無しさん:2006/07/13(木) 22:02:32
どなたか>>546への回答をお願いできないでしょうか?
586 ◆NeetJ30Le. :2006/07/13(木) 22:04:14
>>561
<A>
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2346.c
-uと-lの意味を取り違えてるかもしれないので、その場合は自分で修正してくれ。
587 ◆NeetJ30Le. :2006/07/13(木) 22:05:31
<B><C>はやる気nothing
588デフォルトの名無しさん:2006/07/13(木) 22:06:50
>>562
void bigger_data(int data1[],int data2[],int dest[]){
int i=0;while((data1[i]!=END)&&(data2[i]!=END)){
dest[i]=data1[i]>data2[i]?data1[i]:data2[i];i++;}
if(data1[i]==END){while(data2[i]!=END){dest[i]=data2[i];i++;}}
else{while(data1[i]!=END){dest[i]=data1[i];i++;}}dest[i] = END;}

エラー処理とかなにも考えてないけどこれで大丈夫なのかな・・・
589 ◆NeetJ30Le. :2006/07/13(木) 22:11:18
>>586
sprintfの所もバグってるので直しといて。
590デフォルトの名無しさん:2006/07/13(木) 22:42:16
[1] C言語のプログラミング
[2]下記
[3] 環境
 [3.1] OS: (WindowsXP
 [3.2] gcc 3.4
 [3.3] 言語: C言語
[4] 期限:今夜中に
[5] その他の制限: 問題文の通りやれば基本的にはないです
Randomize()とRandomReak(0,1)を用いて0と1のかいだのランダムな実数を500回発生させ、
その平均値を書き出すプログラムrandomavg.cを書け。[7行程度のコード)
void Randomize(void)
{stand((int)time(NULL));
}
double RandomReal(double low,double high)
{ double d;
d=(double)rand()/((double)RAND_MAX+1);

return(low+d*(high-low));
}
出力例
Number of trials:500
Average value of 500 trials:0.511900
これで最後です
どうかよろしくお願いします
591デフォルトの名無しさん:2006/07/13(木) 23:09:10
>>561
main関数が、A_main, B_main, C_main って名前になってるから、
動かしたいメイン関数をmainにリネームするなり、新たにmain作って関数コールするなりしてくれ。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2347.c

コマンドラインオプション複数指定は [-u -s -e] って分けて指定しても [-use] ってまとめて指定してもOK。
592デフォルトの名無しさん:2006/07/13(木) 23:28:17
>>590
void main()
{
int i;
double sum = 0;
Randomize();

for (i = 0; i < 500; i++)
{
sum += RandomReal(0.0f, 1.0f);
}
printf("%f", sum / 500);
}
593デフォルトの名無しさん:2006/07/13(木) 23:33:26
>>592
すいませんエラーがでるんですけど
外部シンボルRandomize RandomRealが未解決って
594デフォルトの名無しさん:2006/07/13(木) 23:36:09
>>546
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>
#define AtoZ 26
int main( void )
{
char file[257];
FILE *fp;
int alpha[AtoZ], c, i;
scanf( "%s", file );
if( ( fp = fopen( file, "r" ) ) == NULL){
perror( file );
return 1;
}
memset( alpha, 0, sizeof( alpha[0] ) * AtoZ );
while( ( c=fgetc( fp ) ) != EOF )
if( c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' )
alpha[tolower( c )-'a']++;
for( i=0; i<AtoZ; i++ )printf( "%2c:%d", i+'a', alpha[i] );
return 0;
}
595デフォルトの名無しさん:2006/07/13(木) 23:36:26
>>586、591どうもありがとう。
596デフォルトの名無しさん:2006/07/13(木) 23:37:38
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Randomize(void){
srand((int)time(NULL));
}
double RandomReal(double low,double high){
double d;
d = (double)rand() / ((double)RAND_MAX + 1);
return(low + d * (high - low));
}
void main(){
Randomize();
int i;
double sum = 0;
for (i = 0; i < 500; i++){
sum += RandomReal(0.0f, 1.0f);
}
printf("Number of trials:500\n");
printf("Average value of 500 trials:%f\n", sum / 500);
}
597596:2006/07/13(木) 23:38:20
598デフォルトの名無しさん:2006/07/13(木) 23:40:09
すみません。どなたかは>>523を解いていただけないでしょうか?
599デフォルトの名無しさん:2006/07/13(木) 23:41:33
>>597
14行めと
15行めはここでは宣言できないとエラーがでるんですが・・・
600デフォルトの名無しさん:2006/07/13(木) 23:43:46
>>599ですがint i;
double sum = 0;と
Randomize();の順番を入れ替えたらコンパイルできました
ありがとうございました
601デフォルトの名無しさん:2006/07/13(木) 23:49:02
>>600
悪いな、俺のミスだ。
コンパイラ何使ってるか見てなかった。
602デフォルトの名無しさん:2006/07/13(木) 23:49:36
603デフォルトの名無しさん:2006/07/14(金) 00:00:29
>>602
ありがとうございますーー!!
604デフォルトの名無しさん:2006/07/14(金) 00:06:21
[1]プログラミングT
[2]得点データを読んで,平均点とヒストグラムを出力するようなプログラムの作成
得点データファイルの先頭行はデータ数nを示し,つづくn行に得点が格納 
各得点は0以上100以下の整数である
200(得点データ数を示す)
50(ここから…)

・(長いので省略)

67
69(ここまでに0以上100以下の整数が200個存在する)
ヒストグラムは「0〜9」「10〜19」...「90〜99」「100以上」の11区間とし
縦に区間、横にデータ数を下の出力例のように '*'を用いて表す
0- 9:
10-19:*
  (省略)  
80-89:*******************
90-99:*********
100- :*
平均:75.3点
[3] [3.1] WindowsXP
  [3.2] Visual Studio 2005 コマンドプロンプト
  [3.3] C++
[4] 期限:明日中に
[5] その他の制限:可能な限り基本的な制御文、型、関数でお願いします
         特にvoid以降は使わないで欲しい(for文主体レベルで)
605デフォルトの名無しさん:2006/07/14(金) 00:52:55
606デフォルトの名無しさん:2006/07/14(金) 00:55:57
>>605
fclose(fp); いれといて
607デフォルトの名無しさん:2006/07/14(金) 01:07:42
>>604
#include<iostream>
#include<fstream>
using namespace std;
int main(){int data[11],max,tmp,count=0,sum=0;
for(int i=0;i<11;i++)data[i]=0;
fstream fs("data.txt",ios::in);
if(fs.fail())return -1;
fs >> max;while(!fs.eof()&&(count<max)){
fs >> tmp;data[tmp/10]++;
sum+=tmp;count++;}for(int i=0;i<11;i++){
if(i*10+9>100)cout << i*10 << "- :";
else cout << i*10 << "-" << i*10+9 << ":";
for(int j=0;j<data[i];j++)cout << "*";
cout << endl;}cout << "平均点:" << sum/max << endl;
return 0;}
>>605があるけどせっかくやったから貼ってみる
608デフォルトの名無しさん:2006/07/14(金) 01:11:24
>>598
んー, これは
p2=fx1*(x-x2)*(x-x3)/((x1-x2)*(x1-x3))
+fx2*(x-x1)*(x-x3)/((x2-x1)*(x2-x3))
+fx3*(x-x1)*(x-x2)/((x3-x1)*(x3-x2));
この文をforで分割しろってことかな?
609605:2006/07/14(金) 01:16:47
あーC++っての見てなかった
610デフォルトの名無しさん:2006/07/14(金) 01:34:11
>>608

はい、その通りです。
あと、p3もできればお願いします...
611デフォルトの名無しさん:2006/07/14(金) 02:15:40
[1] 授業単元: プログラミング演習T
[2] 問題文(含コード&リンク):
キーボードからファイル名を入力し、そのファイルの文字コードを判別し、画面に表示する。
ただし、指定ファイルの文字コードはJIS,EUC,SJISとする。
[3] 環境
 [3.1] OS: WindowsXP SP2
 [3.3] 言語: C++
[4] 期限: 07月14日06:20までorz
[5] その他の制限:最近の授業内容↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2351.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2352.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2353.txt
612デフォルトの名無しさん:2006/07/14(金) 02:22:41
>>611
少なくとも朝までにやってくれる猛者はいないと思うんだぜ?
素直に適当なライブラリもってきて改変するが吉
613デフォルトの名無しさん:2006/07/14(金) 02:29:09
>>612
適当なライブラリって?

現在進行形で教科書片手にがんばってはいるもののどうにも・・。
これができるかどうかで単位どころか留年が危ういんで藁にもすがる思いというか、なんというか(汗
とりあえず、続けます。
614デフォルトの名無しさん:2006/07/14(金) 02:30:56
>>613
ttp://tricklib.com/cxx/ex/babel/


間違っても、ライブラリの使い方なんぞを、ここで聞くんじゃねーぞ。
615デフォルトの名無しさん:2006/07/14(金) 02:36:45
文字コード判別なんて
普通問題にしないだろw
どうみてもまだほんの入門的はことしかやってないじゃん
616デフォルトの名無しさん:2006/07/14(金) 02:59:27
>>611
名城大生乙
617デフォルトの名無しさん:2006/07/14(金) 03:07:21
>>616
いつもいつも茶化し乙
618デフォルトの名無しさん:2006/07/14(金) 03:17:27
>>611
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2354.txt
C#用かなんかをパクって削って改悪した。反省はしてない。
619611:2006/07/14(金) 04:11:59
>>618
エラーが出ました。120行目のgetがおかしいみたいです。

複数の問題から選択式でこっちのが簡単ならこっちお願いします。
問題:
キーボードからの入力で指定されたファイルに書かれている数式を読み込み、数式を計算した結果を表示する。
ただし、数式に含まれる可能性がある記号は「0123456789*/+-()」のみで256記号以内とする。
また、計算結果が整数とならない場合は浮動小数点で計算結果を表示する。
620デフォルトの名無しさん:2006/07/14(金) 04:14:04
>>619
キャストしたら?get((unsigned char*)buff);みたいに。
621デフォルトの名無しさん:2006/07/14(金) 05:06:34
>>619
何故そっちを先に出さないのかと小一時間
622611:2006/07/14(金) 05:10:24
それは、まぁ、その、物理的にいろいろありまして・・・・・すいませんorz
623611:2006/07/14(金) 05:31:48
最後に>>618様のプログラム、
どういうプログラムなのか簡単に解説してもらえると助かります。
624デフォルトの名無しさん:2006/07/14(金) 08:50:14
>>623
解説はいいけど動いたの?
キーボードからファイル名を入力し、そのファイルの文字コードを判別し、画面に表示するプログラム
文字コードの判定はコードの領域で判別してる
http://www.gprj.net/dev/tips/other/kanji.shtml
ここらへんとかが詳しい。
625デフォルトの名無しさん:2006/07/14(金) 08:57:45
[1]プログラミング演習
[2] 下記
[3] 環境
 [3.1] windouwXP
 [3.2]gcc 3.4
 [3.3] C言語
[4] 期限:今日の昼まで
[5]特になし
キーボードから入力した文章を暗号化したあと解読するプログラムを書け
1.暗号化:文字が英字ならアルファベット上のその次の英字に(但しZはAにzはaに)
(2)暗号化した文章をファイルとスクリーン上に出力する。
(3)ファイルの暗号内容を解読して別のファイルとスクリーン上に表示する。
#include<stdio.h>
#include<ctype.h>
int encode();/*暗号化*/
int dekode();/*解読*/

main()
{ intc;
FILE*outfile*infile;
outfile=fopen("encode.txt","w");
while((c=getchar())!='\n'){
putchar(........);
fputc(.......);}
fclose(outfile);
infile=fopen("encode.txt,"r");
outfike=fopen("decode.txt","w");
while((c=getc(infile))!=EOF){
putchar(............);
fputc(.............);
fclose(infile);
fclose(outfile);
626デフォルトの名無しさん:2006/07/14(金) 09:00:09
どなた様か>>560をやっては頂けないでしょうか?
627デフォルトの名無しさん:2006/07/14(金) 09:02:35
>>626 Kruskal法の解説、またはそのリンクを。
628デフォルトの名無しさん:2006/07/14(金) 09:03:03
>>625の続き
}
int encode(intc)
{
if(isalpa(c)){
swiich(c){
caze'Z':return('A');
case'z':return('a');
default:return(c+1);
}
}
if(isdigit(c)){
switch(c){
case'0':return('9');
default:return(c-1);
}
}
return(c);
}
629デフォルトの名無しさん:2006/07/14(金) 09:26:32
>>625
int decode();/*解読*/ // typo
putchar(encode(c));
fputc(encode(c), outfile);
outfile=fopen("decode.txt","w"); // typo
putchar(decode(c));
fputc(decode(c),outfile);
if(isalpha(c)){ // typo
switch(c){ // typo

int decode(int c)
{
if(isalpha(c)){
switch(c){
caze'A':return('Z');case'a':return('z');default:return(c-1);
}}
if(isdigit(c)){
switch(c){
case'9':return('0');
default:return(c+1);
}}
return(c);
}
630611:2006/07/14(金) 09:32:37
実に申しわけないのですが
〆切、私の勘違いで正しくは再来週の28日。
ほんとすいませんでした。
631デフォルトの名無しさん:2006/07/14(金) 09:45:05
>>629
すいませんエラーがいっぱいでるんですけど
2行目から7行目まで全部エラーがでます
632デフォルトの名無しさん:2006/07/14(金) 09:47:58
>>631
空行までは貴様の書いたプログラムの変更すべき点。
空行以降を追加してからやってみそ
633デフォルトの名無しさん:2006/07/14(金) 09:58:34
>>627
>>560の追記
Kruscal法とは、
1)辺の長さを小さい順に並べる。
2)閉路ができないよう順次辺を加える。
だそうです。
ですが、今回の課題で閉路はできないので2)は考えなくてもいいと思います。

よろしくお願いします。
634デフォルトの名無しさん:2006/07/14(金) 10:10:28
こんなんなりましたけどまだ一杯エラーがでるんですが・・・
include<ctype.h>
int encode();/*暗号化*/
int decode();/*解読*/

main()
{ int c;
FILE*outfile,*infile;
outfile=fopen("encode.txt","w");
while((c=getchar())!='\n'){
putchar(encode(c));
fputc(encode(c), outfile);
}
fclose(outfile);
infile=fopen("encode.txt,"r");
outfile=fopen("decode.txt","w"); // typo
while((c=getc(infile))!=EOF){
putchar(decode(c));
fputc(decode(c),outfile);
fclose(infile);
fclose(outfile);
635デフォルトの名無しさん:2006/07/14(金) 10:11:20
int encode(int c)
{
if(isalpa(c)){
swiich(c){
case'Z':return('A');
case'z':return('a');
default:return(c+1);
}
}
if(isdigit(c)){
switch(c){
case'0':return('9');
default:return(c-1);
}}
return(c);
}
int decode(int c)
{
if(isalpha(c)){
switch(c){
case'A':return('Z');
case'a':return('z');
default:return(c-1);
}}
if(isdigit(c)){
switch(c){
case'9':return('0');
default:return(c+1);
}
}
return(c);}
636デフォルトの名無しさん:2006/07/14(金) 11:16:04
[1] 授業単元:アルゴリズム論
[2] 問題文:

クイックソートの平均計算量T(n)が、ある定数c>0に対し、

T(n) = 0 (n = 0の時)
T(n) = 2/n(for(i=0;i<=n-1;i++))T(i) + cn (その他の時)

と表されるものとする。
(1)T(n) = 2c(n+1)Hn - 3cn(n≧1)を導け。Hn = (for(i=1;i<=n;i++))1/i
(2)定義の再帰式からT(n)を正確に求めるプログラム(再帰的プログラムにする必要は無い)を
作成しなさい。ただし、c = 1, n=1,10,100,1000,10000とする。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ(バージョン):gcc
 [3.3] 言語:C
[4] 期限:7/17まで
[5] その他の制限:無し

どなたかご教授お願いします。
637デフォルトの名無しさん:2006/07/14(金) 11:20:32
お願いします


1:プログラミング

2:金額をキーボードから入力し、金額を金種別にわけるプログラミングを作れ。
金種は1万、5千、2千、千、500、50、10、5、1です。

3、1:UNIX
3、2:GCC
3、3:C
4:20日まで。
5:if.for.配列を使うこと。voidなどは不可です
638デフォルトの名無しさん:2006/07/14(金) 11:27:42
>>623
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2355.txt
きちんと判定できるように書き直した
ついでに、不要なコードを省いてわかりやすくした
if文の中身は>>624のサイトを参考に勉強しる

結構時間をかけてやってしまった・・・反省はしてない。
639デフォルトの名無しさん:2006/07/14(金) 11:39:15
(;´Д`) あれ、もしかしてJISの判別って0x1Bだけ見ればいいのかな・・・
640デフォルトの名無しさん:2006/07/14(金) 11:52:06
>>637
問題の意味がわかんないから勘で書いてみた。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28074
641デフォルトの名無しさん:2006/07/14(金) 11:55:08 BE:69876094-#
>>637
http://c-kadai.sakura.ne.jp/index.php?itemid=8
これを適当にアレンジ汁。
642デフォルトの名無しさん:2006/07/14(金) 12:08:43
[1] 授業単元: 計算機プログラミング1
[2] 問題文(含コード&リンク):
関数2/(1+x*x)について区間[-1,1]にわたる定積分を「台形公式」を用いて計算せよ。
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) ??
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7/31
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ポインタを使ってお願いしますm(__)m
643637:2006/07/14(金) 12:17:13
使える文がif.for.while.char.getchar.switchなんです‥
printf.int.else.break.continueしか文字はならっていないので‥。
644デフォルトの名無しさん:2006/07/14(金) 12:29:05
>>636
「正確に求める」って分数を使って表せってこと?
c=1, n=10000のとき4300桁くらいになるんだが。
645デフォルトの名無しさん:2006/07/14(金) 12:34:15
>>644
そんな馬鹿な。
646デフォルトの名無しさん:2006/07/14(金) 12:36:54
どなた様か>>560をやっては頂けないでしょうか?
課題の追記は>>633(Kruskal法について)

よろしくお願い致します。
647デフォルトの名無しさん:2006/07/14(金) 12:42:11
>>643
(゚д゚)ハァ?
648デフォルトの名無しさん:2006/07/14(金) 12:58:23
[1] C言語と数値計算法
[2] 問題文:5名分3教科のテスト結果が5×3の配列に入っているとき、
各教科ごとに点数の高い順に並び替えた配列を出力する関数とmain関数を作成せよ
[3] 環境
[3.1] OS:windows
[3.2] visual studio 2003
[4] 期限:7月18日
[5] 次の例文を参考に
5名分の英語、数学、国語の3教科のテスト結果が5×3の配列に入っている。
各教科の平均点を求めるための関数を、配列へのポインタを引数として作成する。
#include<stdio.h>
void get_ave(float *score, float *ave);
void main(void){
float result[5][3] = {{50,65,45},{77,80,90},{30,40,50},{75,92,80},{65,69,90}}; /* 点数の5×3配列 */
float average[3]; /* 平均点の配列 */
get_ave(&result[0][0], average); /* ポインタ渡しで関数呼び出し */
printf("Average is %4.1f(Eng), %4.1f(Math), %4.1f(Jap)\n",average[0],average[1],average[2]);
}
void get_ave(float *score, float *ave) /* 関数本体 (引数はポインタ) */
{
int i,j;
float total[3];
for(i = 0; i < 3; ++i){
total[i] = 0.0; /* 配列total[3]の初期化 */
for(j = 0; j < 5; ++j)
total[i] += *(score + 3*j + i); /* 各教科の合計点算出 */
}
for(i = 0; i < 3; ++i)
*(ave + i) = total[i] / 5.0; /* 各教科の平均点算出 */
}
649デフォルトの名無しさん:2006/07/14(金) 13:12:44
>>557さん
>>552のAできましたでしょうか?
650デフォルトの名無しさん:2006/07/14(金) 13:26:40
[1] プログラミング演習
[2] 以下のプログラムはfor文を用いて、1から50までの奇数の和を求めるものである。
下記の問いに答えなさい。
#include<stdio.h>
main()
{int 空白
for(i=1;空白)
{if(空白)break;
sum=sum+i;)
printf("\n1+3;5;...+49=%d",空白);}

問1上記の空白を正しく埋めて、プログラムを完成しなさい。
問2上記のプログラムをwhile文を用いて書き換えなさい。

[3] 環境
 [3.1] OS: (WindowsXP
 [3.2] ultraC
 [3.3] 言語:C
[4] 期限:13時57分まで

単位かかってるのでおねがいします><
651テスト中 :2006/07/14(金) 13:28:56
変数n に記憶されている数値327を整数327として画面に出力するには、
printf ( ) と書けばよい。


( )  を教えてください><


17 名前:テスト中 2 :2006/07/14(金) 13:20:21
2、
変数n に記憶されている数値327を変動少数点数327.0として画面に出力するには、
printf ( ) と書けばよい。


( )  を教えてください><


18 名前:テスト中 2 :2006/07/14(金) 13:21:50
変数n に記憶されている数値56.351を小数点以下第2位まで画面に出力するには、
printf ( ) と書けばよい。


( )  を教えてください><


19 名前:テスト中 4 :2006/07/14(金) 13:25:06
4、
変数n に記憶されている十進数値97を printf ( "%c",n) で入力すると画面には ( )が出力される。


( )  を教えてください><
652デフォルトの名無しさん:2006/07/14(金) 13:47:20 BE:23292443-#
>>649
クズの分際でなに催促してんのこいつ?
653デフォルトの名無しさん:2006/07/14(金) 13:48:55 BE:52406993-#
>>650-651
学校名と学籍番号を晒したら教えてやる
654デフォルトの名無しさん:2006/07/14(金) 13:51:29
>>652
俺、お前のこと嫌いになりかけたけど、また好きになったよw
655デフォルトの名無しさん:2006/07/14(金) 14:02:30
>>649
作ったよ^^

#include <iostream>
using namespace std;

int main(){
   int a,b;
   cin >>a;
   cin >>b;
   cout << a*b;
   return 0;
}
656デフォルトの名無しさん:2006/07/14(金) 14:19:37
>>642
#include <stdio.h>
double fnc1( double x ){
return 2/(1+x*x);
}
double fnc2( double x ){
return 1/(1+x*x);
}
double trapezoid( double min, double max, int n, double (*f)(double) )
{
double h, x, sum=0;
int i;
if( n == 0)return 0;
h = ( max - min ) / n;
for( i=1, x=min+h; i<n; i++, x+=h )
sum += ( *f )( x );
return h * ( ( *f )( min ) + ( *f )( max ) ) / 2 + h * sum;
}
int main( void )
{
printf( "a=%f\n", trapezoid( 0, 1, 10, fnc2 ) );
printf( "a=%f\n", trapezoid( -1, 1, 20, fnc1 ) );
return 0;
}
657デフォルトの名無しさん:2006/07/14(金) 14:26:52
>>650
#include<stdio.h>
main(){
int i, sum = 0;
for(i=1; ; i = i + 2){
if(i >= 50) break;
sum=sum+i;
}
printf("\n1+3;5;...+49=%d", sum);
}
658デフォルトの名無しさん:2006/07/14(金) 15:47:19
>>649
うおっ、やっぱまだ期待してた?あれから紹介した本のソースを見て
そのままじゃ君が求めているものには物足りなくて使えないから
独自で改造をしているんだが、ちと作業が止まっていて、すまそ
もちっと時間は掛かるけど、やってみるかな・・・期待されても困るがw
659デフォルトの名無しさん:2006/07/14(金) 15:58:30
>>552 の A

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2356.c

うpして気づいたが、DEFAULT_ALLOC_SIZE は使ってないから消してくれ。
660デフォルトの名無しさん:2006/07/14(金) 16:54:42
質問する場所がわからず新しくかきこみました。すみません orz
プログラミングのテストを教えていただきたいのです。
授業単元:プログラミングのテスト
内容:西暦と月を入力し、その月のカレンダーを入力してください。
   西暦yearと月monthを入力
   西暦year年month月一日が何日目(days)かを計算する。
   daysを7で割った余りに応じて空白を出力し、その後1,2,3、・・・と出力する。
   このとき7つのデータを出力するごとに改行してください。
環境:C言語です
   配列を習い始めたとこです。どうか教えてください。 orz  
661デフォルトの名無しさん:2006/07/14(金) 17:37:00
>>660
8 名前:デフォルトの名無しさん[sage] 投稿日:2006/07/10(月) 19:13:09
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2285.txt

9 名前:デフォルトの名無しさん[sage] 投稿日:2006/07/10(月) 19:59:15

年間カレンダー対応バージョン
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2314.c
662デフォルトの名無しさん:2006/07/14(金) 18:01:51
>>659
催促みたいになってすみません。本当にありがとうございます!!助かりました
663デフォルトの名無しさん:2006/07/14(金) 19:45:33
誰か317のhttpプロキシ作ってください。
お願いします。
664デフォルトの名無しさん:2006/07/14(金) 20:29:42
>>648
間違ってるかもしらんけど。
#include<stdio.h>
void print(float *result){
int i,j,k;
float temp;
for(i=0;i<3;i++)
for(j=0;j<5-1;j++)
for(k=5-1;k>j;k--)
if( *(result + 3*k + i) < *(result + 3*(k-1) + i) ){
temp = *(result + 3*k + i);
*(result + 3*k + i) = *(result + 3*(k-1) + i);
*(result + 3*(k-1) + i) = temp;
}
printf("Eng\tMath\tJap\n");
for(i=0;i<5;i++){
for(j=0;j<3;j++)
printf("%4.1f\t",*(result + 3*i + j));
printf("\n");
}
}

int main(void){
float result[5][3] = {{50,65,45},{77,80,90},{30,40,50},{75,92,80},{65,69,90}}; /* 点数の5×3配列 */
print(&result[0][0]);
return 0;
}
665648:2006/07/14(金) 20:31:50
>>664のif文のところの比較が逆。

orz...
666デフォルトの名無しさん:2006/07/14(金) 21:27:18
>>656
ありがとうございます!
多分2こめのaの方ででいいんですよね?
667デフォルトの名無しさん:2006/07/14(金) 22:21:54
[1] 総合演習2 (ラインエディタを作る)
[2] 問題文(含コード&リンク):
  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2359.txt
  delete_now関数とread_line関数がよく解りません。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1
 [3.3] 言語: C
[4] 期限: 2006年07月17日まで
[5] その他の制限: 特に無し
668デフォルトの名無しさん:2006/07/15(土) 00:02:01
ここに宿題持ってくるのって大学一年?
669デフォルトの名無しさん:2006/07/15(土) 02:10:25
http://mail.unixuser.org/~euske/pub/httpproxy.c
以前httpプロキシ頼んだ者ですが
このプログラムはどうやって使うんでしょうか。
参考になればと思って使いたいのですが、何をやっているのか
分かりません。誰か教えてください。

670デフォルトの名無しさん:2006/07/15(土) 02:15:25
老婆心ながら忠告すると、何やっているかわからんくらい勉強の意味がないなら
単位を捨ててもう一年授業を受け直すべきだな、うん
671デフォルトの名無しさん:2006/07/15(土) 03:49:45
[1] マルチスレッド(図形の描画)
[2] 問題文(含コード&リンク):
 2本の線を別々に並行処理で、時間単位で直線を引いていきます。
 2本の直線の合計がLになったら、描画を終わりにします。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:C++ builder3
 [3.3] 言語: C++
[4] 期限: 2006年07月17日まで
[5] その他の制限: 特に無し

よろしくお願いします。
672デフォルトの名無しさん:2006/07/15(土) 06:45:28
>>669のプログラム読んでて思ったんだが、これってプロキシなん?
動かしてみた感じ、標準入力に直にHTTPメソッド書いて送信できるだけじゃね?
673デフォルトの名無しさん:2006/07/15(土) 08:33:46
>>672
ヒント:inetd
674デフォルトの名無しさん:2006/07/15(土) 09:16:20
>>673
ぐぐってみて把握
listenやら任せられるのか
675デフォルトの名無しさん:2006/07/15(土) 10:25:00
>>671
#include <stdio.h>
#define L 32
int main(void){
int i;
for(i=0;i<L/2;i++) printf("| |\n");
return 0;
}
676デフォルトの名無しさん:2006/07/15(土) 10:45:22
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク): 5つの金額を入力しそれを10000 5000……10 5 1 に分ける金主計算を行います。
                  そしてそれを表にして表示させます
                        
                       10000 5000 1000 500 100 50 10 1                
                  金額1 
                  金額2
                  金額3
                  金額4
                  金額5    
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2006年07月24日まで
[5] その他の制限: 基本的なことしか習っていません、if for while dowhile else tray

よろしくお願いします

677デフォルトの名無しさん:2006/07/15(土) 11:19:33
[1] 授業単元: シェル
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2360.txt
このコードにリダイレクション(>,>>,<)、パイプ(|)機能を実装し、さらに以下から最低2つを実装する。
1.エイリアス(aliasで設定、unaliasで解除)
2.履歴(history,!!,!番号)
3.補完(タブで補完)
4.ワイルドカード(?,*)
5.ディレクトリ移動(cd,popd,pushd)
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2006年7月20日16:00まで
[5] その他の制限:パイプ、リダイレクションに関してはpipeやdupを習ったところで、
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2361.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2362.txt
この2つを参考に作るらしいのですが、課題では実際のシェルのようにコマンドの数や
パイプ、リダイレクションの場所も決まっていないので、どのようにコマンドをパイプ
で繋いでいけばいいかが分かりません。分かる方どうかお願いします。
678デフォルトの名無しさん:2006/07/15(土) 11:24:56
679デフォルトの名無しさん:2006/07/15(土) 11:40:19
[1] 授業単元: 数値解析
[2] 問題文n×nの係数行列Aと右辺ベクトルbを適当に与えたとき、Ax=bの解xをLU分解により(AをLU分解して)
求めるプログラムを作る。そのプログラムにおいて、n=4、
    |2 2 -6 3|   |-0.5|
A=  |1 -4 2 2| b=| 8 |
   |2 1 -3 -5|   | -9 |
   |1 -2 1 2 |   | 6 |
としたときの数値解を求め、出力する。なお、プログラムでは変数mを用いる。
ヒント:解はx4=1.5、x3=1、x2=-0.5、x1=1
[3] 環境
 [3.1] LINUX 
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 7月20日
[5] その他の制限:

問題文分かりにくくてすみません。よろしくお願いします
680デフォルトの名無しさん:2006/07/15(土) 12:12:22
>>679
「LU分解」でぐぐれ
681679:2006/07/15(土) 12:21:35
>>680
ぐぐって解けるようならここに書かんわいカス。
682デフォルトの名無しさん:2006/07/15(土) 12:21:44
>>671
>>675
2本線を時間単位で延ばして、
描画していくって宿題?

わしも、C++勉強中だがJAVAでよくある同期、非同期とかの
マルチスレッドで紙芝居みたいに描画する導入問題じゃないじゃろか。
683デフォルトの名無しさん:2006/07/15(土) 12:27:27
>>681
本当にぐぐったならそんな台詞はでてこねーよカス
684679:2006/07/15(土) 12:34:01
>>683
うるせー問題の答えを書く気がないならここに来るなカス。
685679:2006/07/15(土) 12:35:44
>>684勝手に答えるな・゚・(つД`)・゚・ ヤメテヤメテ
686デフォルトの名無しさん:2006/07/15(土) 12:42:58
>>684
答えが知りたくないやつはここに来るなカス
687デフォルトの名無しさん:2006/07/15(土) 12:45:17
>>681>>684あたりにマジレスしてる奴はなんなんだ?荒らしか?
688デフォルトの名無しさん:2006/07/15(土) 12:46:16
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     ('A`)     そうか!こうすれば荒れないのか!
     ノヽノヽ
       くく

  \     /
  _ `゙`・;`' _バチュ--ン
     `゙`・;`
   /  `´  \
     ('A`)     
     ノヽノヽ
       くく


     ('A`)     ...なんだっけ
     ノヽノヽ
       くく


     (゚∀゚ )!     そうだ 京都 行こう
     ノヽノヽ
       くく
689デフォルトの名無しさん:2006/07/15(土) 13:03:15
>>684
グーグルでLU分解について調べなおして自力で解け、ということでしょうか?
690デフォルトの名無しさん:2006/07/15(土) 13:22:58
>>679
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2364.txt

荒れてるようなので早めに貼ってみる。
691デフォルトの名無しさん:2006/07/15(土) 13:24:47
25
-printf("x%d = % f\n", i, x[i]);
-printf("x%d = % f\n", i, + 1, x[i]);

でいいかな。
692デフォルトの名無しさん:2006/07/15(土) 13:28:26
[1] 授業単元: 数値解析
[2] 問題文:
11個のデータ(1, 0.00)、(2, 0.60)、(3, 1.77)、(4, 1.92)、(5, 3.31),(6, 3.52),(7, 4.59),
(8, 5.31),(9, 5.79),(10, 7.06),(11,7.50)がある。 最小二乗近似で当てはめた一次式を求める。
また、これらのデータのグラフを図示する。
[3] 環境
 [3.1] LINUX
 [3.2] gcc 
 [3.3] 言語:C
[4] 期限: 7月17日 23時59分59秒
[5] その他の制限:
693デフォルトの名無しさん:2006/07/15(土) 13:38:36
[1] 授業単元: 数値解析
[2] 問題文:
11個のデータ(1, 0.00)、(2, 0.60)、(3, 1.77)、(4, 1.92)、(5, 3.31),(6, 3.52),(7, 4.59),
(8, 5.31),(9, 5.79),(10, 7.06),(11,7.50)がある。 最小二乗近似で当てはめた一次式を求める。
また、これらのデータのグラフを図示する。
[3] 環境
 [3.1] LINUX
 [3.2] gcc 
 [3.3] 言語:C
[4] 期限: 7月17日 23時59分59秒
[5] その他の制限: C言語の基礎しか習ってません。(特に気にしないでください)

間違えて途中で送ってしまいました。2回送ってごめんなさい、お願いします
694デフォルトの名無しさん:2006/07/15(土) 13:39:03
ぐぐると一番上にLU分解を解くプログラムがあったんだが・・・
よく見たら変数mとか使ってなかったしな 正直すまんかった
695693:2006/07/15(土) 13:44:11
すみません、また補足です・・・。
正規方程式を解いてc0とc1を解くそうです
696デフォルトの名無しさん:2006/07/15(土) 13:51:57
>>693
中○大かな?
もし同じ教科書使っていたらスマソ。
去年と問題変わらんね…w

#include<stdio.h>
4 main(){
5 int x[11]={1,2,3,4,5,6,7,8,9,10,11};
6 double y[11]={0.0,0.60,1.77,1.92,3.31,3.52,4.59,5.31,5.79,7.06,7 .50};
7 int i;
8 double A,B,a=0.0,b=0.0,c=0.0,d=0.0,N=11.0;
9
10 for(i=0;i<N;i++){
11 a = a+x[i];
12 b = b+x[i]*x[i];
13 c = c+x[i]*y[i];
14 d = d+y[i];
15 }
16
17 A=(d-N*(c/a))/(a-N*(b/a));
18 B=(c-b*A)/a;
19 printf("A=%25.18e\n",A);
20 printf("B=%25.18e\n",B);
21 }


去年と微妙に問題が違う気するんだが、とりあえず去年のソース貼っておきますね。
697デフォルトの名無しさん:2006/07/15(土) 13:52:19
>>690
このプログラムをもっと初心者が書くように回りくどく拙くすることってできますか?
698デフォルトの名無しさん:2006/07/15(土) 13:56:01
>>697
・実直にforに中括弧をつける。
・変数を一行に一つずつ宣言する。
・putchar(), puts()を使わず全てprintf()で。
これだけやってもどうせコンパイル結果は同じだ。
699693:2006/07/15(土) 13:57:09
>>696
「数値解析の基礎・基本」って教科書っす(`・ω・´)ゞ
700693:2006/07/15(土) 14:01:17
それの実習問題5Aっす(`・ω・´)ゞ
701デフォルトの名無しさん:2006/07/15(土) 14:10:18
[1] 授業単元: プログラムA
[2] 問題文:関数 int max_cluster_length(int array[], int n) の仕様 とコレを用いたmainもつくれ

array[0], ..., array[n-1] の中で、隣り合う要素の数値の差が1以下であるような連続する部分の最大の長さを返す。

 たとえば、 data = {4, 3, 5, 6, 6, 7, 6, 3, 5, 2, 3, 4}, n=12 のとき、赤い部分が「隣り合う要素の数値の差が1以下であるような連続する部分」で最も長いものであるから、その長さ 5 を返す。

[3] 環境
 [3.1] LINUX
 [3.2] gcc 
 [3.3] 言語:C
[4] 期限: 7月17日 
[5] その他の制限:



702デフォルトの名無しさん:2006/07/15(土) 14:28:47
>>697
すまん出かけとった。
拙く?C言語はノーフォーマットなので、適当に行を崩して書けば
それらしくならんかな?特にポインタも使ってないし。LU分解と
解くルーチンは本から写したと言えばいいのでわ?
703デフォルトの名無しさん:2006/07/15(土) 14:38:18
>>701
int max_cluster_length(int array[], int n){
int i, x, max;
for (i = 0, x = max = 1; i < n; i++) {
if(abs(array[i] - array[i + 1]) < 2) x++;
else {
if(max < x) max = x;
x = 1;
}
}
return max;
}
704693:2006/07/15(土) 15:19:04
>>696
先輩先輩、実は実習問題4Aも残ってるんだけど、文章じゃ説明しにくくてここで質問できなかったんです。
そっちの答えも分かりますか?
705デフォルトの名無しさん:2006/07/15(土) 16:18:28
>赤い部分

...って
706デフォルトの名無しさん:2006/07/15(土) 16:43:46
>>705
ごめn。 data = {4, 3,” 5, 6, 6, 7, 6”, 3, 5, 2, 3, 4},
”  ”で囲ってあるとこがあかいとこ
707デフォルトの名無しさん:2006/07/15(土) 17:30:46
>>682
ですです。
どなたかよろしくお願いします。
708デフォルトの名無しさん:2006/07/15(土) 18:55:15
>>704
4Aって何…w
去年はそれ、課題8といったのですが。


ごめ、そういえば去年はプリントだったんやけど今年から教科書使ってるんだっけ?
だとすれば、問題と照合しないことにはなんとも…。
709デフォルトの名無しさん:2006/07/15(土) 18:59:31
あー、文章で説明しにくい課題って何だろう…?
正直、去年はんな問題なかったわけですよ。
もし必要なら、スキャナかデヂカメで撮影キボソ。

ちなみに、おそらく吉○担当の講義だと思うけど、課題出さなかったら定期試験より
-30点減点だった筈。実力テストは80点以上で自動的にA。


住人の方、汚してスマソ
710デフォルトの名無しさん:2006/07/15(土) 20:25:36
>>682
ですです。
よろしくお願いします。<(_ _)>
711デフォルトの名無しさん:2006/07/15(土) 20:27:24
>>710
ごめんなさい。ミス。
712デフォルトの名無しさん:2006/07/15(土) 21:18:01
よし、俺が解ける宿題を出してくれ↓
713デフォルトの名無しさん:2006/07/15(土) 21:50:40
[1] 授業単元:脳内
[2] 問題文(含コード&リンク):マージソートで整列するプログラムを作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC++
 [3.3] 言語: どちらでも可
[4] 期限: 2007年07月15日22:00まで
[5] その他の制限:クイックソートまで習いました
714デフォルトの名無しさん:2006/07/15(土) 22:02:14
>>713
スレタイ嫁ボケカス
715デフォルトの名無しさん:2006/07/16(日) 00:12:30
誰かhttpプロキシをお願いします。
助けてください
716デフォルトの名無しさん:2006/07/16(日) 00:24:36
>>713
#include<algorithm>
void mergeSort(int array[],int n){
    if(n<=1)return;
    mergeSort(array,n/2);
    mergeSort(array+n/2,n-n/2);
    std::inplace_merge(array,array+n/2,array+n);
}
717デフォルトの名無しさん:2006/07/16(日) 00:43:27
[1] 授業単元: 数値解析
[2] 問題文:
下記の表とアルゴリズムA・Bを使って次のプログラムを作成する。
問1)誤差関数の表においてx0=1.0、x1=1.1、x2=1.2の3点の関数値を使って
erf(1.14)の値を推測する。ただしアルゴリズムAとBを用いる。

問2)誤差関数の表においてx0=1.0、x1=1.1、x2=1.2、x3=1.3の4点の関数値を使って
erf(1.14)の値を推測する。ただしアルゴリズムAとBを用いる

[3] 環境
 [3.1] LINUX
 [3.2] gcc 
 [3.3] 言語:C
[4] 期限: 7月17日 
[5] その他の制限: 問題文長くてすみません。あとなるべく初歩的な知識でも理解できるようなのだと大助かりです。
よろしくお願いします
718デフォルトの名無しさん:2006/07/16(日) 00:44:21
誤差関数の表
x  erf(x)
1.0 0.84270079294971
1.1 0.88020506957408
1.2 0.91031397822964
1.3 0.93400794494065
1.4 0.95228511976265
1.5 0.96610514647531
1.6 0.97634838334464
1.7 0.98379045859077
1.8 0.98909050163573
1.9 0.99279042923526
2.0 0.99532226501895

アルゴリズムA(差分商の計算)
for(i=0,1,・・・,n){
di  ← f(xi)

for(k=1,2,・・・,n){
for(i=0,1,・・・,n−k){
di←( di+1 − di) / (xi+k − xi )
}
}

アルゴリズムB(v = pn (α)の計算)
v ← d0
for(i=1,2,・・・,n)
v←(α - xi ) v + di


表と使用するアルゴリズムA・Bです
719デフォルトの名無しさん:2006/07/16(日) 02:10:16
>>718
ちょっと教えて欲しいのだが、アルゴリズムAは、ニュートンの差分商
補間アルゴリズムだと思うのだがアルゴリズムBは一体何という補間?

線形補間かな?あとラグランジュ補間、ネヴィル補間、スターリング補間
などいろいろあるが、αの意味がよくわからないため、どの補間公式なの
か選べずに困っている。
720デフォルトの名無しさん:2006/07/16(日) 02:22:57
>>719
ニュートン補完です。ラグランジュは分かるけど
ネヴィル・スターリングは聞いたことないです。
721デフォルトの名無しさん:2006/07/16(日) 02:32:01
>>720
あ、わかった。アルゴリズムAで差分商表を作り、アルゴリズムBで
その表を使って補間を行うって事だね。じゃすぐうpできるのでちと
待ってて。
722デフォルトの名無しさん:2006/07/16(日) 02:36:03
>>720
ほい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2367.txt

ちょっと i とか j の使い方が出題例と違うんだけど、同じ出力になるように
適当にいじって提出した方がいいかも。よくわからなければこのままでも
いいんでわ?責任もてんけど。
723デフォルトの名無しさん:2006/07/16(日) 11:19:01
>>677分かる方どなたかおりませんか・・・('A`)
724デフォルトの名無しさん:2006/07/16(日) 12:44:25
>>676です。
>>678さんありがとうございます。
書いてあるとおり私は基本的なことしかやっていませんし習ったことのみでプログラムを作ります。
プログラムの中にsizeof、coinというのがあったと思いますがこれは習っていません
一日、習ったことで表せないかと試行錯誤を繰り返していましたが、どうにもできません
sizeof、coinをif for while dowhile else tray などで表すことはできないでしょうか?
725デフォルトの名無しさん:2006/07/16(日) 13:04:15
もうsizeを全部10に置き換えればいいんじゃないの
726デフォルトの名無しさん:2006/07/16(日) 13:09:27
>>724
coinは変数です。

sizeofはサイズを調べてくれる演算子です。
sizeof(int)とすると、4を返してくれます。
sizeof(coin)とすると、40を返してくれます。


int coin[10]={1,5,10,50,100,500,1000,2000,5000,10000};
int i,j,n[5],size=10;
int res[10];
に変更すればできるはず。
727デフォルトの名無しさん:2006/07/16(日) 13:26:31
>>725
>>726
ありがとうございます。sizeofについては解決いたしました。
しかし、coin resがいまだに理解しがたいです。
変数とはそもそもどんなものなのでしょうか?手持ちの参考書を読んでますが
coin や resは索引にもありません。
728デフォルトの名無しさん:2006/07/16(日) 13:27:13
あちゃー・・・
729デフォルトの名無しさん:2006/07/16(日) 13:27:55
これもゆとり教育の賜物です。

本当にありがとうございました。
730デフォルトの名無しさん:2006/07/16(日) 13:34:13
>>729
確かにゆとり世代ですけどね・・・^^;
大体C言語とか学ぶ意味あるんですか?
しかも必修ですよ、わけわかんねぇ
731デフォルトの名無しさん:2006/07/16(日) 13:39:08
必修であるならば、それがどんなものでもクリアすることこそが大人の態度だ。
732デフォルトの名無しさん:2006/07/16(日) 13:43:12
>>730
大体英語とか中国語とか学ぶ意味あるんですか?
しかも必修ですよ、わけわかんねぇ

と思いながら大学卒業しました
自分だけ苦労してますみたいなこと言わないでください。
英語なんでセンター試験で20点切るダメさ加減でしたよ。
733デフォルトの名無しさん:2006/07/16(日) 13:46:03
まぁ索引に思い至るのであれば、普通は「変数」を調べるわな。
変数の説明が無いような参考書は捨てちゃえ。
734デフォルトの名無しさん:2006/07/16(日) 13:47:30
>>722UPありがとうございます。
でも、struct Erf と const struct Erf と sizeof が分かりません・・・。
いじることすらできません・・・。
せっかくUPしてくれたのにすみません・・・・。_| ̄|○|||||

あと、問1の3点使うのと問2の4点使うのはこれを少し変えればできるんですか?
735デフォルトの名無しさん:2006/07/16(日) 14:01:22
>>732
自分も20切ってました><
>>733
調べましたが、半理解?
なんでわざわざint coinとか複数作る必要があるんですか?
intとcoinは書き方が違うだけで同じいみなのですか?
736デフォルトの名無しさん:2006/07/16(日) 14:02:30
??????????????????????????????
737デフォルトの名無しさん:2006/07/16(日) 14:06:20
>>735
なんだと!20切っただと!
仕方ない問題やってやる
738デフォルトの名無しさん:2006/07/16(日) 14:07:19
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     ('A`)     そうか!こうすれば理解してもらえるのか!
     ノヽノヽ
       くく

  \     /
  _ `゙`・;`' _バチュ--ン
     `゙`・;`
   /  `´  \
     ('A`)     
     ノヽノヽ
       くく


     ('A`)     ...なんだっけ
     ノヽノヽ
       くく


     (゚∀゚ )!     そうだ 京都 行こう
     ノヽノヽ
       くく
739デフォルトの名無しさん:2006/07/16(日) 14:14:33
なんだもう答え出てて理解できなくて荒れてたのか
740デフォルトの名無しさん:2006/07/16(日) 20:58:24
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):
以下のプログラムを完成させよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2371.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限: 7/18 22:00まで
[5] その他の制限:特になし

よろしくお願いします
741デフォルトの名無しさん:2006/07/16(日) 21:22:46
>>740
プログラムはそれで全部か?
742740:2006/07/16(日) 21:27:05
全部です
743デフォルトの名無しさん:2006/07/16(日) 21:47:49
親子間のメッセージって何をやり取りするんだ?
744717・718:2006/07/16(日) 22:18:08
昨日>>717>>718で質問した者ですが
>>722で答えあってるんでしょうか?
745デフォルトの名無しさん:2006/07/16(日) 23:15:25
>>734>>744
何々?構造体とsizeofがわからない?
ならちょっと待ってろ。
746デフォルトの名無しさん:2006/07/16(日) 23:22:00
>>744
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2372.txt

これ以上簡単にできんぞ。
係数の使い方が出題例と違うのが気になるのなら、これでいじれると
思う。
747デフォルトの名無しさん:2006/07/16(日) 23:23:33
あー、3点と4点を使うというのが違っているわけか。
わかった。なら改造するからしばし待たれよ。
748717・718:2006/07/16(日) 23:26:33
なんかすみません、2問もお願いして・・・
749デフォルトの名無しさん:2006/07/16(日) 23:31:48
チラシスマソ。気になったので…

717氏の大学は、構造体とsizeofを後期に履修しまふ。
ちなみに、担当教員は創成Iと同じT氏なので覚悟すべし。
平気で50人・60人落とします>>717
750デフォルトの名無しさん:2006/07/16(日) 23:33:20
>>748
これでどうかな。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2373.txt

>>749
((((;゚Д゚)))ガクガクガクブルブルブル。係数の使い方合わせておいた方が
いいんかな・・・・
751デフォルトの名無しさん:2006/07/16(日) 23:38:42
一ヶ所間違い発見。

-36
for (i = 0; i < N; i++) {
+36
for (i = 0; i < n; i++) {
752デフォルトの名無しさん:2006/07/16(日) 23:39:05
>>750
おそらくですが、717氏と同じ大学在籍です。
この担当教員は、えらく見る目が厳しく、去年はスペースが1つでも入ってズレていたら
即刻ダメだし受けてレポートを受け取ってもらえませんでした。

今思えば、当然っていえば当然ですが…。


個人的には結構厄介な教授にランクインしてまふw
753デフォルトの名無しさん:2006/07/16(日) 23:40:26
あ、加えて「こんなん習ってないだろ!もっと簡単に書け!」とか言うことも((((;゚Д゚)))ガクガクガクブルブルブル
754デフォルトの名無しさん:2006/07/16(日) 23:45:12
>>753
なんだと!本来フリーフォーマットのC言語に、書式の一致まで
強制する教官なのか。まあプログラムのチェック時に教官自身が
楽をしたいだけなんだろうが。
755717・718:2006/07/16(日) 23:49:49
>>750ありがとうございます!・゚・(つД`)・゚・
おかげさまで課題出さないだけで期末から-30点なんてことにならなくてすみそうです。

>>753課題を出されたときにはよろしくお願いしますセンパイ_| ̄|○|||||ボクアノヒトキライ
ところで数値解析の授業のほうではこの問題は去年出なかったんですか?
756デフォルトの名無しさん:2006/07/16(日) 23:50:34
よく思うのだが、そーいう教授に当たったときって
独学で学んでますのでとかじゃダメなん?
757デフォルトの名無しさん:2006/07/16(日) 23:52:17
>>754
無駄に厳しいのは事実。
だで、普段viを推奨する大学ですがvimを使ったほうが良いかな。
あと、Cファイルの中に結果とか諸々詰め込まないとダメだし受けたりとか。

まぁ、未知の事を直すのは>>717の仕事として…。
758デフォルトの名無しさん:2006/07/16(日) 23:53:28
>>755
あの。>>750だけど。係数を合わせて書いたら、デタラメな値が
出てきたので、これでいいと思うよ。

何か言われたら、「言われた通りにやったら結果がデタラメに
なったので、できるだけ出題の意図を崩さないように、正しい結果
が出るように修正しました」と言っておけばいいだろ。
759デフォルトの名無しさん:2006/07/16(日) 23:53:48
ソースは当たっているが
お前の態度が気に入らない
760デフォルトの名無しさん:2006/07/16(日) 23:54:17
>>755
あと教官の機嫌を取るためのプログラムの修正は俺はわからない
ので、あとは自分で頼む。
761デフォルトの名無しさん:2006/07/16(日) 23:55:48
>>759
教授本人!? (((((((( ;゚Д゚)))))))ガクガクブルブルガタガタブルガタガクガクガクガクガク
762デフォルトの名無しさん:2006/07/16(日) 23:55:56
>>757
アンドゥしまくるならvimおぬぬめなんだぜ?
763デフォルトの名無しさん:2006/07/16(日) 23:57:14
>>755
前にも言ったかもしれないが、去年は教科書じゃなくてプリント講義ですた。
教科書化したのは知っていたが、中身をちらほら変化してるみたいだな。

T教授?後期に大量に課題出すよwww
最終課題は「コンピュータと人間が対戦するゲームを何か作れ。(要するにAI)」で、
漏れは確か300行ぐらいに膨れ上がったイクナイプログラムを出した覚えがある。
764717:2006/07/17(月) 00:09:29
>>763創成の授業でも思ったけど、T先生の授業のためだけに学校通ってるわけでなく
ほかにもいろいろと授業あって忙しい、って言うのは学生の言い訳なんでしょうか・・・?
(;´Д`)カダイガヒドイ
765717:2006/07/17(月) 00:13:41
>>760
教授の機嫌取りは課題とは別のところで無問題ですΣG(´∀` )本当にたすかりました
766717:2006/07/17(月) 00:14:38
教授の機嫌取りは課題とは別のところ「でするの」で無問題です
767デフォルトの名無しさん:2006/07/17(月) 01:06:43
まぁスレ違いな話題はそのへんにしといてくれや
768デフォルトの名無しさん:2006/07/17(月) 01:11:19
>>767
いやだね、なんで君にいちいちどうこう言われたり、命令をされなきゃならないんだよ?
しといてくれや?して下さいだろ?誰に向かって口聞いてんだ?
相手がヤクザや暴力団の子供だったらやばいよ?
769デフォルトの名無しさん:2006/07/17(月) 01:32:19
770デフォルトの名無しさん:2006/07/17(月) 01:35:41
まーたいつもの彼か
771デフォルトの名無しさん:2006/07/17(月) 01:35:56
>>768
ひどいね、こりゃ
772893:2006/07/17(月) 01:39:39
>>768よくわかったな。俺本物のヤクザだから背中に

#include<stdio.h>
main()
{
   printf("hello world!);
}

って刺青ほってあるぜ?
773デフォルトの名無しさん:2006/07/17(月) 01:43:08
うはっwwwwおまいら釣られすぎwwwwww俺がヤクザの子供なわけねーじゃんwwww
774デフォルトの名無しさん:2006/07/17(月) 01:45:31
ださ。文字列が終わってない…
775デフォルトの名無しさん:2006/07/17(月) 01:48:26
同じ大学の奴さー、学食かどっかで盛り上がってくれよ
776デフォルトの名無しさん:2006/07/17(月) 01:50:12
お前らほんと学習能力ないな。
キチガイは完全スルーしろ、完全スルー。
777デフォルトの名無しさん:2006/07/17(月) 02:00:24
778デフォルトの名無しさん:2006/07/17(月) 07:44:52
>>770
なぜ彼だと決めつける?もしかすると彼女かもしれないぞ?
779デフォルトの名無しさん:2006/07/17(月) 12:32:07
[1] 授業単元:プログラムB
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2376.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4
[4] 期限: 2006/07/18 10:30
[5] その他の制限: mainもお願いします
780笹井奈琴/377:2006/07/17(月) 13:43:48
781デフォルトの名無しさん:2006/07/17(月) 14:17:46
[1] 授業単元: プログラミング
[2] 問題文
for文によるループを使って、学生の点数を連続してキーボードから入力し
負の点数を入力したとき、プログラムを終了させ、最大値と最小値を求める
関数void maxmin(int [], int , int*, int*);を用いるものとする。引数は
左から、「点数の配列:tensu」、「学生数:gakusei」、「最大値;max」
「最小値;min」として、「最大値と「最小値」にポインタを用いて、結果的に
反値とさせている。
なお、点数の配列は99個準備する(ループの最大値99回)
実行結果の例
 学生1:55
 学生2:60
 学生3:65
 学生4:80
 学生5:-999
 学生4人の最大値:80 最小値:55

[3] 環境
[3.1] OS: knopix
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 7月20
[5]ほとんど初心者です、お願いします
782笹井奈琴/377:2006/07/17(月) 14:18:20
>>780
しまった、data_insert()のおわりに
free( dataT );
が抜けてた。
783デフォルトの名無しさん:2006/07/17(月) 14:29:03
[1] 授業単元: プログラミング
[2] 問題文
キーボードから2つの整数(n、r)を打ち込み、n個からr個を選ぶ順列の数
を求めるプログラムを作りなさい、ただし、順列の数を求めるのに、zyunretu
という関数、階乗を求めるのにkaizyoという関数を利用するものとする(自分で作る
なお、順列の数の計算は、nPr=n(n-1)(n-2)...(n-(r-1))=n!/(n-r)!である。
使用関数:int zyunretu(int, int), int kaizyou(int)

実行結果の例
5個から3個を選ぶ順列の数は、P(5,3)=60である
注意事項
なるべく簡単なプログラムにするため、使用関数をint型にしてあります。
大きな値(n:上限12)を入れるとおかしな結果になります。
[3] 環境
[3.1] OS: knopix
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 7月20
[5]2つもすいません



784デフォルトの名無しさん:2006/07/17(月) 14:40:44
>>783
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

static int kaizyou(int num) {return round(tgamma(num + 1));}
static int zyunretu(int n, int r) {return kaizyou(n) / kaizyou(n - r);}
int main()
{
int n, r;
if (scanf("%d%d", & n, & r) == 2) {
printf("%d個から%d個を選ぶ順列の数は、P(%d,%d)=%dである\n",
n, r, n, r, zyunretu(n, r));
}
return 0;
}
785笹井奈琴/377:2006/07/17(月) 14:49:33
>>781
#include <stdio.h>
#include <stdlib.h>
void maxmin( int tensu[], int gakusei, int* max, int* min ) {
int i;
*max = *min = 0 < gakusei ? tensu[0] : -1;
for( i = 1; i < gakusei; i++ )
if( tensu[i] < *min )
*min = tensu[i];
else if( *max < tensu[i] )
*max = tensu[i];
}
int main3( int argc, const char* argv[] ) {
int tensu[99], i, max, min;
char buf[80];
for( i = 0; i < 99; i++ ) {
printf( "gakusei%d:",i+1 );
gets( buf );
tensu[i] = atoi( buf );
if( tensu[i] < 0 )
break;
}
maxmin( tensu, i, &max, &min );
printf( "gakusei %d nin no MAX:%d MIN:%dn", i, max, min );
return 0;
}
786笹井奈琴/377:2006/07/17(月) 14:51:15
>>785
1. main3 になってますが main に直してください
2. メッセージは全部ローマ字ですが、
 これは(必要であれば)漢字に直してくださいね。
787デフォルトの名無しさん:2006/07/17(月) 15:08:01
[1]OS

[2]以下のプログラムを完成させ、共通バッファを用いたプロセス間通信を実現せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2378.txt

[3]OS:Linux
コンパイラ:gcc
言語:C

[4]7/19 AM11:00

問題は口頭で言われたのですが
親プロセスと子プロセス間でチャットのようなことをしろ
ということです
お願いします
788デフォルトの名無しさん:2006/07/17(月) 16:47:20
>>787
はてしなく既出
789787:2006/07/17(月) 16:57:28
ほんとだ…>>740
すみませんでした
わかる方いませんか
790デフォルトの名無しさん:2006/07/17(月) 17:15:19
いろんな意味でわかんないんだと思うよ
791デフォルトの名無しさん:2006/07/17(月) 17:18:01
『問題の意味がわからない』ってのも含めてですかね
792デフォルトの名無しさん:2006/07/17(月) 17:47:33
お願いします

[1] プログラミング
[2] y=xのe乗を2進展開して計算するプログラムを作れ。
[3] 環境
 [3.1] Windows xp
 [3.2] Microsoft visual c++ 6.0
 [3.3] C++
[4] 2006/7/18 AM11:00頃まで
[5] ポインタがまだしっかり理解できていないので、できれば使わないようにしていただけるとうれしいです。
793デフォルトの名無しさん:2006/07/17(月) 17:55:57
笹井奈琴/377さんありがとうございました!
794792 ◆YZPdWwTLx6 :2006/07/17(月) 17:55:59
>>792
トリつけるの忘れてましたorz
795 ◆NeetJ30Le. :2006/07/17(月) 19:12:53
>>740
忘れてしまっているSystem V IPCの記憶を掘り起こすために、
セマフォ操作の部分だけやった。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2379.c

意味不明な「共有バッファ」を使ったメッセージのやり取りは、
自分で何とかしてください。(共有メモリを使うのか?)
796 ◆NeetJ30Le. :2006/07/17(月) 19:13:49
そうそう、このコードだとセマフォがプログラムを実行するたびに
作られていくので、適当に手動で消してください。
$ ipcrm -s id
797デフォルトの名無しさん:2006/07/17(月) 20:04:46
どなたか>>677できるかたおりませぬか・・・('A`)
パイプラインで詰まっているのですが、|を探してコマンドを整形した後
どのように繋いでいいかが分かりません。
pipeは1回だけでfdの中を保存して次々につなげていくみたいなことを
言われたのですが、どのようにすればいいでしょうか?
798デフォルトの名無しさん:2006/07/17(月) 20:33:23
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2380.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語: C++
[4] 期限:21日まで
[5] その他の制限:標準ライブラリは使ってはいけない

799デフォルトの名無しさん:2006/07/17(月) 21:31:08
>>797
過去スレに答えあるから探せ
800デフォルトの名無しさん:2006/07/17(月) 21:34:09
標準ライブラリ使っとるがな(´・ω・`)
801デフォルトの名無しさん:2006/07/17(月) 22:12:46
不覚にもワロタ
802デフォルトの名無しさん:2006/07/17(月) 22:45:00
非標準のライブラリは使っていいんだろうかw
803677:2006/07/17(月) 22:50:36
>>797
過去スレあさってみたのですが、3つ以上のパイプを順次繋いでいくことが
できなかったりして答えではないという感じでした。
どなたか問題文にあったの作れませんでしょうか('A`)
804798:2006/07/17(月) 22:58:57
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2380.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語: C++
[4] 期限:21日まで
[5] その他の制限:

すみません訂正します。まだよくわからないもので。
805デフォルトの名無しさん:2006/07/17(月) 23:10:35
C++?
806デフォルトの名無しさん:2006/07/17(月) 23:31:25
>>803
その見つけたというのはどれなのか明記してみろ
807デフォルトの名無しさん:2006/07/17(月) 23:36:24
「苦しんで覚えるC言語」のサイトを使って授業を受けています。
今、14章の「文字列を扱う方法 」まで習いました そこで宿題として出された問題がこちらです。
問題1.キーボードから63以下の2つの整数を変数a,bに入力して、a+bの結果がアスキーコードの対応する文字・記号となって出力されるプログラムを作れ。

問題2.キーボードから英字1つを入力し、その英字より2つ前の英字(または数字、記号)を出力するプログラムを作れ

問題3.2つの配列a,bに、キーボードから各々10字以内の文字列を 入力し、それらをabの順とbaの順に連結するプログラムを作れ。

問題4.問題3において、a,bに入力された文字列の各々の長さを比較し、長い文字列が先頭に、短い文字列がその後に連結するように出力するプログラムを作れ。
ただし、2つの文字列の長さが同じ倍にはa,bの順に連結する。

問題5.キーボードから2つの文字列(地名、氏名など)を入力し、アルファベット順に出力するプログラムを作れ。ただし、endが入力されたとき、プログラムが終了すること。
(たとえば、Tokyo,とSapporoが入力されたときは、Sapporo,Tokyoの順に出力する。)
ヒント:文字の比較にはstrcmpを用いる。

OS: WindowsXP
 CPad for Borland C++ Compilerを使用
C言語
すみません期限が明後日までですので、いきなり問題を5つも載せてしまいました。
お願いします助けてください
808longhon:2006/07/17(月) 23:39:03
どなたかC++のソースをCにできるかたいらっしゃいますか?
809デフォルトの名無しさん:2006/07/17(月) 23:43:22
firefox を C で実装し直せと言うならお断りだ
810デフォルトの名無しさん:2006/07/17(月) 23:44:36
811longhon:2006/07/17(月) 23:49:42
マルチになってしまうのですが、
http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+27659
これです。
812デフォルトの名無しさん:2006/07/17(月) 23:54:19
>>811
gtkmm は GTK+ の C++ インターフェイスです。
813デフォルトの名無しさん:2006/07/17(月) 23:56:45
>>810
どうもありがとうございます
814677:2006/07/18(火) 00:00:53
>>806
過去スレ67の575にある
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2085.c
なのですがなんか違う感じだったので・・・
815デフォルトの名無しさん:2006/07/18(火) 00:05:28
816デフォルトの名無しさん:2006/07/18(火) 00:10:20
>>811
自分レス(>>812)で書いてあるように、
gtkmm.h自体がC++で書かれているから無理。
templateやnamespaceもある上に、
スタティックメソッドGtk::Main::run()がGtk::Windowのインスタンスを要求している。

そもそもスレ違い。

817デフォルトの名無しさん:2006/07/18(火) 00:13:31
スレ違いだけど、gtkのC interfaceを使うよう書き換えてくれってことでしょ。
スレ違いだけど。
818longhon:2006/07/18(火) 00:16:21
そうです。すれ違いですね。すみません。
list viewがどうもうまくいかなくてリファレンスは英語でてんてこ舞いに
なってもうわけがわからなくなってしまったんです。
819デフォルトの名無しさん:2006/07/18(火) 00:32:54
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):英文字を一つ入力すると、それ以降のアルフ
              ァベットを終わりまで表示する。(ただし数字
              を入力した時などは考えなくて良い。)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: 覚えてないです。
 [3.3] 言語: C++
[4] 期限: 今日の夕方です。
[5] その他の制限: 習い始めたばっかりです。#includeは<stdio.h>のみ。

#include<stdio.h>
main(){
int c,i;
  c=getchar();
for(i=c;i<='z';i++);
putchar(i);

ここあたりまでは頑張って考えてみました。ただ、これだと小文字の場合
だけですよね?
大文字の場合も出来ないといけないみたいですが・・・ここからは解りま
せんので教えて頂けませんか?
820デフォルトの名無しさん:2006/07/18(火) 00:42:53
>>819
#include<stdio.h>
main(){
int c,i;
c=getchar();
for(i=c;i!='z'+1&&i!='Z'+1;i++)putchar(i);
}
821デフォルトの名無しさん:2006/07/18(火) 00:45:43
[1] 授業単元:プログラミングA
[2] 問題文(含コード&リンク):

問題:西暦と月を入力し、その月のカレンダーを出力せよ

1.(year-1)-365を計算する
2.西暦year-1年12月31日までに何回閏年があったかを考える
3.mounth-1月までの日数と1を足す。このときyear年が閏年の場合は注意が必要
  例:2006年1月1日(日)を計算すると
    2005*365+[2005/4]-[2005/100]+[2005/400]+1=732312を7で割ると0になる

    dayを7で割った余り  0 1 2 3 4 5 6
曜日   日 月 火 水 木 金 土

プログラムの構成
1.西暦yearと月monthを入力
2.西暦year年month月1日が何日目(days)かを計算する
3.daysを7で割った余りに応じて空白を出力し、その後1,2,3,・・・と出力する。
  このとき7つのデータを出力するごとに改行もする

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] gcc3.4
 [3.3] 言語:C言語
[4] 期限:2006年7月29日
[5] その他の制限:if文 for文 等初歩的な事  関数使用不可 
過去ログにあった物は
         void showやint IsLeapYear(int year)、static const int days
         など習っていない記号があったので改めて質問しました
         
         お願いします(´・ω・`)
822デフォルトの名無しさん:2006/07/18(火) 00:48:22
習ってない記号って…
関数を記号言うなw
823デフォルトの名無しさん:2006/07/18(火) 01:00:50
関数使用不可?! Σ(゚д゚lll)
824デフォルトの名無しさん:2006/07/18(火) 01:16:25
つまり、main()も使っちゃ遺憾のだよ。
825デフォルトの名無しさん:2006/07/18(火) 01:17:02
>>818
いい機会だ、C++の勉強もし給え。
826デフォルトの名無しさん:2006/07/18(火) 01:42:01
>>821
showはなんでもできる基地外さん
IsLeapYearは記号と間違えられるメンヘルさん
daysは死ぬまでdaysな童貞さん
827デフォルトの名無しさん:2006/07/18(火) 02:20:35
>>821
そもそも何をもって初歩的な事とするんだろうな
俺からすればマクロ形式関数なんて初歩的な訳で
関数がダメだというなら代わりにそれを使うまでだが
828デフォルトの名無しさん:2006/07/18(火) 02:39:21
>>821
>関数使用不可
これは自分で定義した関数がダメってことじゃね?
829デフォルトの名無しさん:2006/07/18(火) 03:01:25
関数使っちゃダメって書いてるわけだから
関数は全て使っちゃダメ!
830デフォルトの名無しさん:2006/07/18(火) 03:02:17
じゃあ手続きってことで
831819:2006/07/18(火) 03:32:07
>>820
なるほど。
レスありがとうございました。
832デフォルトの名無しさん:2006/07/18(火) 04:11:36
[1]授業:プログラミング(C言語)
[2]問題文:外部ファイルから1000個の数字を読み込み、配列に格納する。
       その数字をクイックソート法によって整列させ、整列した結果を別の外部ファイルに書き込むプログラムを作成する。
       main関数とは別にクイックソートを行う関数を作成し、読み込みおよび書き込みの外部ファイル名はそれぞれ「indata.dat」、「outdata.dat」とする。
       また、再帰を使用し、クイックソートを行う関数の引数にはポインタを使わないこと。
[3.1]OS:WindowsXP
[3.2]Borland C++ 5.5.1
[3.3]言語:Cです。
[4]期限:今日の11時までです。
[5]その他の制限:特にないです。

よろしくお願いします。
833デフォルトの名無しさん:2006/07/18(火) 05:20:28
834デフォルトの名無しさん:2006/07/18(火) 06:02:24
>>832
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2391.txt

なお、63行目より下のプログラムは、indata.datという名前で1000個の
ランダムな数字を入れたファイルを作るプログラムです。提出の時は
削除してください。
835デフォルトの名無しさん :2006/07/18(火) 06:53:20
>>832
#include <stdio.h> #include <string.h> #include <stdlib.h> #define SWAP(a,b) {int temp; temp = a; a = b; b = temp;}
void qsort_sub(int *data, int left, int right);void qsort_main(int *data, int size);
int main(void){ FILE *rfp, *wfp; char *delm = " \n\t"; char buff[1000] = {'\0'};
char *Integ; int i ; int elemnt[1000] = {0}; rfp = fopen("indata.dat","r");
wfp = fopen("outdata.dat","w"); for( i = 0; NULL != fgets(buff, sizeof(buff), rfp); i++){
Integ = strtok(buff, delm); elemnt[i] = atoi(Integ); }qsort_main(elemnt,1000);
for(i=0; i< 1000-1;i++){ fprintf(wfp, "%d\n",elemnt[i]); }
fclose(wfp);fclose(rfp);return 0;} void qsort_sub(int *data, int left, int right){
int lindex = left; int rindex = right; int piv = data[(left+right)/2];
while(lindex <= rindex){ for(; data[lindex] < piv; lindex++) for(; data[rindex] > piv; rindex--)
if(lindex <= rindex){ SWAP(data[lindex],data[rindex]); lindex++; rindex--;
}} if(rindex > left){ qsort_sub(data, left, rindex); } if(lindex < right){ qsort_sub(data, lindex,right);
}} void qsort_main(int *data, int size){ qsort_sub(data, 0, size - 1); }

ポインタを使うなの意味がわかんね
配列自体ポインタだし
836893か暴力団の子供の親:2006/07/18(火) 07:04:03
おうおうおうおうおうおう、先日は娘をずいぶんと可愛がってくれたそうじゃないか
口の聞き方はきぃつけた方がええぞ?
837デフォルトの名無しさん:2006/07/18(火) 07:22:58
>>832が人気みたいだから漏れも漏れも
#include<stdio.h>
#define N 1000
void q_sort(int x[], int l, int r){int i, j, p, tmp;
i=l; j=r; p = x[(l+r)/2]; while(true){ while(x[i] < p)i++;
while(p < x[j])j--; if (i >= j)break; tmp=x[i]; x[i]=x[j]; x[j]=tmp;
i++; j--; } if (l < i-1) q_sort(x, l, i-1); if (j+1 < r) q_sort(x, j+1, r); }
int main(){FILE *fp; int i,data[N]; fp = fopen("indata.dat","r");
for(i=0;i<N;i++) fscanf(fp,"%d",&data[i]); fclose(fp);
q_sort(data,0,N-1); fp = fopen("outdata.dat","w");
for(i=0;i<N;i++) fprintf(fp,"%d\n",data[i]); fclose(fp); return 0; }

エラー処理とか考えるの忘れた orz
838デフォルトの名無しさん:2006/07/18(火) 07:31:39
>>833
本当にありがとうございます!
提出日に間に合ってよかったです。
助かりました ありがとう×∞
839デフォルトの名無しさん:2006/07/18(火) 08:48:43
>>834
>>835
>>837
ありがとうございます。助かりました!!
840677:2006/07/18(火) 11:38:50
どうもうまく繋げないのですが、>>677のようにコマンドを整形している
場合、パイプを見つけてコマンドを順次実行していくにはどうすれば
いいんでしょうか?
841デフォルトの名無しさん:2006/07/18(火) 12:01:20
>>840
いいかげんウザいぞ、お前。回答もう出てるだろ。
疑問点があったら、適当なスレで具体的に質問しろ。
842デフォルトの名無しさん:2006/07/18(火) 12:45:15
1つのファイル(sample.txt)というファイルがあり
以下のように記述がされています。

Q1333.txt
0.500
0.000
-22000.000

A1455.txt
0.000
-0.500
-19000.000




これを、
Q1333.txtというファイル名で、記述内容は
0.500
0.000
-22000.000

A1455.txtというファイル名で
0.000
-0.500
-19000.000


という形で保存をしていきたいのですが、どのようにすればよいのでしょうか?
843デフォルトの名無しさん:2006/07/18(火) 12:48:25
スレ違い
おめースレタイも読めねーバカ?
844デフォルトの名無しさん:2006/07/18(火) 13:03:26
C/C++で遠隔地のHTMLサーバに接続してhtml貰ってくる最低限のコードを教えて><
845デフォルトの名無しさん:2006/07/18(火) 13:07:40
>>844
ググレカス
846デフォルトの名無しさん:2006/07/18(火) 13:28:36
socketでサーバーに接続してページを要求するメッセージを送信する。
847デフォルトの名無しさん:2006/07/18(火) 13:31:44
>>846
コード教えれっていってんだろうが、ボケナス
コード書けないんだったら黙っとけ
848デフォルトの名無しさん:2006/07/18(火) 13:42:36
>>846
分かったかチンカス。いやマンカスかもしれんけどな。
849デフォルトの名無しさん:2006/07/18(火) 14:11:15
[1] C言語
[2] 問題文
n
Σ a^(k-1)
k=1
aとnを入力して解を出力するプログラムを作る。

[3] 環境
 [3.1] OS:Windows
 [3.2] VC 6.0?
 [3.3] C言語
[4] 期限:明朝
[5]習い始めたばかりです。

よろしくお願いします。
850デフォルトの名無しさん:2006/07/18(火) 14:15:40
>>849
習い始めたばかりだとループも使わない方がいいかな?
#include <stdio.h>
#include <math.h>
main(){
double a;
int n;
scanf("%lf %d",&a,&n);
printf("%f\n",(1-pow(a,n))/(1-a));
}
851デフォルトの名無しさん:2006/07/18(火) 14:25:00
>>850
こういう人って、なに考えて生きてるんだろうね
852デフォルトの名無しさん:2006/07/18(火) 14:51:14
相手が知らないこと、間違えていることで
自分が知っていること、あるいは相手の失敗や不手際を指摘できるだけで
得意気に調子ぶっこいているキチガイが約2名。
こんな時間にそんなことしに来るなんて、どこの暇人だよ?w
おおかた、クズ大学院生か低レベルな学校の教員だろ
853667:2006/07/18(火) 14:55:55
>>840
宿題についての内容なのですが、他のスレとかあるのでしょうか('A`)
具体的内容なのですが、
実行後、標準入力でコマンド受付→スペースを区切りとしてargmv[0],argmv[1]...
にコマンドが入っていくというところまで作られています。
ls -l | grep d | cat
というコマンドが来た場合、
argmv[0]=ls argmv[1]=-l argmv[2]=grep...というようになり、
最初自分でやってみたときは
|をNULLに置き換えてその場所を記録し、execvpで記録した場所からその数だけ実行し、
パイプを繋ぐということをやっていました。
この場合3つの場合、1つ目が標準出力の変更、2つ目が標準入力と出力の変更、3つ目が
標準入力の変更になるのですが、

for(コマンドの数だけ){
fork
2つ目、または最後のコマンドの場合は標準入力を変更
コマンドが2つ以上ある場合、最後のコマンド以外は標準出力を変更
パイプのある次の場所からexecvp
}

みたいな流れにしようと思っているのですがpipeをどこで呼び出すかと、どのように
繋ぐかが分かりません。今回は単純のため|がコマンドにくっついていない場合を考えた
のですがどんな感じにすればいいのでしょうか・・・
また、リダイレクションが混ざって入ってきた場合どのようにすればいいのでしょうか?
854デフォルトの名無しさん:2006/07/18(火) 15:13:18
>>853
ここはあくまで宿題を片付けるスレッドであって、
宿題の内容について質問するスレッドじゃぁ無いと思うんだ
855デフォルトの名無しさん:2006/07/18(火) 15:16:58
もうできませんでした。でいいだろ。
856デフォルトの名無しさん:2006/07/18(火) 15:21:17
>>853
しつこいな、お前。回答のソース良く見ろ。
857デフォルトの名無しさん:2006/07/18(火) 15:24:51
>>852
またいつものキチガイですか
858デフォルトの名無しさん:2006/07/18(火) 15:26:42
>>853
pipe作って、いらんものcloseして、dupかdup2だ。
つか、スレ違い。
859デフォルトの名無しさん:2006/07/18(火) 15:58:48
スルーを知らず、何かと自分が気に入らない意見は叩かないと気が済まない
キチガイが目立つな。所詮、お前らも低レベルな学校の卒業生か教員だろ?
痛々しいね、こういう自分より下のレベルの奴が質問すると
分かっている場所でなきゃでけぇ面できない小心者ってw
リアルではまともに人と向き合って話が出来ないんだろうけどw
860デフォルトの名無しさん:2006/07/18(火) 16:01:08
>>849
#include <stdio.h>
int main(){
int a,n,i,j,k,ans=0;
printf("a:"); scanf("%d",&a);
printf("n:"); scanf("%d",&n);
for(k=1;k<=n;k++){
j=1;
for(i=1;i<=k-1;i++)j*=a;
ans+=j;
}
printf("%d\n",ans);
return 0;
}
こんな感じだと思うけど数学苦手だし間違ってるかも
861デフォルトの名無しさん:2006/07/18(火) 16:52:29
>>859
と、リアル高卒ニート引きこもりが申しております。
862デフォルトの名無しさん:2006/07/18(火) 16:54:31
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
大きさ20の配列keyを用意し、キーボードから値を入力する。
この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。
ただし、ソートの途中経過を画面に出力すること。
また、最後に比較回数を画面に出力すること。
【ヒント】
配列の大きさの指定
#define SIZE 20
単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
[3] 環
 [3.1] OS: xp
 [3.2] visual studio2003
 [3.3] 言語: C
[4] 期限: 明日の朝までに。
[5] その他の制限: 配列、構造体、線形探索、ループなど習いました
863デフォルトの名無しさん:2006/07/18(火) 16:59:13
>>852
>>859
君の発言がこのスレで最も痛々しいんだが。
864デフォルトの名無しさん:2006/07/18(火) 17:09:31
何か言い返さないと気が済まない、自分が気に入らない意見を徹底的に叩く
その態度が痛々しいのだがw
ずっとはりついている割には、まともにソースを出して答えない奴が
何偉そうにしてんだよ?何、お前ここのスレの主?お前の主導のもとで
このスレが成り立ってんの?
ぐちぐち言ってねーで、ソースを出せばそれで良いだろ
いちいち質問者の気に入らない態度に対してネチネチ叩くな、うぜぇ

それから、やっぱりそうなんだろ?自分より下だと見下せる相手だと分かっている
この場所でだからこそ、解けない相手に対して煽りを入れる。そして
自分は煽るだけでソースを出さない、そういう奴が目立つんだよ。
ソースを出している奴は、質問者の細かい態度に対してケチをつけずに
書いたものを出してんだから、自分の主観や判断基準で
やりとりにケチしかつけないやつの方が断然うぜぇ

>>863
としか言えないお前が一番バカ
865デフォルトの名無しさん:2006/07/18(火) 17:12:12
このスレで偉そうにしている奴の化けの皮がはがれてきたなw
はいはい、いつまでも自分の基準で低レベルだと思う奴に対して
大きな態度をとるだけで満足してなさいw
866デフォルトの名無しさん:2006/07/18(火) 17:13:16
>>862
#include<stdio.h>
#define SIZE 20
int main(){
int key[SIZE],i,j,k,tmp,count=0;
for(i=0;i<SIZE;i++)scanf("%d",&key[i]);
for(i=0; i<SIZE-1; i++){ k = i;
for(j=i+1; j<SIZE; j++){
if(key[k] > key[j]) k = j;}
tmp=key[i]; key[i]=key[k]; key[k]=tmp;
count++; for(j=0;j<SIZE;j++) printf("%d ",key[j]);
printf("\n"); } printf("交換回数:%d\n",count);
return 0; }
867デフォルトの名無しさん:2006/07/18(火) 17:13:32
ファビョったw
868デフォルトの名無しさん:2006/07/18(火) 17:15:18
>>864
自分の発言態度は棚に上げて?
869デフォルトの名無しさん:2006/07/18(火) 17:19:34
どうせ、頭悪くてまともな質問もできない厨房が、自分の質問を邪険にされてファビョってるだけだろ。
相手にスンナ。
870デフォルトの名無しさん:2006/07/18(火) 17:21:41
>>869
いや違うよ。こいつはかなりまえから宿題スレに常駐してるただの馬鹿。
こんな内容のレスしかしない。
ストレス発散でしょ。
871デフォルトの名無しさん:2006/07/18(火) 17:40:59
>>861 >>857 >>856 >>855 >>851 >>845 >>841
今日の煽るだけの偉ぶるだけで無能なガイキチ
872デフォルトの名無しさん:2006/07/18(火) 17:43:05
しかも粘着w
873デフォルトの名無しさん:2006/07/18(火) 17:44:51
いつも自分の煽り発言のせいで、スレが無駄に伸びるのにねぇ
874デフォルトの名無しさん:2006/07/18(火) 17:45:34
ヒント:頭のおかしい人は相手しないようにしましょう
875デフォルトの名無しさん:2006/07/18(火) 18:00:32
ぐちょぐちょ言うなら自分が書いたソースを出せよ、どこぞの教員さんw
876デフォルトの名無しさん:2006/07/18(火) 18:34:53
そんなに嫌そうな顔しても、ここがぐちょぐちょ言ってるじゃないか
877デフォルトの名無しさん:2006/07/18(火) 18:55:23
荒れてる?
878デフォルトの名無しさん:2006/07/18(火) 19:22:03
俺のお気に入りは全部で9個
そのうち2個がカオスなんだが
これってまだ幸せなほう?
879デフォルトの名無しさん:2006/07/18(火) 20:44:27
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):文字列を入力させる。その中にGSKという部分
              文字列(連続)が含まれていればOK,そうでなけれ
              ばNO!と出力させる。  
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C++
[4] 期限: 7月19日の12時
[5] その他の制限: 標準ライブラリは使ってはいけない

#include<stdio.h>
main(){
char moji[256];
int n=0, flag=0;
gets(moji);
while(moji[n]!='\0'){
if(moji[n]=='G' && moji[n+1}=='S'
&& moji[n+2]=='K')
flag=1;

この続きを書けということなので、この続きをお願いします。
880デフォルトの名無しさん:2006/07/18(火) 20:57:52
>>879
C++じゃなくてCだと思う。
標準ライブラリ使用禁止って、普通にstdio.h使ってるジャン
#include <stdio.h>
int main(void){
char moji[256];
int n=0,flag=0;
gets(moji);
while(moji[n] != '\0'){
if (moji[n] == 'G' && moji[n+1] == 'S' && moji[n+2] == 'K'){
flag=1;
break;
}
n++;
}
if (flag == 1){
puts("OK!");
}else{
puts("NO!");
}
return 0;}
881デフォルトの名無しさん:2006/07/18(火) 20:58:33
>>877
荒れてないっすよ?ここを荒れさせたら大したもんだ
882デフォルトの名無しさん:2006/07/18(火) 20:59:47
何なに?DQNという文字列が含まれているかどうか調べるって?
883デフォルトの名無しさん:2006/07/18(火) 21:03:48
>>879
n++;}if(flag)puts("OK");else puts("NO!");}
一カ所(n+1のところ)閉じ括弧間違えてるけど
884879:2006/07/18(火) 22:29:29
>>880
解答ありがとうございます。
はい、Cでした。標準ライブラリの意味を理解してなかったです。
閉じ括弧間違えてしまいました。
3つもミスして申し訳ないです。
breakは、まだ習ってないのですが、breakを使わない方法ってないですか?
それと、>>883に書いてあるn++;}if(flag)puts("OK");else puts("NO!");} は
if (flag == 1)ではなくif(flag)っていう訂正ってことですか?
885デフォルトの名無しさん:2006/07/18(火) 22:34:33
>>884
#include<stdio.h>
main(){
char moji[256];
int n=0, flag=0;
gets(moji);
while(moji[n]!='\0'){
if(moji[n]=='G' && moji[n+1]=='S'&& moji[n+2]=='K')flag=1;
n++;
}
if(flag)printf("OK");
else printf("NO");
}
886880:2006/07/18(火) 22:39:14
>>883は俺じゃない。
(flag == 1)と(flag)は同じ意味。
887デフォルトの名無しさん:2006/07/18(火) 22:47:40
本当に同じ意味かなかな?
888デフォルトの名無しさん:2006/07/18(火) 22:50:44
>880
(flag)
(flag != 0)
889886:2006/07/18(火) 22:56:17
>>887
真だったらに訂正・・・で、いいよね?
890デフォルトの名無しさん:2006/07/18(火) 22:57:22
>>889
間違ってるって言ったのは、下から三行目の
if(moji[n]=='G' && moji[n+1}=='S'
の話だよ
891デフォルトの名無しさん:2006/07/18(火) 22:58:29
あ、なんかえらい勘違いしてたかも
892デフォルトの名無しさん:2006/07/18(火) 23:03:58
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):2つの数a,bをキーボードから入力し、縦がa文字、横がb文字
でできたしかっけいを表示するプログラムを作れ
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c言語
[4] 期限:できれば早めで;;
[5] その他の制限:入門なのでまだif,for,while文しか習っていません・・・
難しい単語は使えません

お願いします
893デフォルトの名無しさん:2006/07/18(火) 23:07:16
>>892
#include <stdio.h>

int main(void)
{
int a,b,i,j;
scanf("%d%d",&a,&b);
for (i=0;i < a;i++){
for (j=0;j < b;j++){
printf("*");
}
printf("\n");
}
return 0;
}
894892:2006/07/18(火) 23:10:19
>>893
voidというのはなにかに置き換えられますか?
895デフォルトの名無しさん:2006/07/18(火) 23:12:15
int argc,char *argv[]
に置き換えられる。
896892:2006/07/18(火) 23:17:11
ありがとうございました!
897デフォルトの名無しさん:2006/07/18(火) 23:31:09
[1] 授業単元: プログラミング演習T
[2] 問題文(含コード&リンク):
下のアドの2353.txtのリスト5-1B(File-Dump Programって奴)を改変し
テキストファイルを読み込ん(ファイル名はプログラム中に書き込んでおく)で
偶数行だけを画面に出力するプログラムを作成せよ。
ファイル名はc:\test.txtとか適当でいいです。
[3] 環境
 [3.1] OS: WindowsXP SP2
 [3.3] 言語: C++
[4] 期限: 07月21日まで
[5] その他の制限:最近の授業内容↓(同じクラスみたいだから拝借)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2351.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2352.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2353.txt
898892:2006/07/18(火) 23:32:04
ごめんなさい!
さっきの問題に追加して
#でできた四角形をつくれというものでした。
どのようにしたらよいですか?
899デフォルトの名無しさん:2006/07/18(火) 23:43:07
それはギャグで言ってるのか?
900892:2006/07/18(火) 23:47:13
マジメです(´・ω・`)
901デフォルトの名無しさん:2006/07/18(火) 23:48:47
この方も、もゆとり教育の被害者です。
ご愁傷様です。
902にゃんぽん:2006/07/18(火) 23:48:58
こんにちは。
どうか、Windowのリサイズについてご教授ください。

画像を表示するプログラムを作成しています。
画面をマウスドラッグでサイズ変更をしているとき、
マウス移動の間、図形を連続的に再描画(縦横比を一定)しようとしています。

FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。

いい方法がありましたらご教授願います。

903デフォルトの名無しさん:2006/07/18(火) 23:54:16
>>897
下から5行目のprintfの前にif(i%2)って入れるだけで終わりだよ

>>902
スレ違い
904879:2006/07/18(火) 23:59:49
どうもありがとうございました。
905819:2006/07/19(水) 00:05:52
>>820さんが答えて下さったプログラムで今日の夕方に学校で実行してみたの
ですが、大文字を入力すると{が出力され小文字を入力すると[が出力されて
しまいます。


906デフォルトの名無しさん:2006/07/19(水) 00:10:03
>>905
ちゃんとそのままコピペしてコンパイルしますたか?
まさか自分で手入力ってオチかね?
907デフォルトの名無しさん:2006/07/19(水) 00:13:08
「もゆとり教育」?
908819:2006/07/19(水) 00:20:09
>>906
ちゃんと、そのままコピペしてコンパイルしました。
プログラム自体は、自分の問題の答になっているのですか?
それと、C++じゃなくてCでした。これが原因ですかね?
909デフォルトの名無しさん:2006/07/19(水) 00:31:03
>>908
んじゃintをcharにするとか
910デフォルトの名無しさん:2006/07/19(水) 00:32:05
forの行の末尾にセミコロンがついている悪寒。
911819:2006/07/19(水) 00:46:28
>>910
forの行の末尾のセミコロンをとったら出来ました。
ありがとうございます。
912デフォルトの名無しさん:2006/07/19(水) 00:49:45
って>>819のソースの一部を変えたんであって
やっぱ>>820を丸々コピペしてねーじゃんw
そりゃzかZの次の文字が来る罠
913910:2006/07/19(水) 00:50:21
漏れってエスパー?w

つーか、>911あほすぎ。>908でよくぞ「そのままコピペ」と書いたもんだ。
914デフォルトの名無しさん:2006/07/19(水) 01:45:58
コピペ=見ながら手打ち
と思ってたとか
915笹井奈琴/377:2006/07/19(水) 02:26:49
>>792
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double bp( double t, unsigned int i ) {
if( i == 0 ) {
return 1;
} else if( i == 1 ) {
return t;
} else {
double t2 = bp( t, i / 2 );
return t2 * t2 * bp( t, i % 2 );
}
}
double ebp( unsigned int i ) {
return bp( exp(1.0), i );
}
int main( int argc, const char** argv ) {
int x = atoi( argv[1] );
printf( "e^%d -> %lf(%lf)\n", x, ebp(x), exp(x) );
return 0;
}
おそくなった...
916デフォルトの名無しさん:2006/07/19(水) 03:49:11
[1] 授業単元:情報処理 U
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2394.txt
の中にある課題1、課題2です。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Borland C++ compiler 5.5
 [3.3] 言語: C
[4] 期限: 07月19日10:00まで
[5] その他の制限: 特に無し
917デフォルトの名無しさん:2006/07/19(水) 06:03:54
918デフォルトの名無しさん:2006/07/19(水) 06:35:27
919デフォルトの名無しさん:2006/07/19(水) 06:40:30
細かい事を言えば

×leaf
○leap

な。leap year == うるう年。
920916:2006/07/19(水) 07:41:56
凄く助かりました。ありがとうございます。
これ出来なかったら単位落とす所でした…
本当に感謝です。
921849:2006/07/19(水) 08:05:19
>>860
遅レスですがありがとうござます、助かりました。
922デフォルトの名無しさん:2006/07/19(水) 13:25:25
[1] 授業単元: 応用プログラミング
[2] 問題文(含コード&リンク): 1辺の長さの正n角形の面積を求めなさい。但し、nは3から10までとする。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C言語
[4] 期限:あと2時間です・・・
[5] その他の制限
923デフォルトの名無しさん:2006/07/19(水) 13:31:05
>1辺の長さの正n角形
難しい問題だ。
924デフォルトの名無しさん:2006/07/19(水) 13:34:32
すみません・・誤打です。。
問題・1辺が1の長さの正n角形でした(><)
925デフォルトの名無しさん:2006/07/19(水) 13:47:43
あと1時間なんです(><;)
926デフォルトの名無しさん:2006/07/19(水) 13:59:03
>>922
面積の公式まで求まっているなら、出した方が早いよ。
927デフォルトの名無しさん:2006/07/19(水) 14:04:35
>>922 多分求まってるはず。
#include <stdio.h>
#include <math.h>

int main(void)
{
int n;
double pi = acos(-1.0), height, theta, s;
for(n=3;n<=10;n++) {
theta = pi / n;
height = 0.5 / tan(theta);
s = 0.5 * height * n;
printf("%d -> %f\n", n, s);
}
return 0;
}
928636ですが:2006/07/19(水) 14:09:52
#include <stdio.h>

int c;
int T(int n){
int i,tmp=0;

if(n==0)
return 0;
else{
for(i=0; i<n; i++)
tmp += T(i);
return (tmp*2/n + c*n);
}
}
int main(void){
int n;
do{
printf("c = ");
scanf("%d", &c);
}while(c<=0);

do{
printf("n = ");
scanf("%d", &n);
}while(n<0);
printf("T(n) = %d\n", T(n));

return 0;
}
このプログラムの(配列を用いた)非再帰版を
どなたか作っていただけませんか?自分の知識では難しくて作れないので。
よろしくお願いします。
929デフォルトの名無しさん:2006/07/19(水) 14:15:03
>>928
>>644にレスしてくれたらすぐにでも出せたのに。
証明も書いたのが残ってるから必要なら言ってくれ。

double t(int n, int c)
{
  double sum = 0;
  double v = 0;
  int i;
  for(i = 1; i <= n; i++)
  {
    v = 2.0 / i * sum + c * i;
    sum += v;
  }
  return v;
}

ちなみに配列は要らない。
930デフォルトの名無しさん:2006/07/19(水) 14:18:45
>>927
ありがと〜〜〜〜!!!!
931929:2006/07/19(水) 14:26:48
>>928のTと厳密に同じになるように書き直した。
int T(int n)
{
  int sum = 0;
  int v = 0;
  int i;
  for(i = 1; i <= n; i++)
  {
    v = 2 * sum / i + c * i;
    sum += v;
  }
  return v;
}
932928:2006/07/19(水) 14:54:56
>>929
644にレスできなくてすいませんでした。
928のプログラムの処理の不具合を解消したかったのですが、
931のプログラムで、無事解消できました。
本当に感謝です。どうもありがとうございました。
ちなみに証明の方はもう片付いたので大丈夫です。
気にかけていただき、ありがとうございます。
933デフォルトの名無しさん:2006/07/19(水) 16:28:47
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2398.txt

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Borland C++ compiler 5.5
 [3.3] 言語: C
[4] 期限: 今日中でおねがいします
[5] その他の制限: 特に無し

神タン、オネガイシマス(@´ー`)
934デフォルトの名無しさん:2006/07/19(水) 16:32:45
[1] 授業単元: プログラミング通論
[2] 問題文(含コード&リンク):
与えられた文字列を辞書順に整列するマージソートのプログラムを作成せよ。
プロトタイプ宣言は, void mergesort(recordtype a[], int n); とする。
 以下のプログラムは数字列を整列するプログラムです。
ただし、1からなので、0からできるような 関数mergesort() を考えてくださいませ。

#include <stdio.h>
#include <string.h>
typedef int keytype; /* → typedef char* keytype; */
typedef struct {
keytype key;
} recordtype;
#define LIMIT 1000
recordtype a[LIMIT];

void mergesort(recordtype a[], int l, int r) {
int i, j, k, m;
recordtype b[LIMIT];
if (l<r) {
m = (r + l) / 2;
mergesort(a, l, m);
mergesort(a, m+1, r);
for (i = m; i >= l; i--) b[i] = a[i];
i = l;
for (j = m+1; j <= r; j++) b[r+m+1-j] = a[j];
j = r;
for (k = l; k <= r; k++)
if (b[i].key < b[j].key) a[k] = b[i++]; /* → strcmp() を用いて */
else a[k] = b[j--];
}
}
935934:2006/07/19(水) 16:34:48
void print_record(recordtype a[], int n) {
int i;
for (i=1; i<=n; ++i) {
printf("%d\n", a[i].key);
}
}

#define BUFLEN 128
#define N 5
int main(void) {
char buf[BUFLEN];
int i;
for (i=1; i<=N; i++) {
fgets(buf, BUFLEN, stdin);
sscanf(buf, "%d", &a[i].key);
}
mergesort(a, 1, N);
print_record(a, N);
}

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7/21まで
936教えて下さい:2006/07/19(水) 17:57:21
パズルプログラムを教えてくれませんか?
詳しくは
アップローダです

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=2401

937デフォルトの名無しさん:2006/07/19(水) 18:15:14
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct list {
char user[9];
int cnt;
struct list *next;
}NODE;
NODE *head;
void list_out(void);
void main(void)
{
NODE *new,*back,*p;
char user[9],access[23];
int rc;
FILE *fp;
if((fp = fopen("access.log","r")) == NULL) return;
head = NULL;
while(fscanf(fp,"%s %s",user,access) != EOF){
p = head;
if(p == NULL || strcmp(user,p->user) @ 0){
new = (NODE *)malloc(sizeof(NODE));
strcpy(new->user,user);
new->cnt = A;
new->next = B;
C = new;
}
938デフォルトの名無しさん:2006/07/19(水) 18:15:44
else{
while(p != NULL){
if((rc = strcmp(user,p->user)) D 0) break;
back = p;
p = E;
}
if(rc == 0) F;
else{
new = (NODE *)malloc(sizeof(NODE));
strcpy(new->user,user);
new->cnt = A;
new->next = B;
      G = new;
}
}
}
list_out();
fclose(fp);
}
void list_out(void)
{
NODE *p;

printf("ユーザ名 回数\n");
p = head;
while(p != NULL){
printf("%-8s %4d\n",H,I);
p = J;
}
}
939デフォルトの名無しさん:2006/07/19(水) 18:23:19
[1] 授業単元:C
[2] 問題文(含コード&リンク):
)ttp://ranobe.com/up/src/up123720.txt
こちらのaccess.logを読み込んで
ユーザー名 回数 
c3191001    2
c3191002    5
と昇順にする線形リストのプログラムです@〜Jを埋めてくださいお願いします
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: VB
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限: なし
940デフォルトの名無しさん:2006/07/19(水) 18:46:25
>>933
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2404.txt
寝起きでてきとーにやったから、しっかり確認だけはよろ
941デフォルトの名無しさん:2006/07/19(水) 19:33:46
>>936
ペントミノ解法プログラムの課題とはまた作り甲斐のあるものを。
2339通りの解があったはず。
942デフォルトの名無しさん:2006/07/19(水) 20:25:15
[1] 授業単元:C言語(画像処理)
[2] 問題文(含コード&リンク):
座標(x1,y1)(x2,y2)(x3,y3)(x4,y4)…(値は適当)
が与えられていて、画像を読み込み、そこに(x1,y1)から(x2,y2)
まで直線を画像にプロットし、次に(x2,y2)から(x3,y3)まで
直線を画像にプロットして、それを繰り返していくプログラム
をつくる。
(画像読み込み部分はやらなくてよい)

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++ Developer 6
 [3.3] 言語:C
[4] 期限:2006年07月24日12:00まで
[5] その他の制限:なし。
どうか宜しくおねがいします。
943デフォルトの名無しさん:2006/07/19(水) 22:45:07
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
一行が一個の正の整数値と一つの文字列からなる以下のようなテキストファイルがある.
この中から指定された番号をもつ行の文字列を表示するプログラムを作成せよ.
ファイル名の指定および番号の指定はキーボードから行うものとする.
また,ファイルの最後の行には番号として-1が入っているものとし,番号の重複はないものとする.
(ファイルの中身)

44 あ
22 い
89 う
-1

(実行結果)
filename: data.txt
index: 22


[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: Visual Studio.NET2003
 [3.3] 言語: C
[4] 期限: なるべく早く
[5] その他の制限: 特になし
どうか、よろしくお願いします。
944デフォルトの名無しさん:2006/07/19(水) 23:14:59
>>943
#include <stdio.h>

int main(void)
{
FILE *fp;
int sel,index;
char temp[256],str[256],filename[256];
scanf("%s",filename);
if ((fp=fopen(filename,"r")) == NULL){
fprintf(stderr,"error![file]\n");
return -1;
}
scanf("%d",&sel);
while (fgets(temp,256,fp)){
if (sscanf(temp,"%d%s",&index,str) != 2){
printf("error![read]\n");
break;
}
if (sel == index){
printf("%s\n",str);
break;
}
}
fclose(fp);
return 0;
}
945デフォルトの名無しさん:2006/07/20(木) 00:08:13
[1] C言語
[2] 1個1000円の商品があります。この商品には、まとめて買うと割引があります。
割引率は10個未満=なし、10個以上100個未満=1割引、100個以上1000個未満=2割引、1000個以上はすべて3割引き
購入個数を与えると、購入金額を求めるプログラム。購入個数は700個とする。

pro1.とpro2.(while文とfor文)で作成した。各自でどちらを採用するか決め、理由を200時以内に適切に述べよ。

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

[3] 環境
[3.1] Windows
[3.2] VC 6.0
[3.3] 言語:C言語
[4] 無期限
[5] その他の制限:なし
whileもforもやっている個とは同じだし、違いや長所短所が見つけられません。宜しくお願いします。
946デフォルトの名無しさん:2006/07/20(木) 00:10:21
いや、マルチはどうだろ
947デフォルトの名無しさん:2006/07/20(木) 00:19:29
>>945
どっちも酷いな
948デフォルトの名無しさん:2006/07/20(木) 00:31:24
1] プログラミング
[2]
"koike","kouno","suzaki","ishii","ishikawa","okano",
"kaneko","kurosawa","saegusa","sasaki","shinohara",
"sudoh","seki","takamura","hayashi","nakamura",
"hosooka","matsumoto","mihajima","yoshimura","wada","wajima"
上記の文字列をポインタ配列に初期設定し、以下の仕様をはたすプログラムを組め。

アルファベットの小文字1字をキー入力する。
その文字で始まる名(文字列)があればすべて表示、なければその旨表示。
表示法は自由。
[3] 環境
 [3.1] Windows xp
 [3.2] Microsoft visual c++ 6.0
 [3.3] C++
[4] 7/21(金)まで
[5] ポインタ配列を使うこと
949デフォルトの名無しさん:2006/07/20(木) 00:51:25
>>948
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2408.txt
文字入力のところは自分で適当に変えてくれ
950デフォルトの名無しさん:2006/07/20(木) 00:52:32
>>945
pro1.
理由:pro2.は間違っているから(printf(%d 円, %d 個のとき\n",a,b);)
951デフォルトの名無しさん:2006/07/20(木) 00:56:59
一瞬どこが間違ってるのかと思ったら"がないのか
952デフォルトの名無しさん:2006/07/20(木) 00:59:28
>>940
うおぃ!神!ありがとうです!
でもみたことない単語がある(´・ω・`)
953945:2006/07/20(木) 00:59:29
そこは私のプログラム転記ミスです。
954デフォルトの名無しさん:2006/07/20(木) 01:00:25
>>949
ありがとうございます
たすかりました。
955デフォルトの名無しさん:2006/07/20(木) 01:07:49
>>952
見たこと無い単語って何?
defineなら文字を置き換えてるだけだから直接数字を書き込んでも大丈夫だよ
956デフォルトの名無しさん:2006/07/20(木) 01:13:12
>>955
マジすか!本当にトンです(゚´∀`)
957937-939:2006/07/20(木) 01:16:51
誰かお願いします>w<
958デフォルトの名無しさん:2006/07/20(木) 01:19:16
>>945
whileは3回でforは4回回ってる気がするんだが気のせいか?
959デフォルトの名無しさん:2006/07/20(木) 02:23:27
$ ./p1
1000 円, 700 個のとき
0%引き \700000

$ ./p2
1000 円, 700 個のとき
20%引き \560000


pro2かなw
問題の趣旨的に
960デフォルトの名無しさん:2006/07/20(木) 02:31:30
>>959
いや、VCで実行してみたがそんな結果にはならなかったぞ?
961デフォルトの名無しさん:2006/07/20(木) 02:42:51
> n=n++;
962デフォルトの名無しさん:2006/07/20(木) 02:57:54
[1] 授業単元:繰り返し処理
[2] 問題文(含コード&リンク):
0以上の整数nを入力し、続いてn個の整数データを入力すると
それらn個の整数のデータの最大値と最小値が出るようなプログラムを作りなさい
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (CPad)
 [3.3] 言語: (C++)
[4] 期限: (2006年7月21日まで)
[5] その他の制限: (if文とwhile文まで習いました)
963デフォルトの名無しさん:2006/07/20(木) 03:13:40
>>962
#include<stdio.h>
int main(){
int n,a,max=0,min=65535;
scanf("%d",&n);
while(n>0){
scanf("%d",&a);
if(a>max)max=a;
if(a<min)min=a;
n--;
}
printf("最大値:%d 最小値:%d\n",max,min);
return 0;
}

眠い orz
964デフォルトの名無しさん:2006/07/20(木) 03:15:00
>>963
どうもありがとうございます
965デフォルトの名無しさん:2006/07/20(木) 03:15:41
>>962

#include<algorithm>
#include<iostream>
#include<limits>
int main(){
    int n,
        minimum=std::numeric_limits<int>::max(),
        maximum=std::numeric_limits<int>::min();
    for(std::cin>>n;n--;){
        int v;
        std::cin>>v;
        minimum = std::min(v,minimum);
        maximum = std::max(v,maximum);
    }
    std::cout << "min = " << minimum << " max = " << maximum << std::endl;
    
}
966デフォルトの名無しさん:2006/07/20(木) 14:37:20
[1] 授業単元: プログラミング
[2] 問題文 キーボードで指定したファイルから単語を読み込み、出現回数をカウントして
最後にアルファベット順もしくは逆順に出力するプログラムを作成せよ。

ただし、以下の条件を満たすように設計すること。
1、アルファベット順に単語を管理するためには二進木をヘッダーファイルとして作成し使用すること。
2、表示の方法はアルファベットの昇順、降順に2種類があり、キーボードから指定した順番で表示する。
3、二進木への挿入、探索、表示は全て再帰関数を使用すること。
4、単語ファイルは以下のファイルを使用せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2412.txt

また、以下のようなコマンドを受け付けるようにコマンド一覧(メニュー)を表示せよ
1、指定ファイルから単語を読み込み、出現回数を数え新たに二進木を作成する。
2、キーボードから入力した指定された単語の出現回数を表示する。
3、アルファベットの昇順または降順で全単語と出現回数を表示する。順序は指定すること。
4、キーボードから新しい単語を入力し、二進木に挿入する。
5、キーボードから入力した単語を二進木から削除する。
6、終了
[3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: cygwin [3.3] 言語:C++
[4] 期限: [2006年7月20日20:00まで]
[5] その他の制限:問題文に指定されている通りに作ること。
967966:2006/07/20(木) 14:39:33
自力では時間までに作れそうに無いのでどうかお力添えお願いします。
968デフォルトの名無しさん:2006/07/20(木) 15:31:25
>>897殿、感謝です

[1] 授業単元: プログラミング演習T
[2] 問題文(含コード&リンク):
ファイル名をキーボードから入力し,
キーボードから10行分のテキスト(空白文字無し)を読み込んで,
その内容をファイルに格納するプログラムを作成せよ
[3] 環境
 [3.1] OS: WindowsXP SP2
 [3.3] 言語: C++
[4] 期限: 07月21日まで
[5] その他の制限:最近の授業内容↓(同じクラスみたいだから拝借)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2351.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2352.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2353.txt
969デフォルトの名無しさん:2006/07/20(木) 15:57:54
>>968
#include<iostream>
#include<fstream>
using namespace std;
int main(){
const int N = 10;
fstream fs("data.txt",ios::out);
if( fs.fail() ){
cout << "ファイルを開けませんでした" << endl;
return -1;
}
char data[256];
for(int i=0;i<N;i++){
cin >> data;
fs << data << endl;
}
return 0;
}
あれ、C++であってる?
970お願いします・・:2006/07/20(木) 16:54:42
まったくわかりません・・
[1] 授業単元: 中課題
[2] 問題文(含コード&リンク): 9マス×9マスの小さな盤面で、数独の問題を解く
プログラムを作成せよ。またわかりやすいレポートを作成せよ(レポは
とりあえず後回しで大丈夫です)
<数独のルール>
1、空いているマスに、1から9までの数字のどれかを入れる。
2、縦列、横列(ともに9列)、太線(外周の線)で囲まれた3×3の
ブロック(それぞれ9マスあるブロックが9つある)のどれにも
1から9までの数字が一つずつ入る。
[3] 環境
 [3.1] OS: UNIX
[4] 期限: 明日の19時
[5] 盤面の状態を入出力するサンプルコードと問題の入出力ファイルは配布されています。
お願いします。。。。
971デフォルトの名無しさん:2006/07/20(木) 16:56:24
>>970
とりあえずサンプルコードと入出力ファイルをうp
972デフォルトの名無しさん:2006/07/20(木) 16:56:31
>>970
先に解法のレポ書いてくれ
973お願いします・・:2006/07/20(木) 17:19:54
>>971 入出力ファイルは簡単な数字が適当にならんでありました。
サンプルコードは必要でしょうか?今ありません!
必要ならばすぐに学校行ってもって帰ります!
>>972 レポは自分で書くのです。まだかけていません・・
974デフォルトの名無しさん:2006/07/20(木) 17:24:15
>>973
そのサンプルコードを参考にプログラムを作成しろって課題じゃないのか?
がんばって学校行って取ってこい。もちろん入出力ファイルも。
975デフォルトの名無しさん:2006/07/20(木) 17:25:01
適当な数字を適当に出力すればいいのかw
976デフォルトの名無しさん:2006/07/20(木) 17:26:14
サンプルコードはいらんよ、サンプルコードなんかに縛られたくない。
どうせ出力するだけのコードなんてたいしたもんじゃない。
入出力の形式だけ教えろ。
977お願いします・・:2006/07/20(木) 17:29:01
>>976
見た感じでは
6−−7−−12−
ー2ーー・・・・
・・・・・・・・
・・・・・・・・
という感じだったと思います。
わかりにくければ、学校に行って見てきます!
・・・・・・・
978デフォルトの名無しさん:2006/07/20(木) 17:30:04
見るだけじゃなくてコピー取ってこい
979お願いします・・:2006/07/20(木) 17:30:15
>>974 今からすぐとりにいってきます!
45分ほどで帰ってきますので。
980お願いします・・:2006/07/20(木) 17:31:06
>>978わかりました!!
981お願いします・・:2006/07/20(木) 18:15:35
帰ってまいりました!
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
ここに書き込みさせていただきました
982デフォルトの名無しさん:2006/07/20(木) 18:29:36
キーボードから7桁の整数を2つ読み込み、その積を表示する。ただし、整数型以外の変数を用いてはならない

この問題がよく分からないのですがどうすればいいのでしょうか?
983デフォルトの名無しさん:2006/07/20(木) 18:31:06
>>982
>>1をよく読んで丸投げすればいい
984982:2006/07/20(木) 18:33:31
すいませんでした
[2] 問題文 キーボードから7桁の整数を2つ読み込み、その積を表示する。ただし、整数型以外の変数を用いてはならない
[3] 環境 
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual C++ 2005 ExpressEdition
 [3.3] 言語: C言語
[4] 期限:
[5] その他の制限: 特にありません
985デフォルトの名無しさん:2006/07/20(木) 18:39:21
[1] 授業単元:
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2410.txt
問題のヒント:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2411.txt
図:http://s.pic.to/1uw91
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: なるべく早く
[5] その他の制限:

よろしくお願いします。
986デフォルトの名無しさん:2006/07/20(木) 18:54:18 BE:29115735-#
987デフォルトの名無しさん:2006/07/20(木) 18:57:37
>>986
ありがとうございました
できました
988お願いします・・:2006/07/20(木) 19:18:27
見た感じ、出来そうでしょうか??
989デフォルトの名無しさん:2006/07/20(木) 19:33:55
>>985
PC解除してくれないと見られない
いや見なくてもいい気もするんだけどさ
990デフォルトの名無しさん:2006/07/20(木) 19:34:52
>>988
単純にバックトラックでいいのか?
うろ覚えだが、たしかアルゴリズムあった気がするんだよな・・・
課題出されるときに一緒にそーいう話聞いてない?
991お願いします・・:2006/07/20(木) 19:41:17
>>985どういう意味でしょうか?どうすればよいのでしょう?
パソから見れると思いますが・・?
>>990 課題は自分のパソに問題文が送られるだけで説明はありませんでした。
同じ列には同じ数字がないように、かつ3×3の9マスにも同じ数字がない
ように並べるらしいです。
3×3の正方形が3×3個連なって、9かける9のマスになっています
992お願いします・・:2006/07/20(木) 19:42:23
>>991あ、989は違う方に対してでした・・すみません
993デフォルトの名無しさん:2006/07/20(木) 19:45:21
994デフォルトの名無しさん:2006/07/20(木) 19:45:52
995デフォルトの名無しさん:2006/07/20(木) 19:46:35
996デフォルトの名無しさん:2006/07/20(木) 19:47:36
997デフォルトの名無しさん:2006/07/20(木) 19:49:12
998デフォルトの名無しさん:2006/07/20(木) 19:51:51
999デフォルトの名無しさん:2006/07/20(木) 19:52:12
1000デフォルトの名無しさん:2006/07/20(木) 19:52:35
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。