C/C++の宿題を片付けます 66代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/06/28(水) 15:49:04【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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
0002デフォルトの名無しさん
2006/06/28(水) 16:09:340003デフォルトの名無しさん
2006/06/28(水) 17:39:57各要素に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
0004デフォルトの名無しさん
2006/06/28(水) 18:00:14[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文とかポインタ配列程度の知識で
構造体とかそっちのほうは習っていません
お願いします
0005デフォルトの名無しさん
2006/06/28(水) 23:06:540006デフォルトの名無しさん
2006/07/05(水) 15:35:41今後修正される保障はもちろん無いが・・・
そういうのが良い方向に行われた事って殆どないからな。
0007デフォルトの名無しさん
2006/07/05(水) 19:01:400008デフォルトの名無しさん
2006/07/05(水) 19:02:160009デフォルトの名無しさん
2006/07/05(水) 19:04:10[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日
0010デフォルトの名無しさん
2006/07/05(水) 19:10:40http://pc8.2ch.net/test/read.cgi/tech/1152094206/
0011デフォルトの名無しさん
2006/07/05(水) 19:12:460012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
2006/07/05(水) 19:19:530014デフォルトの名無しさん
NGNG1行にいくつの数値があるかというのは固定なのか可変なのかどっちだ。
0015デフォルトの名無しさん
2006/07/05(水) 19:30:21http://pc8.2ch.net/test/read.cgi/tech/1152095097/
0016デフォルトの名無しさん
2006/07/05(水) 19:31:180017デフォルトの名無しさん
NGNG実質72代目だな。
http://makimo.to/cgi-bin/search/search.cgi?shw=100&q=C%2B%2B+%8Fh%91%E8&andor=AND&sf=2&H=ikenai&all=on&view=table
0018デフォルトの名無しさん
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まで
問題点:ファイルの入力をファイル名ではなく、フォルダに格納されている
複数のテキストファイルを読み込みたいのですが、どうしてもわかりません。
フォルダに格納されている、複数のテキストファイルを読み込むために、
ファイル名のところをフォルダのパスを記述すれば、自動でフォルダ内の
テキストファイルを読み込んでくれるのでしょうか?
0019デフォルトの名無しさん
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] その他の制限: ファイル入出力、プロセス制御、パイプ生成に
関してはシステムコールを用いること。
0020デフォルトの名無しさん
2006/07/05(水) 19:43:39#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;
}
0021デフォルトの名無しさん
2006/07/05(水) 19:45:460022デフォルトの名無しさん
2006/07/05(水) 19:49:48しかし "dir\smpl.txt"だと テキスト名も記述しちゃいますよね?
フォルダ内には複数のテキストファイルがあり、おのおの名前が違います。
smpl.txt/test.txt/AAA.txt/etc
このテキスト名を記述しないとやはり無理なんでしょうか?
フォルダのパスを記述して、後は自動でファイルを次々読み込んでくれるのが
目的なんです。
0023デフォルトの名無しさん
2006/07/05(水) 19:53:16そんな方法があるなら俺が知りたい
0024デフォルトの名無しさん
2006/07/05(水) 19:53:39[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]初歩的なことしか習ってません。
0025デフォルトの名無しさん
NGNG>0〜60の数の個数
何を数えるんだ。この場合は61でいいのか?
0026デフォルトの名無しさん
2006/07/05(水) 20:02:33http://wisdom.sakura.ne.jp/system/winapi/win32/win110.html
これの一番上のプログラムを改造すればいいんでないの
0027デフォルトの名無しさん
2006/07/05(水) 20:04:240028デフォルトの名無しさん
2006/07/05(水) 20:29:110029デフォルトの名無しさん
2006/07/05(水) 20:31:40[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
とくになし
よろしくお願いします
003024
2006/07/05(水) 20:40:18あ!初めに
34 57 45 21 89 63 39 48 78 68 76 84 92 53 62
って数字が書かれてたので、この中から数えるってことのよう
です。
これらの数値の意味がわけ解らなかったので講師のミスかと思って
書いてませんでした。すいません。
0031デフォルトの名無しさん
NGNG#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;}
0032デフォルトの名無しさん
NGNG#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;}
0033デフォルトの名無しさん
2006/07/05(水) 20:48:59[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] その他の制限:特になし
お願いします
0035デフォルトの名無しさん
2006/07/05(水) 21:02:340036Javaはイイ
2006/07/05(水) 21:07:39http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28005
>すべての4 桁の数のうち、上2 桁の数の和が偶数であるものの合計を求めるプログラム。
~~~~~~
という部分がよくわからないのですが、取りあえず上2桁の和が偶数の4桁の整数から和を求めるプログラムを作ってみました。
奇数の場合は入力した整数値を表示するようにしてます。
尚、数式部は遊び心ということでご了承ください。
0037976
2006/07/05(水) 21:42:51最後の方に書いたためレスがつかなかったので申し訳ないですが、もう一度
質問させて下さい。
[1]授業:プログラミング入門
[2]問題文:do-while文を用いてキーボードから入力された値が素数であるか
どうかを判定するプログラムを作成せよ。入力された値が素数の
場合は「素数」と出力し、素数でない場合は最小の因数を出力せよ。
ヒント:余りを求める%を使用する。
[3.1]OS:UNIX
[3.3]言語:たぶんC++です。
[4]期限:明日の11時までです。
[5]その他の制限:特にないですが、まだprintf,scanf,if,else,for,while,
do-while,インクリ・ディクリ・四則演算、不等号ぐらい
しか習ってないです。
よろしくお願いします。
0038デフォルトの名無しさん
2006/07/05(水) 21:45:17int 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] その他の制限:
よろしくお願いします。
0039デフォルトの名無しさん
2006/07/05(水) 21:53:41つチラシの裏
0040デフォルトの名無しさん
2006/07/05(水) 21:56:079ページの、
/* 以下,関数 push, pop, dsp_stack の定義 */
の下にコピペしてコンパイルできない?
0041デフォルトの名無しさん
2006/07/05(水) 22:00:45>printf,scanf,if,else,for,while,
printfがあるならCじゃね?
0042デフォルトの名無しさん
2006/07/05(水) 22:02:53は?
004340
2006/07/05(水) 22:06:31今チェックしたら、9ページのソースからちょっと修正してたのを忘れてた
下から6行目、printf内の「“」を「"」に直すのと、
一番下「}」が足りないから付け足しておくように
0044デフォルトの名無しさん
2006/07/05(水) 22:08:03まぁC++でも使えるには使えるが、それじゃcoutって書いていないからに言い換えよう
0045デフォルトの名無しさん
2006/07/05(水) 22:09:400046デフォルトの名無しさん
2006/07/05(水) 22:12:33意味不明。
0047デフォルトの名無しさん
2006/07/05(水) 22:14:17いちいちうぜぇよ、揚げ足取りでもしに来たか?意味が分からないなら黙ってろ。
>>37の開発環境がCかC++かであって、言語の仕様がどうとかが論点じゃない。
C++に関する文献に目を向ければ、C++ではprintfは一般的ではないと明記されているものばかりだぞ。
0048デフォルトの名無しさん
2006/07/05(水) 22:16:48さわやかにスルーしようぜ
0049デフォルトの名無しさん
2006/07/05(水) 22:17:09> >>37の開発環境がCかC++かであって
そんなことお前が決めることじゃないよ。
質問者がC++だといってるんだから、それでいいじゃん。
0050デフォルトの名無しさん
2006/07/05(水) 22:17:45>>41
は?
46 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 22:12:33
>>44-45
意味不明。
↑こいつナニが言いたいのか分からないが、分からないなら黙ってた方が身のためだな。
いちいちここで自分に知識がありませんって露呈しなくて良いから
0051デフォルトの名無しさん
2006/07/05(水) 22:18:39「露呈」で特定できた。
0052デフォルトの名無しさん
2006/07/05(水) 22:19:06よろしくお願いします。
[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
0053デフォルトの名無しさん
2006/07/05(水) 22:19:07>そんなことお前が決めることじゃないよ。
決めてないよ?たぶんって書かれていて疑問に思ったから
質問者に対して疑問をぶつけただけだが?少なくともお前が分からないなら黙ってろ。
>質問者がC++だといってるんだから、それでいいじゃん。
そうだよ?ナニが言いたいの?俺は別にどっちかはっきりしなきゃダメとか
そんなことは言ってないが、そことなくC言語であろうと思われる箇所を指摘したんだが?
とにかく指摘が分からないなら黙ってろ
0054デフォルトの名無しさん
2006/07/05(水) 22:20:01いや、お前がいつもの揚げ足煽り厨だろ?
ろくに意見をせずに煽るだけで特定できた。
簡単に釣れるんだな、この自称プロって。
0055デフォルトの名無しさん
2006/07/05(水) 22:20:020056デフォルトの名無しさん
2006/07/05(水) 22:20:59>>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
は?
0057デフォルトの名無しさん
2006/07/05(水) 22:21:3346 名前:デフォルトの名無しさん 投稿日: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
意味不明。
0058デフォルトの名無しさん
2006/07/05(水) 22:22:090059デフォルトの名無しさん
2006/07/05(水) 22:22:35大学に行ったことの無い奴は、UNIXを使ったことがないから知らんのだろうけどw
0060デフォルトの名無しさん
2006/07/05(水) 22:23:23相手を蔑むニュアンスを入れなきゃレス出来ないなのなら、
頼むからじっと堪えて黙っててくれ・・・
0061デフォルトの名無しさん
2006/07/05(水) 22:23:270062デフォルトの名無しさん
2006/07/05(水) 22:24:08無理。
0063デフォルトの名無しさん
2006/07/05(水) 22:24:120064デフォルトの名無しさん
2006/07/05(水) 22:24:52それが出来る子ばかりなら、こうはならないのさ・・・・・・・
0065デフォルトの名無しさん
2006/07/05(水) 22:26:090066デフォルトの名無しさん
2006/07/05(水) 22:27:18Unixでgcc?
0067デフォルトの名無しさん
2006/07/05(水) 22:27:46もしC++でそれを使って教育をしているんであれば、ちょっと不適切な指導内容かと・・・
市販のC++の本を見ると、cout, cinが普通に使われているしな
>>42が>>37じゃなく、実際のところを調べられない第三者なら黙ってろ
0068デフォルトの名無しさん
2006/07/05(水) 22:28:320069デフォルトの名無しさん
2006/07/05(水) 22:28:360070デフォルトの名無しさん
2006/07/05(水) 22:29:35>>60
> けど、これははっきりしているだろ。C++ではprintfとscanfは一般的ではない
そんなこと無いと思うよ(個人的意見)。
まあ昨今の大学でC++を教えるときに、printfとcoutのどちらを使うのが一般的なのかは知らんけど。
0073デフォルトの名無しさん
2006/07/05(水) 22:48:240074デフォルトの名無しさん
2006/07/05(水) 22:52:11> >>42が>>37じゃなく、実際のところを調べられない第三者なら黙ってろ
お前モナー
0075デフォルトの名無しさん
2006/07/05(水) 22:55:47273 名前:デフォルトの名無しさん[sage] 投稿日:2006/06/16(金) 03:02:28
そして無意味に自分の主張をしてしまった俺こそ無駄だと自覚している
だからもうここへは来ない
やはり、レベルの低い人間を相手にしても自分自身のレベルアップにはつながらない
自分のソースが初心者に伝わるか?理解させられるか?
腕試しをしにきても自由だろ?それすらいちいち否定される筋合いはない
要するに、既に述べたように、これは回答者同士の争い
回答者同士が争う必要はないのは言うまでもない
そしてその争いの結果、トーマスが恥さらしに過ぎないことが露呈された
それだけでも十分だ
性帝トーマスよ、お主の将来に幸あれ
0076デフォルトの名無しさん
2006/07/05(水) 23:00:06少なくとも守って欲しいなーって要望も無意味だな
分からない奴が来なきゃ一番良いだけ
っつかそれ>>75、ここへはって言うけどそのレスが書かれたのはこのスレじゃないだろ
ここが示す場所がはっきり書かれていないし
これでもし、プログラム板やそのスレとはっきり書かれていれば分かるが
0077デフォルトの名無しさん
2006/07/05(水) 23:02:580078デフォルトの名無しさん
2006/07/05(水) 23:05:05違うんだったら、
黙 っ と け ク ズ
0079デフォルトの名無しさん
2006/07/05(水) 23:07:18二人ともいらないから。
0080デフォルトの名無しさん
2006/07/05(水) 23:07:38相変わらず知能が低い厨房乙。お前が黙ってろ、っつかうぜぇ
自称プロ名乗っているだけででけぇ態度がとれると思うなよw
0081デフォルトの名無しさん
2006/07/05(水) 23:08:5478 名前:デフォルトの名無しさん 投稿日:2006/07/05(水) 23:05:05
>>75=>>76なのか?
違うんだったら、
黙 っ と け ク ズ
↑さぁ、低俗な人間の必死な姿をとくと見よ!
自分の思う通りに相手が動かないとキレるタイ(プ
0082デフォルトの名無しさん
2006/07/05(水) 23:08:550083デフォルトの名無しさん
2006/07/05(水) 23:10:49自分が気に入った女性が自分が好きじゃない=自分が嫌いと勝手に決めつけ
自分が嫌いじゃないなら好きになれと言う危険人物
こういう奴は、ソースがまともに書けないとコンピュータに対してキレて
ディスプレイを壊すタイプ。ただ、PC本体は固い金属なため、以前殴って手を怪我して
痛い思いをしてからやらなくなった。痛みに対する学習能力はあるようだ
0084デフォルトの名無しさん
2006/07/05(水) 23:11:00専門学校生乙。恥ずかしいからもう黙ってな。
筋の通った理論に基づいて話してなく、自分がバカだと思う奴がバカって
言っているだけだな。ご愁傷様。
2.0は 変数 ではなく 定数 なので、変数に使う型は関係ない。
問題は変数同士と、代入する変数の型だよ。
あの数式を見れば一目瞭然。さすがに初心者だからといって
理解力のないバカまで指導するスレじゃないんで、俺はこれで失礼するよ。
低俗な人間の問題煮まで相手にしてたら、こっちがバカになるw
0085デフォルトの名無しさん
2006/07/05(水) 23:11:550086デフォルトの名無しさん
2006/07/05(水) 23:12:08間違っていない理論に噛み付いている姿が痛々しい
0087670
2006/07/05(水) 23:12:11よろしくお願いします。
0088デフォルトの名無しさん
2006/07/05(水) 23:12:28>>61
おいおい、何キレてんだよ?これだから 低レベル 低俗 な 低学歴 は困るぜ・・・ヤレヤレ
0089デフォルトの名無しさん
2006/07/05(水) 23:13:31>>667-668
すげー、ここって煽りたがり屋が簡単に釣れるんですねw
要するに人を馬鹿にしたい人が集まっているってことか
低俗なクズ共めがw
0090デフォルトの名無しさん
2006/07/05(水) 23:14:19い い か げ ん に し ろ
0091理解する頭がなくて必死に答えて頂こうとする粘着
2006/07/05(水) 23:15:04それからこれも答えてもらおうか。
>>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と書くのには意味があるのか無いのか説明してもらおう。
0092デフォルトの名無しさん
2006/07/05(水) 23:15:50>>90
0093デフォルトの名無しさん
2006/07/05(水) 23:16:15はいはい、誰のレスを引用しているのか分からないけど
それはお前が気に入らなかったレスだろ?よっぽど自分の無知を晒して
釣られたのが悔しかったんだね、もうお前にはレスしないから
安心して永眠しな
0094デフォルトの名無しさん
2006/07/05(水) 23:16:52あははは、スゲーよ、お前。それ確かに俺のコメントだわw
0095デフォルトの名無しさん
2006/07/05(水) 23:17:52>>90
0096デフォルトの名無しさん
2006/07/05(水) 23:18:36う ぜ ぇ
0097デフォルトの名無しさん
2006/07/05(水) 23:19:320098前937
2006/07/05(水) 23:20:14[2] 問題文:
・100個のノードを生成する
・ノードに重みを適当に点ける(1〜100)
・任意のノードペアを選び、重みの和を取り、重みの和が100以上のノードペアにリンクを張る
・それぞれのノードの持つリンクの数を計算する
・リンクの数の分布
(リンクが1つ・・・○○、リンクが2つ・・・○○、・・・みたいな)
[3] 環境:[Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語
[4] 期限:一応ないので焦りませんが、早目がうれしいです。
[5] その他の制限:どんな方法を使っても大丈夫です。
後ろの方だったので再レスです。
0099デフォルトの名無しさん
2006/07/05(水) 23:21:43[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日 正午
荒れ気味のようですが・・・
よろしくお願いします
01009
2006/07/05(水) 23:21:55各行にある個数は固定です
0101デフォルトの名無しさん
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などまでやりました
0102976
2006/07/05(水) 23:30:24というか、CかC++か、はっきり書かずに申し訳ないです。
もしかしたらCかもしれません・・・。
0103デフォルトの名無しさん
2006/07/05(水) 23:32:29あ、うん・・・
お前の気持ちは実に良く分かった
だから、今の所はもうおとなしくしていたほうがいい…
0104デフォルトの名無しさん
2006/07/05(水) 23:33:04わからないの?
0105デフォルトの名無しさん
2006/07/05(水) 23:34:06こういうこと?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2256.txt
0106デフォルトの名無しさん
2006/07/05(水) 23:35:35もう、いいから
0107デフォルトの名無しさん
2006/07/05(水) 23:35:36int main(void)
{
printf("しー!静かに!");
return 0;
}
0108デフォルトの名無しさん
2006/07/05(水) 23:37:36どっちでもいい。
0109デフォルトの名無しさん
2006/07/05(水) 23:41:12>>103
0110デフォルトの名無しさん
2006/07/05(水) 23:41:55>>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;
}
0111デフォルトの名無しさん
2006/07/05(水) 23:45:39いや、その・・・do-whileを使って下さい・・・おながいします
0112デフォルトの名無しさん
2006/07/05(水) 23:46:15int 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;
}
0113デフォルトの名無しさん
2006/07/05(水) 23:53:570114デフォルトの名無しさん
2006/07/05(水) 23:55:220115デフォルトの名無しさん
2006/07/06(木) 00:07:560116デフォルトの名無しさん
2006/07/06(木) 00:18:29完璧に理解できてないのであれですが、たぶんあってます
本当にありがとうございます
また何かあったらレスしますので、よろしくおねがいします
俺も早く手伝う側に回りたい・・・
0117デフォルトの名無しさん
NGNG>最後の方に書いたためレスがつかなかったので
http://pc8.2ch.net/test/read.cgi/tech/1151158759/981
が見えないなら死ね。
0118976
2006/07/06(木) 00:22:43解答ありがとうございます。
もし、また今度わからないことがあったら、曖昧な部分は、はっきりさせてから
質問します。
それでは、お騒がせしました。
0119デフォルトの名無しさん
NGNGまた中学生レベルの数学も知らない(ry
0120デフォルトの名無しさん
2006/07/06(木) 00:34:31さすがにそのコードじゃ見向きもされんだろう
0121デフォルトの名無しさん
2006/07/06(木) 00:43:36わざわざrejectされるコードを書いておきながら、無視されたら逆切れですか。
思った以上に子供のようだ。
0122デフォルトの名無しさん
2006/07/06(木) 00:46:10#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;
}
0123デフォルトの名無しさん
2006/07/06(木) 00:48:04>>90
0124デフォルトの名無しさん
2006/07/06(木) 00:50:22馬鹿が
0125デフォルトの名無しさん
2006/07/06(木) 00:51:02>>90
0126デフォルトの名無しさん
NGNGコードの意味がわからないくせに選別するようなクズに配慮する必要はありませんから。
0127デフォルトの名無しさん
2006/07/06(木) 01:00:29>>90
0128デフォルトの名無しさん
2006/07/06(木) 01:01:390129デフォルトの名無しさん
2006/07/06(木) 01:06:10煽り、罵倒レスにはスルーが一番だな。レスが無くなったとたん静かになるしw
0130デフォルトの名無しさん
2006/07/06(木) 01:07:12今頃気づいた?
ソートしろって宿題にqsortを使うような奴だから。
なんでそんな解答をわざわざ書き込むのか理解不能。
0131デフォルトの名無しさん
2006/07/06(木) 01:07:38ということにしたくて必死ですねw
0132デフォルトの名無しさん
2006/07/06(木) 01:08:39中学生レベルと中学生の区別が付かないかわいそうな人ですか?
0133デフォルトの名無しさん
2006/07/06(木) 01:09:57ソートしろって宿題にqsort使うと何か問題あるの?
0134デフォルトの名無しさん
2006/07/06(木) 01:10:04>>90
0135デフォルトの名無しさん
2006/07/06(木) 01:10:54日本語が理解できないならもう黙ってろ
0136デフォルトの名無しさん
2006/07/06(木) 01:11:000137デフォルトの名無しさん
2006/07/06(木) 01:16:010138デフォルトの名無しさん
2006/07/06(木) 01:18:51この程度じゃ無理だよ・・・
0139デフォルトの名無しさん
2006/07/06(木) 01:19:160140デフォルトの名無しさん
2006/07/06(木) 01:19:40お 前 が 言 う な
0141デフォルトの名無しさん
2006/07/06(木) 01:24:01|
|
|
/V\ ,J
/◎;;;,;,,,,ヽ
_ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
| Hit!
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ そんなエサで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
0142デフォルトの名無しさん
2006/07/06(木) 01:25:27>>90
0143デフォルトの名無しさん
2006/07/06(木) 01:31:540144デフォルトの名無しさん
2006/07/06(木) 01:32:04>>90
0145デフォルトの名無しさん
2006/07/06(木) 01:40:13誰か>>33も頼む
0146デフォルトの名無しさん
2006/07/06(木) 01:41:220147デフォルトの名無しさん
2006/07/06(木) 01:43:340148デフォルトの名無しさん
2006/07/06(木) 02:11:44お 前 が 言 う な
0149デフォルトの名無しさん
2006/07/06(木) 02:15:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2258.txt
ちなみに、実行例の結果が間違っています(かけ算)。
0150デフォルトの名無しさん
2006/07/06(木) 02:16:27どなかた>>52もお願いします・・・。
0151デフォルトの名無しさん
2006/07/06(木) 02:19:09http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2259.txt
スマソ。実数型変数と条件にあったので直した。でもこれじゃ小数点以下が
表示されないから。実行例に合わせるとこうなるので。
0152151
2006/07/06(木) 02:21:33-t.im = z.im * w.re + z.re + w.im;
+t.im = z.im * w.re + z.re * w.im;
寝ぼけてたごめん。実行例合ってた。テポドンが落ちてこないかと
心配で眠れないので起きてたんです。
0153デフォルトの名無しさん
2006/07/06(木) 04:12:23こんな大物を直前に持ってくるなボケ。
だいたいこの程度が自分でできねえならいますぐ退学しろ。
0154デフォルトの名無しさん
2006/07/06(木) 04:15:29マンドクサ('A`)
神が降臨するまで待てよ。永遠にな。
0155デフォルトの名無しさん
2006/07/06(木) 04:33:19待ってろぉ、俺が今やっている、けど期待はするな
一応、6日中に出せれば良いんだよな?
0156デフォルトの名無しさん
2006/07/06(木) 04:38:400157デフォルトの名無しさん
2006/07/06(木) 04:46:50>>33も(ry
急いでるみたいなので、手直しせずにそのまま回答。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2260.txt
#これって防御の意味あるのか?
前スレの簡易DBの続きは、全くやる気無いので、自分でなんとか
してください。>質問した人
0160デフォルトの名無しさん
2006/07/06(木) 06:30:220161デフォルトの名無しさん
2006/07/06(木) 08:29:39http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2262.c
これでええやろか・・・一応13の要素を取り込んだ、はず
0162デフォルトの名無しさん
2006/07/06(木) 09:22:02http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2263.c
一部不適切だったんで訂正
016352
2006/07/06(木) 09:41:47ありがとうございますっっ!
もう少しだけ時間に余裕が出来たので、
独自の要素の追加にも挑戦してみようと思います
>>156
う・・・、問題文そのままコピペでしたので、
恐らく耐久力のコピペだと思います・・・
0164デフォルトの名無しさん
2006/07/06(木) 10:00:44ういっ、かなり粗いソースだが、所々を別々に関数にして重複している箇所とか
すっきりさせられるところはあるのだが、面倒だし急いでいるかもしれんので
それで勘弁。というか、丸投げだから細かいことは良いかw
01659
2006/07/06(木) 10:42:1411.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
□のようにスペース一個分、桁が少ないときに
出力がずれてきてしまいます。
この対処は上のプログラムをどのように変えればいいでしょうか
0166デフォルトの名無しさん
2006/07/06(木) 10:43:031は素数じゃない希ガス
0167デフォルトの名無しさん
NGNG#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;}
0168デフォルトの名無しさん
2006/07/06(木) 11:25:33[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と書く。*/
0169デフォルトの名無しさん
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] その他の制限:ポインタは習ってません
お願いします!
0170デフォルトの名無しさん
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);
お願いします
0171デフォルトの名無しさん
NGNG元の文字種の範囲が不明。英大文字限定なのかそうでないのか。
0172デフォルトの名無しさん
2006/07/06(木) 12:41:08すいませんわかりづらくて・・・
0173デフォルトの名無しさん
2006/07/06(木) 12:57:12なにそれ。分からんわ
0174デフォルトの名無しさん
NGNGわかるかボケ!
0175もはもは
2006/07/06(木) 13:03:321次元配列に 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の数の個数
を格納するようにし、それらを出力するプログラムを作成せよ。
よろしくお願いします。
0176デフォルトの名無しさん
NGNG>>32
0177デフォルトの名無しさん
2006/07/06(木) 13:06:32# 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;
}
0178177
2006/07/06(木) 13:10:00数字が入力に含まれる可能性は考慮したが、@は無いと仮定した。
0179デフォルトの名無しさん
2006/07/06(木) 13:18:420180デフォルトの名無しさん
2006/07/06(木) 13:32:42入力チェックするんなら、scanf使うのやめようよ。
0181デフォルトの名無しさん
2006/07/06(木) 13:37:25それcを初期化する前に参照しちゃってるよ。
0182デフォルトの名無しさん
2006/07/06(木) 13:43:57どんな値が入っていても正しく動く、というちょっとしたネタ。
0183デフォルトの名無しさん
2006/07/06(木) 14:00:190184デフォルトの名無しさん
2006/07/06(木) 14:04:200185デフォルトの名無しさん
2006/07/06(木) 14:05:43@一応レポートの課題なんでおねがいします。
0186デフォルトの名無しさん
2006/07/06(木) 14:08:020187デフォルトの名無しさん
2006/07/06(木) 14:08:540188デフォルトの名無しさん
2006/07/06(木) 14:10:03ごめいわくかけてすみません
0189デフォルトの名無しさん
2006/07/06(木) 14:40:59LinuxでC言
以下の条件で入力された2から1000までの全ての素数を求めるプログラムを作りなさい。
【条件】
・素数を配列に格納すること
・素数を求める関数 void prime_number(int *p)を作ること
※ただし int *pは、素数を入れる配列のポインタ
明日までなので早めにお願いしたいです。
0190 ◆qbNb6Ma0MY
2006/07/06(木) 14:41:09[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] よくわからないので簡単なプログラムでおねがいします。
0191デフォルトの名無しさん
NGNGほいさっさ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2264.txt
0192 ◆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);
}
よろしくお願いします。
0193デフォルトの名無しさん
NGNG>結果を書き出すファイル
の指定方法は?
0194 ◆CUZLM8U3vI
2006/07/06(木) 15:16:560195デフォルトの名無しさん
NGNG>>1
0196デフォルトの名無しさん
2006/07/06(木) 15:28:09[2] 問題文:
(1) 1桁の乱数を得るとき、その総和が100を超えるまで表示する。超えたら終了する。
表示は得られた乱数とそこまでの総和を表示する。
(2) 構造体で定義した年齢(整数)、氏名(アルファベット)、趣味(アルファベット)のデータをn個入力した後、 趣味を入力したら同じ趣味の人の氏名を表示し、年齢を入力したら同じ年齢の人の氏名を表示するプログラムを作成せよ。 人数は数人でよい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C
[4] 期限:できればすぐ!
[5] その他の制限:特にありません。宜しくお願い致します。
0197 ◆CUZLM8U3vI
2006/07/06(木) 15:32:19/* 計算するプログラム */
#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);
}
}
0198デフォルトの名無しさん
NGNG(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;}
0199 ◆CUZLM8U3vI
2006/07/06(木) 15:34:43二つの整数の最大公約数を計算する関数gcdを作成しなさい
よろしくお願いします。
0200デフォルトの名無しさん
2006/07/06(木) 15:40:28有難うございます!
0201デフォルトの名無しさん
2006/07/06(木) 15:40:43>return gcd(n,x);
を
>return gcd(m,x);
にすれば大体大丈夫。
0202デフォルトの名無しさん
2006/07/06(木) 15:44:29ワロタ
0203 ◆mfl6EhR6DM
2006/07/06(木) 15:45:24[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
0204 ◆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文、ファイルの読み込み を習いました。
0205デフォルトの名無しさん
NGNGint gcd(int a,int b){return (a%b)==0?b:gcd(b,a%b);}
0206デフォルトの名無しさん
NGNG>・素数を求める関数 void prime_number(int *p)を作ること
>※ただし int *pは、素数を入れる配列のポインタ
とてもじゃないがこんなクソ仕様にまともに回答する気になれない。
0207 ◆CUZLM8U3vI
2006/07/06(木) 15:54:060208 ◆CUZLM8U3vI
2006/07/06(木) 16:10:57#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)
{
0209 ◆CUZLM8U3vI
2006/07/06(木) 16:12:08関数times_allを作成しなさい
よろしくお願いします・・・。
0210196
2006/07/06(木) 16:18:50>>198のフローチャートも教えて頂けますでしょうか
0211デフォルトの名無しさん
2006/07/06(木) 16:19:03void
times_all(int data[], int n, int times)
{
int i;
for (i = 0; i < n; i++) {
data[i] *= times;
}
}
0212デフォルトの名無しさん
NGNGvoid times_all(int data[],int n,int times){while(--n>=0)data[n]*=times;}
0214デフォルトの名無しさん
NGNG死ね。
0215196
2006/07/06(木) 16:22:22すいません><
0216デフォルトの名無しさん
NGNG#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;}
0217 ◆qbNb6Ma0MY
2006/07/06(木) 16:56:47フフフフフと文字がでてきて比較できないです><
0218デフォルトの名無しさん
NGNGVC.NET2003で動作確認済み。
0219 ◆CUZLM8U3vI
2006/07/06(木) 17:05:30ああああごめんなさい
再帰を使わないといけない問題でした
ごめんなさい
0220デフォルトの名無しさん
2006/07/06(木) 17:07:13�Ahttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2265.c
これでいい?
0221デフォルトの名無しさん
2006/07/06(木) 17:13:13しかも良くわからないチェックシステム作るし。
時間のチェックが厳しいですよとかチェックサムを調べてコピーかどうかを見ますよとか。
怖くて滅多な操作が出来ない。
0222 ◆mfl6EhR6DM
2006/07/06(木) 17:25:09おおおお><
220さん、ありがとうございます!!
0223デフォルトの名無しさん
NGNGどうしても○○を使わせたいなら「何でもいいから○○を有効に使ったプログラムを作れ」
みたいな課題を出せばいい。
0224デフォルトの名無しさん
2006/07/06(木) 17:42:230225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
2006/07/06(木) 17:43:53というのは良いかもね。どんどん自発的に調べて学習しようとする生徒と
そうでない生徒の差がはっきりしてくるしね
0227220
2006/07/06(木) 17:49:18�B ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2266.c
0228デフォルトの名無しさん
2006/07/06(木) 18:39:25[2]五人の学生の数学と英語と国語の成績を2次元配列に格納して、点数表と各人の平均点と各科目の平均点を表示するプログラムを作れ
全科目全員の点数を表示する関数,人毎の平均を計算し表示する関数,科目ごとの平均を計算し表示する関数を使うこと
[3.1]windowsXP
[3.2]bcc ver5.5
[3.3]c
[4]7/11
[5]上記の通り関数を使うそうです。点数は初期化で与えるとのこと。
0229デフォルトの名無しさん
2006/07/06(木) 19:05:30[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] その他の制限:
0230デフォルトの名無しさん
2006/07/06(木) 19:24:27[2] 問題文(含コード&リンク):
「abcde」・「aa」・「aab」・「aaa」・「abbcdef」の順番で表示される5つの文字列を
アルファベット順に表示されるようにしなさい。 ただし、単純に順番を直しただけの文字列を「表示する」のは駄目である。
アルファベット順に直す過程のプログラミングを入れること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:明日の午前中までです。
[5] その他の制限: 特にありませんが私はかなり初心者です…orz
もし解いてくださる方がいてくださったらお願いします。
0231デフォルトの名無しさん
2006/07/06(木) 19:34:11キモチ悪い。
0232デフォルトの名無しさん
2006/07/06(木) 19:36:49http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2267.txt
0233デフォルトの名無しさん
NGNG>n=2 個の0 とn=2 の8 が表示されるような
意味ワカンネ
0234デフォルトの名無しさん
2006/07/06(木) 19:53:04おいっ、本当にいい加減にしとけよ。どこの教員か指導員か講師か知らんが
悪質過ぎ。自分の落ち度を指摘されてこんな場所で罵倒を続けていて恥ずかしくないか?
昨日みたいな荒れた状況にするわけにはいかないんで、今後はお前をスルーするが。
そろそろ強制IDも考えてもらわんとな。あとマジで悪質な煽りにはアク禁を要請する。
0235デフォルトの名無しさん
2006/07/06(木) 20:05:42>>90
0236デフォルトの名無しさん
2006/07/06(木) 20:06:58>今後はお前をスルーするが。
まず>>234を書く前にスルーしろ。
0237デフォルトの名無しさん
NGNG丸投げ厨が余所のスレに漏れてなければ荒れてるとは言わないし。
0238デフォルトの名無しさん
2006/07/06(木) 20:14:150239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
2006/07/06(木) 20:21:41>>90
>>238
だろうね。2chで相手の素性が分からず、発言しても直接攻撃を受けないことを良いことに
煽ってくるが、実社会で人とまともに接していない奴か、自分勝手を押し通して
孤立している職員か生徒だろうね。とにもかくにも、>>231に気持ちよく思われなくても問題ないし
>>231のご機嫌取りなんてする必要もないことに気づいて欲しいね。
0241デフォルトの名無しさん
2006/07/06(木) 20:22:110242デフォルトの名無しさん
2006/07/06(木) 20:23:24>>90
0243デフォルトの名無しさん
NGNG習うよ。2次方程式の解の公式にも入ってるし。
0244デフォルトの名無しさん
2006/07/06(木) 20:23:570245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
2006/07/06(木) 20:26:52>とにもかくにも、>>231に気持ちよく思われなくても問題ないし
>>>231のご機嫌取りなんてする必要もないことに気づいて欲しいね。
そのわりには、ほら、君の顔、真っ赤だよ。
0247デフォルトの名無しさん
2006/07/06(木) 20:26:54ぉぉ ちょっと思い出した
√2とかも暗記した記憶がある・・・
0248デフォルトの名無しさん
2006/07/06(木) 20:27:410249デフォルトの名無しさん
2006/07/06(木) 20:28:19n の因数って n とか n/2 とか含まないのか?
n が素数かどうかを調べるには
高々√n までの素数で割れるかだけ調べればいいけど。
0250デフォルトの名無しさん
2006/07/06(木) 20:28:21お前も物好きだなw
0251デフォルトの名無しさん
2006/07/06(木) 20:34:22[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文を使うということ以外には特にはありません
よろしくお願いします。
0252デフォルトの名無しさん
2006/07/06(木) 20:38:550253デフォルトの名無しさん
2006/07/06(木) 20:39:22case 'r':
printf("red");
break;
case 'g':
printf("green");
break;
case 'b':
printf("blue");
break
default:
printf("no color");
}
0254デフォルトの名無しさん
2006/07/06(木) 20:50:370255デフォルトの名無しさん
2006/07/06(木) 20:58:07Root.type に文字列入れるという設計が気に入らない
0256デフォルトの名無しさん
2006/07/06(木) 21:04:06いつものパターン。
0257デフォルトの名無しさん
2006/07/06(木) 21:21:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2269.txt
0258デフォルトの名無しさん
2006/07/06(木) 21:30:12丁寧にコメントまで…本当にありがとうございます!
02599
2006/07/06(木) 21:31:0011.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
□のようにスペース一個分、桁が少ないときに
出力がずれてきてしまいます。
この対処は上のプログラムをどのように変えればいいでしょうか
0260デフォルトの名無しさん
2006/07/06(木) 21:37:16%2.2fにする
0261デフォルトの名無しさん
2006/07/06(木) 21:39:46%5.2f じゃないのか?
02629
2006/07/06(木) 21:48:46□のようにスペース一個分、桁が少ないときや
11.22 □2.22 22.44 ー2.22 ー2.12 33.34
のようにマイナスのときに
出力がずれてきてしまいます。
0263デフォルトの名無しさん
2006/07/06(木) 21:50:50スマソ よくわかってないで適当に答えた
0264デフォルトの名無しさん
2006/07/06(木) 21:54:38やる気の無い豚は死んでしまえ
0265デフォルトの名無しさん
2006/07/06(木) 21:55:46じゃあ%6.2fにして、スペース文字を削れば?いろいろ自分で試してみろよ。
0266デフォルトの名無しさん
2006/07/06(木) 21:58:02いようが100個続いていようが、書式指定にはスペース1個でいいからな。
0267デフォルトの名無しさん
2006/07/06(木) 22:02:34[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] その他の制限:関数を使って作成する。
0268デフォルトの名無しさん
2006/07/06(木) 22:05:01% 5.2f という風に、% と 5の間にスペースを一個入れると、符号が離れて
印字されるようになるぞ。
0269デフォルトの名無しさん
2006/07/06(木) 22:21:45即レスありがとうございます。
ちょっと改良してコンパイル出来る状態にしてみたのですが
実行すると初っぱなから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;
}
}
0270デフォルトの名無しさん
2006/07/06(木) 22:21:49http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2272.txt
0271デフォルトの名無しさん
2006/07/06(木) 22:23:21真面目に講義聞いてりゃ分かる
0272デフォルトの名無しさん
2006/07/06(木) 22:28:08符号が離れるんじゃなくて、符号が正の時はスペースになるんだったorz
実は俺もよくわかってない。
0273デフォルトの名無しさん
2006/07/06(木) 22:29:06ありがとうございます!!
0274デフォルトの名無しさん
2006/07/06(木) 22:30:25サンクス、助かりました
0275デフォルトの名無しさん
2006/07/06(木) 22:31:570276デフォルトの名無しさん
2006/07/06(木) 23:01:03getcharじゃ駄目?
#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;
}
0277デフォルトの名無しさん
2006/07/06(木) 23:12:56出来ました!
こんなに早く解決したのも答えてくださった方々のおかげです。
ありがとうございました!
0278デフォルトの名無しさん
2006/07/07(金) 00:26:05[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] その他の制限: なし
どなたかよろしくお願いいたします。
0279デフォルトの名無しさん
2006/07/07(金) 02:12:10[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] その他の制限: 選択処理を使って。
お願いします。
0280デフォルトの名無しさん
2006/07/07(金) 02:17:04[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] その他の制限:なるべく初歩的なプログラムでお願いできればありがたいです。
0281デフォルトの名無しさん
2006/07/07(金) 02:21:19等比数列a,ar,ar*r,ar*r*r,・・・・・a*rのn乗について、arnをキーボードから入れ、それらの総和を求めるプログラムを作成する。
windows gcc c言語 お昼の2時まで
よろしくお願いします!
0282デフォルトの名無しさん
2006/07/07(金) 02:22:320283デフォルトの名無しさん
2006/07/07(金) 02:33:00アルゴリズムの検索してたら過去スレに同じ問題あったのだぜ?
0284デフォルトの名無しさん
2006/07/07(金) 02:38:490285デフォルトの名無しさん
2006/07/07(金) 03:18:50http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2275.c
不要な文は適当に削除しておいてw
0286デフォルトの名無しさん
2006/07/07(金) 03:20:12ってか、解は計算結果を数値で出さずに分数で表した方が良かったのかな?
まぁそうでも自分でやれるでそ
0287デフォルトの名無しさん
2006/07/07(金) 04:31:16[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
0288デフォルトの名無しさん
2006/07/07(金) 04:39:42[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
0289デフォルトの名無しさん
2006/07/07(金) 04:48:140290デフォルトの名無しさん
2006/07/07(金) 05:00:270291デフォルトの名無しさん
2006/07/07(金) 05:04:02http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2280.c
0292デフォルトの名無しさん
2006/07/07(金) 05:05:340293デフォルトの名無しさん
2006/07/07(金) 07:07:410294デフォルトの名無しさん
2006/07/07(金) 08:33:12#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;
}
0295デフォルトの名無しさん
2006/07/07(金) 08:34:49選択処理入れ忘れた
まあいいや
0296278
2006/07/07(金) 09:24:04過去スレ見てきました。
フラーリーのアルゴリズムは使われていないように見えるのですが、
今回の答えと一緒でしょうか?
0297デフォルトの名無しさん
2006/07/07(金) 09:29:03http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2281.txt
Cで書いてしまったが、C++でもコンパイルできると思う。
つーかC++のも一応作るからちと待て。
0298デフォルトの名無しさん
2006/07/07(金) 09:40:46http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2283.txt
これがC++版。
>>287は意味がよくわからんな。
0299デフォルトの名無しさん
2006/07/07(金) 10:16:01http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2284.txt
こんなのにしかならんな。カウンタの i で動作を変化させるというのが
どうも気にいらん。適当に直してくれ。
0300デフォルトの名無しさん
2006/07/07(金) 10:41:54[2] 問題文(含コード&リンク): Kruscal法を用いて最小木を求めよ。
図 http://s.pic.to/1uw91
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C
[4] 期限: 7月7日正午まで]
[5] その他の制限: (二次元配列を用いる。)
よろしくお願いします。
0301デフォルトの名無しさん
2006/07/07(金) 12:48:05今見た
間に合わなくてすまんかった
0302デフォルトの名無しさん
2006/07/07(金) 12:52:59一応、やってみてくれませんか?
0303デフォルトの名無しさん
2006/07/07(金) 14:08:26char 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言語のコメントがわかりません、わかる方コメントをお願いします。
0304デフォルトの名無しさん
2006/07/07(金) 14:33:130305デフォルトの名無しさん
2006/07/07(金) 14:56:28[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] その他の制限: とくにございません、おねがいします
0306デフォルトの名無しさん
2006/07/07(金) 15:34:12# 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);
}
0307デフォルトの名無しさん
2006/07/07(金) 17:38:43http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2287.c
漏れもやってみた。が、n=100 で r=5とか50の計算結果は不適切っす
原因は途中までの階乗の値がint型で扱える値を超えることなんだけど
その辺は俺の足りない頭じゃ解決できないっす orz
>>306のだと100C5の計算はできますね
0308デフォルトの名無しさん
2006/07/07(金) 20:19:25[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] その他の制限: 特に無し
0309デフォルトの名無しさん
2006/07/07(金) 21:00:48[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]特になし
0310デフォルトの名無しさん
2006/07/07(金) 21:04:05[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] その他の制限: なし
よろしくお願いします。
0311デフォルトの名無しさん
2006/07/07(金) 21:08:12出題者の質がいいね。
0312デフォルトの名無しさん
2006/07/07(金) 21:41:35[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桁以上の計算は結果がおかしくなりました。
初歩的なものかもしれませんが、よろしくお願いします。
0313デフォルトの名無しさん
2006/07/07(金) 21:44:560314デフォルトの名無しさん
2006/07/07(金) 22:06:24思ったより簡単でびっくりした。
#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");
}
}
0315312
2006/07/07(金) 22:54:19解答ありがとうございます。
今習ったのはint main(void) 〜 return(0)という形の
ものだけなのですが、main()というのはint main(void)の
代わりのものなんでしょうか?
0316デフォルトの名無しさん
2006/07/07(金) 23:00:10[2] 問題文(含コード&リンク):
しりとりするプログラムを作成せよ
入力はすべて標準入力から行う。
しりとりしたものが過去に出ていた場合はしりとりを成立させない。
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 明日
[5] その他の制限: 特にないです
0317デフォルトの名無しさん
2006/07/07(金) 23:41:10[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回しか講義でなかったのにこんな難しそうな課題が出ました。
参考サイトを見ても何を作って良いのか全く分かりません。
指針だけでも良いので誰か教えてください。
0318278
2006/07/08(土) 00:06:560319デフォルトの名無しさん
2006/07/08(土) 00:18:24単なる中継機能だけであれば、次のような機能を実装すればよい。
・サーバは、とあるポート(8080)でlistenする。
・ブラウザからの接続要求で、URLに含まれるサーバへのコネクションを張る(port80で)。
・ブラウザから受信したデータをそのままHTTPサーバに送信する。
・HTTPサーバから受け取ったデータをそのままブラウザに送る。
ブラウザはプロキシの設定でlocalhostの8080番を指定する。
複数クライアントに対応する場合は、forkでもthreadでもお好きなように。
0320デフォルトの名無しさん
2006/07/08(土) 00:58:38[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ポインタを使わないでお願いします!
0321デフォルトの名無しさん
2006/07/08(土) 01:02:34[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
0322デフォルトの名無しさん
2006/07/08(土) 01:04:29その前問の模範解答なり、あなたの解答なりはないの?
0323デフォルトの名無しさん
2006/07/08(土) 02:35:24合ってるかわかりませんが、一応やったのは↓です。
#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;
}
0324デフォルトの名無しさん
2006/07/08(土) 02:39:44>1〜6までの数字120個を可能な限りでたらめにキーボードから入力すると、20回の試行のうち
120回なのか20回なのかどっちだべ
0325デフォルトの名無しさん
2006/07/08(土) 04:02:25[2] 問題文(含コード&リンク):素数pを入力して、その位数を求めるプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 7/8
よろしくお願いします。
0326デフォルトの名無しさん
2006/07/08(土) 04:35:20ほい
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2295.c
0327326
2006/07/08(土) 04:36:52消しといておくれ
0328デフォルトの名無しさん
2006/07/08(土) 09:09:41別に竹石圭佑がゲイでもホモでもどーでもいいだろ。関わらずに無視すりゃ良いだけだし。
大体、ほっとけば勝手に犯罪起こして、また逮捕されて社会から消えるような野郎だしな。
0329デフォルトの名無しさん
2006/07/08(土) 11:10:41すいません(^_^;A
120回です。
お願いします!
0330デフォルトの名無しさん
2006/07/08(土) 11:16:20[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);
}
}
おながいします
0331デフォルトの名無しさん
2006/07/08(土) 11:22:21#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);
}
}
0332デフォルトの名無しさん
2006/07/08(土) 11:35:18[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文まではいきました。
0333デフォルトの名無しさん
2006/07/08(土) 12:34:13でもこのスレに少なくとも二人欲しい人がいるんだよなぁ。
同じ学校だったら困るよね?
0334デフォルトの名無しさん
2006/07/08(土) 13:11:03全く問題ないです。作っていただいたのを参考に自分で考えて作り直しますから。
何せ授業でプロキシについて全く役立つ説明がなかったもので・・・。
助かります。よろしくお願いします。
0335デフォルトの名無しさん
2006/07/08(土) 13:21:41じゃ、明日の夜までを目処に、forkパターンで作ってみる。
0336デフォルトの名無しさん
2006/07/08(土) 13:23:51お願いします。
0337ラムちゃん
2006/07/08(土) 13:52:31[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; /* 各教科の平均点算出 */
}
大好きだっちゃ♪
0338333
2006/07/08(土) 14:54:330339デフォルトの名無しさん
2006/07/08(土) 15:47:21[2]チェスのナイト(knight)という駒は、将棋の桂馬の動きを4方向に拡張した下表のよう な動きができる。
m*nのマス目のチェス盤に対して解の求め方を、
1.出発点に戻らなくて良いので、全地点を巡回する
2.全地点を巡回してから出発点に戻る解を一つ求める
3.全地点を巡回してから出発点に戻る解を全て求める
の順序で付け加えていき、プログラムを完成させなさい。
(ナイトのスタート地点はどこでもよいが、四隅のどこかにして おけばよい。
答えの表示は、m*nのマス目に訪問順番を書き込んだ形にせよ。)
[3]
[3.1]mac
[3.2]gcc
[3.3]C
[4]7月11日
[5]ポインタは使わず
お願いします
0340デフォルトの名無しさん
2006/07/08(土) 16:24:140341デフォルトの名無しさん
2006/07/08(土) 16:36:530342デフォルトの名無しさん
2006/07/08(土) 16:39:22いや、桂馬は2方向。
0343デフォルトの名無しさん
2006/07/08(土) 16:42:57すまん 寝ぼけてた
(桂馬×4)方向 だな
0344デフォルトの名無しさん
2006/07/08(土) 17:24:22ありがとうございます。その調子でお願いします。
0345333
2006/07/08(土) 17:42:04ことが判明したため、挫折 orz
0346デフォルトの名無しさん
2006/07/08(土) 17:58:501 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くらいのサイズが適当か?
でも、あんまり小さいと種発点に戻る解があるかどうか。
ちょっと風呂入ってくる。
0347デフォルトの名無しさん
2006/07/08(土) 18:06:54ポインタなしだと、どうつくったらいいやら想像つかね
0348346
2006/07/08(土) 18:07:58#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;
0349デフォルトの名無しさん
2006/07/08(土) 18:09:21残念です。
0350デフォルトの名無しさん
2006/07/08(土) 18:10:45まぁ、グローバルに配列でメモリをとっておけば、関数引数とかにポインタを使わずに書くことはできる。
もちろん、本質的にはポインタを使っていないとはいえないけど。
0351デフォルトの名無しさん
2006/07/08(土) 18:23:07一次元配列を二次元配列に見立てればできる。
まあその場合でもarray[1024];とかとっとく必要があるが。
0352デフォルトの名無しさん
2006/07/08(土) 19:03:07もしm,nをユーザーに選ばせるなら、
ポインタを使わずにどうやって入力さ
せるかが悩みの種だなw
0353デフォルトの名無しさん
2006/07/08(土) 20:20:06#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;
}
0354デフォルトの名無しさん
2006/07/08(土) 20:26:51あと、コンパイルエラー。
print_matrix() の中の、for(..) { ← この中括弧削除してください。
5x5 だと、
全部で 152パターン (鏡面対称は除去)
一周して (0,0) へ戻ってくるパターンは無し。
6x5 だと、
全部で 4285パターン
一周して (0,0) へ戻ってくるのが 16パターン。
6x6だと、5分待っても処理が終わらないので中断した。
ちなみに、うちの環境は Pen||| 3GHz, メモリ1Gbyts;
03551234 ◆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ページにあります。
0356デフォルトの名無しさん
2006/07/09(日) 01:14:53#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;
}
0357デフォルトの名無しさん
2006/07/09(日) 01:31:41[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; /* 各教科の平均点算出 */
}
0358デフォルトの名無しさん
2006/07/09(日) 01:41:070359Javaはイイ
2006/07/09(日) 01:49:42遅かった orz
一応乗せておきます。。。
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1#content_1_0
0360デフォルトの名無しさん
2006/07/09(日) 01:56:03void encode(char a[], char b[]) {
int i = 0;
while(a[i] != NULL) {
++a[i++];
}
b = a;
}
0361278
2006/07/09(日) 02:04:10月曜日まででかまいません
0363デフォルトの名無しさん
2006/07/09(日) 02:16:050364デフォルトの名無しさん
2006/07/09(日) 02:32:14橋を求めるアルゴリズムは分る?
O(E)ですべて求められるらしいけど、私は知らないので
遅いアルゴリズム(O(VE))になってしまう。
0365デフォルトの名無しさん
2006/07/09(日) 03:28:58[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] 単位ギリギリだったんでバイトオーダーとかバイナリとかわけがわかりません・・・。
どうか御願いします。
0366デフォルトの名無しさん
2006/07/09(日) 03:35:04*((char *)(&data)) == 0x00
0367デフォルトの名無しさん
2006/07/09(日) 03:41:21有難う御座います。
0368デフォルトの名無しさん
2006/07/09(日) 03:43:300369デフォルトの名無しさん
2006/07/09(日) 04:29:47ちょっと微妙だね。
0370デフォルトの名無しさん
2006/07/09(日) 04:33:20がありえるはず。
0371デフォルトの名無しさん
2006/07/09(日) 04:34:230372デフォルトの名無しさん
2006/07/09(日) 04:53:33やろうと思ったけど、自分の知ってるフラーリーのアルゴリズムと違っていたのでやめた。
0373デフォルトの名無しさん
2006/07/09(日) 05:05:33そのふらーりーあるごりずむ
0374デフォルトの名無しさん
2006/07/09(日) 10:14:09∈これなんて記号?
0375デフォルトの名無しさん
2006/07/09(日) 10:33:23じゃなくて集合の要素である。
0376278
2006/07/09(日) 10:52:47すみませんわかりません・・・。
遅くても全然かまいません。
>>372
授業で習ったのはこれなんですが、特にこの通りにやる必要は
ないので、お願いします。
0377デフォルトの名無しさん
2006/07/09(日) 11:27:3103781234 ◆bUBxjLJPpU
2006/07/09(日) 11:39:560379デフォルトの名無しさん
2006/07/09(日) 12:06:43環境条件から考えるとif文の条件部に入れるべきは0だろ
>>369
>>371が指摘したように
1バイト=char≦short≦int≦long
だったと思う
したがって >>370 の言うようなlongに至るまで全て1バイトの場合も……
それどころか1バイト=1オクテットとかさえ
0380379
2006/07/09(日) 12:12:29「したがって」は余計だった
もし 1バイト≦char≦short≦int≦long だったとしてもそうなるね
0381デフォルトの名無しさん
2006/07/09(日) 12:29:37sizeof(char)は常に1を返すけど。
0382デフォルトの名無しさん
2006/07/09(日) 12:32:370383デフォルトの名無しさん
2006/07/09(日) 12:35:120384デフォルトの名無しさん
2006/07/09(日) 12:57:530385デフォルトの名無しさん
2006/07/09(日) 12:59:240386デフォルトの名無しさん
2006/07/09(日) 12:59:35標準C規格だとlongの幅は最低限32ビットあるね
longが1オクテットというのは少なくとも標準規格ではありえないのか
0387デフォルトの名無しさん
2006/07/09(日) 13:11:23int main(void){
int x=100,dx=10;
x+=dx;
return 0;
}
0388デフォルトの名無しさん
2006/07/09(日) 15:43:24つづき
/*
これは C++builder でのみ使用してください!!!!!!!!!!!
*/
0389389 ◆VJk5KzZ21U
2006/07/09(日) 15:59:17[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
0390デフォルトの名無しさん
2006/07/09(日) 16:13:45# 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;
}
0391389 ◆VJk5KzZ21U
2006/07/09(日) 17:47:04おお、どうも有難う御座いました!
何とかポインタを理解できるよう頑張ります。
0392デフォルトの名無しさん
2006/07/09(日) 18:26:37[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まで
よろしくお願いします
0393デフォルトの名無しさん
2006/07/09(日) 18:46:23[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] その他の制限:クラスなどを使って、変更に強い仕様に。
自分でやってたら途中からこんがらがってきて・・。よろしくお願いします。
0394デフォルトの名無しさん
2006/07/09(日) 20:30:53>・5教科の総合得点が最も高かった学生に100万円の奨学金が支給される。
同得点の場合が不明
0395デフォルトの名無しさん
2006/07/09(日) 21:07:18[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
0396デフォルトの名無しさん
2006/07/09(日) 21:33:59int 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);
0397デフォルトの名無しさん
2006/07/09(日) 21:41:36[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] 期限: 明日
お願いします。
0398デフォルトの名無しさん
2006/07/09(日) 21:43:54ちょww Producy Keyww
0399デフォルトの名無しさん
2006/07/09(日) 21:51:160400デフォルトの名無しさん
2006/07/09(日) 22:15:22すいません、何をしているのかよくわかりません。
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しか出力されないのですが。
使い方がおかしいのでしょうか?
0401デフォルトの名無しさん
2006/07/09(日) 22:25:29なんか、クォリティー高いのがいるぞーwww
http://pc8.2ch.net/test/read.cgi/hack/1148626368/
0402デフォルトの名無しさん
2006/07/09(日) 22:25:31そんなこというからプログラム組んで確認したじゃないか。
使い方が間違ってるはず。こっちではちゃんとでた。
そういや、微妙にC++方式使ってたのでその点だけ訂正。
-int m = 1;
-for( int flag = 1 << 30 ; flag ; flag >>= 1 ) {
+int m = 1, flag;
+for( flag = 1 << 30 ; flag ; flag >>= 1 ) {
0403デフォルトの名無しさん
2006/07/09(日) 22:31:12本当に申し訳ございませんが、使い方がわかりません。
頭の-や+って何なのでしょうか?
こんなの初めて見るので・・
0404デフォルトの名無しさん
2006/07/09(日) 22:38:030405デフォルトの名無しさん
2006/07/09(日) 22:52:47[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
0406405
2006/07/09(日) 22:54:25誤 [3.2] コンパイラ名とバージョン: Visual Studio C++ 6.0
正 [3.2] gcc
でした;;
0407デフォルトの名無しさん
2006/07/09(日) 23:00:17なんでOSがWindowsなんだ?
0408デフォルトの名無しさん
2006/07/09(日) 23:00:40for(i=0;i<p;i++)
{
a = (i,(p-1),p); // 関数名が無い。この「式」ではpが返ってくるのは当たり前。
printf("%d\n",a);
}
0409デフォルトの名無しさん
2006/07/09(日) 23:07:53cat.cとかで検索したらソース転がってるべ
0410278
2006/07/10(月) 00:19:33火曜日まででけっこうです。
フラーリーのアルゴリズムは、違うやり方があればそれでもかまいません。
0411デフォルトの名無しさん
2006/07/10(月) 00:36:45#define DELETE(x);{ if( x != NULL ){ delete x; }x = NULL; }// C++スタイルのメモリ解放
#endif
をグローバルで宣言して使ったらerror C2064: 1 引数を取り込む関数には評価されません。
とでました何がおかしいですか?
0412405
2006/07/10(月) 00:49:07すいません…Linuxですね。ちなみにRed Hutです。
>>409
それっぽいファイル名を適当に入れて検索かけてみます。
ただ当方Cを習い初めで「猫でもわかるC言語」を読み通した程度の知識しかなく、
関数なども調べながらなのでなかなか難しい現状ですorz
0413デフォルトの名無しさん
2006/07/10(月) 00:57:00('A`)
0414デフォルトの名無しさん
2006/07/10(月) 00:58:55んじゃ、これで
#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;
}
0415デフォルトの名無しさん
2006/07/10(月) 00:59:42>グローバルで宣言
この時点でおかしいわけだが
マクロを使用している部分のソースも欲しいところ
0416デフォルトの名無しさん
2006/07/10(月) 01:01:02> [3.3] 言語: C++
>当方Cを習い初めで「猫でもわかるC言語」を読み通した程度の知識しかなく、
ォィ
0417デフォルトの名無しさん
2006/07/10(月) 01:35:16ひょっとして環境はすべて間違い?
0418405
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++と書き込みました。
0419デフォルトの名無しさん
2006/07/10(月) 02:06:55Windows しかないなら、 Cygwin をインストールした方がいいよ。
0420デフォルトの名無しさん
2006/07/10(月) 02:14:39それ授業単元名からして間違ってないか?
てなことは置いといて、これまで何をどう習ってきたのかがわからないと
説明が書けないよ。時間もないし。時間があるなら、
ttp://www.amazon.co.jp/gp/product/475614389X/
とかから適当にでっち上げることも出来たのに。もちろん、君自身が、だけど。
ご愁傷様。もっと早く来ればよかったね。
0421405
2006/07/10(月) 02:29:29情報ありがとうございます。
調べてみます。
>>414
遅れましたがありがとうございます。
自分なりにこのソースを行ごとに考えてみたのですが、
L4の int c;
はchar型じゃないのかと思ったのですがintで合ってるのでしょうか?
失礼でしたらスミマセン;;
>>420
OSの仕組みを学ぶということで
「オペレーティングシステムの役割と構成,動作原理等について学び,
オペレーティング・システムの全体像を理解することを目的とする。」
とシラバスにはあります。
0422420
2006/07/10(月) 02:33:51この程度のコードで十分なのかどうなのか不明だけど。
じゃ頑張って。俺寝るから。
#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;
}
0423デフォルトの名無しさん
2006/07/10(月) 02:38:21EOF受け取る必要があるので、intでおk
むしろcharだとここのみんなからぼっこぼこですお
あとシステムコール使用必須だったのね、読んでなかったスマソ
0424420
2006/07/10(月) 02:39:18mycat foo.txt(ファイルをオープンして読み書きするパターン)
ls | mycat(パイプで結合された標準入力から読み込むパターン)
mycat < foo.txt(標準入力をリダイレクトされたパターン)
mycat(端末の標準入力から読み込むパターン)
あたりに関して説明するといいかもよ。
じゃ寝る。
0425デフォルトの名無しさん
2006/07/10(月) 02:50:39(;・∀・) シランカッタ
0426405
2006/07/10(月) 02:57:47なるほど。>>425のような仕様によりこれで良かったのですね。
ありがとうございます。
>>422>>424
何から何まで…どうもです゚・(ノД`)・゚・
このソースに僕自身がやや追いついていない感がありますが頑張って一行一行咀嚼しながらレポ書きます(`・ω・´)
0427デフォルトの名無しさん
2006/07/10(月) 06:48:09n=r,r=0,r=1の条件で再帰を止めてnか1を戻して足していくようにするんだったんだね・・・
答えた後になって気づいたが、今からじゃもう遅いか・・・
0428デフォルトの名無しさん
2006/07/10(月) 09:14:11#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()で実数に変換するにはどうすればいいですか?
0429デフォルトの名無しさん
2006/07/10(月) 10:40:46各自臨戦態勢へ移行せよ。
0430デフォルトの名無しさん
2006/07/10(月) 11:26:57[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] その他の制限:とくになし
分かりづらい説明で申し訳ありませんが、出来そうな方よろしくお願いします。
仕様が曖昧な為、正確でなくても構いません。似たような処理が完成している
ものであれば問題はないのです…
0431デフォルトの名無しさん
2006/07/10(月) 11:40:25高校でやった直線の方程式のベクトル表示なんだけど。
0432デフォルトの名無しさん
2006/07/10(月) 11:53:46あまり自信がないが。
# 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;
}
0433432
2006/07/10(月) 12:00:59これでも正しいけど、どうせならこっちで。
> if(get_coord(&x0, &y0) < 0 || get_coord(&x1, &y1) < 0)
0434デフォルトの名無しさん
2006/07/10(月) 12:53:57Input coordinate: (20,40)
Input coordinate: (120,75)
と入力すると、
(30,43)
(40,47)... のようにズラズラーっと表示されました。
まさに期待したとおりの公式です。
int y = y0 + (y1 - y0) * (x - x0) / (x1 - x0);
ここの部分がミソですね!数学がさっぱりな僕にはこういうのが
スラスラっと出来る人がうらやましス もっと時間が掛かると思って
いたのですが(; ̄ー ̄) >>432-433 ありがとうございました。
0435デフォルトの名無しさん
2006/07/10(月) 13:15:280436デフォルトの名無しさん
2006/07/10(月) 14:08:07[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の学習です。
誰か助けてください‥。お願いします
0437デフォルトの名無しさん
2006/07/10(月) 14:45:480点と100点はどう扱えばいいの?
0438デフォルトの名無しさん
2006/07/10(月) 14:46:00#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;
}
0439デフォルトの名無しさん
2006/07/10(月) 14:51:27#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;
}
0441デフォルトの名無しさん
2006/07/10(月) 15:05:260442436
2006/07/10(月) 15:33:35100点満点です。点の区切りは0〜9、90〜100です。
>439さん。
ありがとうございます。でもちょっと高度すぎて怪しまれます(;^_^
もう少し幼稚なプログラムにしていただけないでしょうか?ごめんなさいm(_ _)m
0443�@
2006/07/10(月) 15:47:18[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; }
0444�A
2006/07/10(月) 15:49:16*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
0445デフォルトの名無しさん
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;
}
0446デフォルトの名無しさん
2006/07/10(月) 16:37:44ここのソースも参考になりそうやな
0447デフォルトの名無しさん
2006/07/10(月) 17:56:12[2]問題文:No.2311
[3]環境
[3.1]OS:(Linux)
[3.2]コンパイラ名とバージョン:(gcc3.4)
[3.3]言語:C
[4]期限:今日
[5]その他の制限:構造体まで一通り習いました。
よくわからないので、ご協力お願いします。助けてください。
0448デフォルトの名無しさん
2006/07/10(月) 18:02:00うpろだ使ったらリンク貼れ。
0449デフォルトの名無しさん
2006/07/10(月) 18:07:55ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=1993
っつか、うpロダ使ってるなら、問題文をテキストファイルにして
うpしてファイルに直リンした方が良いが
そんな問題を期限が今日で他人任せってのもねぇ・・・
俺は>>52の問題を時間があったからやったけど、今回はパス。
0450デフォルトの名無しさん
2006/07/10(月) 18:21:350451デフォルトの名無しさん
2006/07/10(月) 18:22:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2313.c
0452デフォルトの名無しさん
2006/07/10(月) 18:22:58http://pc8.2ch.net/test/read.cgi/tech/1152095097/95
無意味な煽りうざっ。どうせお前にレスする奴をとことん叩いてまた荒らすつもりだろ
もう回りは気づいているよ、キチガイニートが荒らしていることなんて
0453397
2006/07/10(月) 18:44:26もしわかる方いらっしゃったらお願いします。
04549
2006/07/10(月) 19:01:54意見ありがとうございます。
0455デフォルトの名無しさん
2006/07/10(月) 19:23:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2291.txt
あまり時間が無いので何方かお願い致します。
途中まではなんとか出来ていると思います。
0456デフォルトの名無しさん
2006/07/10(月) 19:29:5801は文字列で出力すればいいの?(´・ω・`)
0457397
2006/07/10(月) 19:54:49はい、文字列だと思います。実行例があったのでのせときます。
[xxxxxxxx]%cat compress.dat
1011111000010111100
[xxxxxxxx]%./compress
1101150411011402
0458デフォルトの名無しさん
2006/07/10(月) 19:55:21[2] 問題文(含コード&リンク): 2つの整数をキーボードから入力し,
大きい方を表示するプログラムを関数を用いて作って下さい。
[3] 環境
[3.1] OS: リナックス
[3.2] コンパイラ名とバージョン: (gcc
[3.3] 言語: (C
[4] 期限: 明日
[5] その他の制限:
整数型引数が2つ,返り値が整数型の
Int max_out(int a, int b){}
関数を作り,main()関数から呼びだす。
0459デフォルトの名無しさん
2006/07/10(月) 20:02:17例えば、レコード番号1を指定したはずが番号3のが表示されるってのがまずいってことでいいの?
それなら point_line() の for 文のとこを for(i = 1; i < recno; i++) に
0460デフォルトの名無しさん
2006/07/10(月) 20:14:470461デフォルトの名無しさん
2006/07/10(月) 20:20:05それでも、レコードを7個入力すると、どの番号を指定してもエラーになりますが。
0462デフォルトの名無しさん
2006/07/10(月) 20:35:42[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]その他の制限:特にないです
0463デフォルトの名無しさん
2006/07/10(月) 20:44:447個とはまた妙なバグを・・・と思ったら free_line() がバグってるだけじゃまいか
p = w->pnext; を p = w; に
0464462
2006/07/10(月) 20:54:40直前にあった>>447さんのものをコピペして参考に使わせてもらったのですが
そこを直し忘れました。授業単元は「プログラミング言語」です。
よろしくお願いします。
0465デフォルトの名無しさん
2006/07/10(月) 21:13:12http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2316.txt
間違ってたら(´・ω・`) ゴメン
0466Javaはイイ
2006/07/10(月) 21:14:20もっと良い方法が無い物かと考えましたがこれが限界です。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28052
<や>を使うのは自分としては卑怯でした orz
できれば論理演算でやりたかったです・・・・ (時間がないため断念)
0467デフォルトの名無しさん
2006/07/10(月) 21:20:13int max_out(int a,int b)
{
return a>b ?a :b;
}
0468デフォルトの名無しさん
2006/07/10(月) 21:25:49初めて見たんだけど。
0469デフォルトの名無しさん
2006/07/10(月) 21:30:29解ごとに実数解、虚数解、重解全部ちゃんと動作しました。
うpろだでのテキストアップでTABキーもつぶれていなく見やすくて、
コメントアウトもあって非常に流れがわかりやすかったです。
こんなに早くわかりやすく やってくださってありがとうございました!
0470デフォルトの名無しさん
2006/07/10(月) 21:48:01[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] その他の制限:
よろしくお願いします。
0471デフォルトの名無しさん
2006/07/10(月) 21:51:22[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ナシ
0472デフォルトの名無しさん
2006/07/10(月) 22:02:270473デフォルトの名無しさん
2006/07/10(月) 22:03:46ここはCかC++の宿題用だよ。
c なんて言語はスレ違い。
0474デフォルトの名無しさん
2006/07/10(月) 22:05:20#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);}
0475デフォルトの名無しさん
2006/07/10(月) 22:06:05void 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);
}
}
0476デフォルトの名無しさん
2006/07/10(月) 23:00:06[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時まで。
お願いします。
0477デフォルトの名無しさん
2006/07/10(月) 23:02:58#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();}
0478デフォルトの名無しさん
2006/07/10(月) 23:09:01#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;
}
0479デフォルトの名無しさん
2006/07/10(月) 23:15:32if文から != (LIST *)NULL を省略すると
警告 W8060 ensyu.c 108: おそらく不正な代入(関数 disp_now )
になるのは何故でしょうか?省略できるはずですが。
0480デフォルトの名無しさん
2006/07/10(月) 23:30:50当たり前だろ
不正かどうかはともかくなんで代入式をまんまif文の中に書いてんだよ
これはmallocがメモリ確保できたどうかを判断するためにNULLチェックしてるんだろ多分
そうでなきゃifの括弧内に書くな
0481デフォルトの名無しさん
2006/07/10(月) 23:56:16自分の言ってること理解してますか?
0482デフォルトの名無しさん
2006/07/11(火) 00:01:450483デフォルトの名無しさん
2006/07/11(火) 00:10:100484デフォルトの名無しさん
2006/07/11(火) 00:11:57暴れられてもぬるぽなのでマジレス
警告はコンパイラがそれっぽいっていう文に対して出すだけなので実際に間違ってるか否かは場合による
この場合、文法的には問題はねーし gcc だと警告も出なかったりする
気になるなら警告レベルを下げてみれ
0485デフォルトの名無しさん
2006/07/11(火) 00:13:170486デフォルトの名無しさん
2006/07/11(火) 00:17:03コンパイラが代入式に警告を出すようになったのは'=='のつもりで
'='と書いてしまうのを防ぐため。デフォルトで出すか出さないかは
コンパイラによる。
0487397
2006/07/11(火) 00:19:24./compress のあとに圧縮ファイルがでてくるようにするにはプログラムに何をつけたせばいいのですか?
0488デフォルトの名無しさん
2006/07/11(火) 00:33:52どうもありがとうございます。
ステップ3、4(>>308)についてもわかる方がいらっしゃればよろしくお願いします。
0489デフォルトの名無しさん
2006/07/11(火) 00:38:19リダイレクト。
0490397
2006/07/11(火) 01:07:21すいませんリダイレクトって何ですか. . .?
0491デフォルトの名無しさん
2006/07/11(火) 01:37:26[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 桁か否かを判断する必要はないとする。
0492デフォルトの名無しさん
2006/07/11(火) 02:30:50for(i = 0; i < 10; i++){
scanf("%d", &x);
n += (!(x % 2)) * (x / 700);
}
0493デフォルトの名無しさん
2006/07/11(火) 02:38:03ありがとう。
でもエラーでちゃいます・・
0494デフォルトの名無しさん
2006/07/11(火) 02:45:13スマソ、インデントのために全角スペース入れてるという注意忘れてた
これを丸々コピペでどうか
#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;
}
0495デフォルトの名無しさん
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;
}
0496デフォルトの名無しさん
2006/07/11(火) 02:55:44ありがとうございます。
理解しがたい部分もありますが、ノート見つつ理解していってみようと思います。
本当にありがとうございました。
0497デフォルトの名無しさん
2006/07/11(火) 03:50:39[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
よろしくお願いします。
0498デフォルトの名無しさん
2006/07/11(火) 05:11:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2318.c
0499デフォルトの名無しさん
2006/07/11(火) 07:16:05どうもありがとうございます。
0500デフォルトの名無しさん
2006/07/11(火) 10:11:060501デフォルトの名無しさん
2006/07/11(火) 11:42:24[2]前課題で作成した、リストを自動的に作成する関数を再帰的に用いて作成したリ
ストのプログラムhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2319.txt
を元に、リストの個数をカウントする関数を付け加え、
リストの個数をカウントするプログラムに改訂しなさい。
[3]Linux gcc C言語
[4]本日です・・・
0502デフォルトの名無しさん
2006/07/11(火) 13:35:43void count_list(LINK head)
{
static int count = 0;
if (head == NULL) printf("count = %d\n", count);
else {
count++;
count_list(head->next);
}
return;
}
0503デフォルトの名無しさん
2006/07/11(火) 13:42:28こっちのほうがいいか。
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);
0504デフォルトの名無しさん
2006/07/11(火) 17:14:130505392
2006/07/11(火) 20:28:530506デフォルトの名無しさん
2006/07/11(火) 22:36:52[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コメント:頼む・・・ってこんなめんどくさいの誰もやってくれないかな?
てか難しくない?俺の単位がかかってるのよ
ネットでソース探したんだが、よくわからなかった
0507デフォルトの名無しさん
2006/07/11(火) 22:46:22すんげー簡単そう
でも俺
って数
Cやっ
ないの
よね。
0508393
2006/07/11(火) 22:46:48返事送れてすいません・・(汗)。
最高得点の生徒が複数いた場合は、その全員に奨学金が支給される、ってコトでお願いします。
・・いや、実はその場合の指示がないんで、複数いる場合は想定しなくても良いです。
0509デフォルトの名無しさん
2006/07/11(火) 22:51:11くだらないレスしないでね
0510デフォルトの名無しさん
2006/07/11(火) 22:57:16http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2327.c
0511デフォルトの名無しさん
2006/07/11(火) 23:17:030512506
2006/07/11(火) 23:21:21せっかく毎週授業に出たのに、結局成績は期末レポート重視
要はこの問題ができれば単位くれるのだが、、、、
っていうかやってくれるやつが居たら神だな・・・
0513デフォルトの名無しさん
2006/07/11(火) 23:26:41[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] その他の制限:なし
0514デフォルトの名無しさん
2006/07/11(火) 23:31:42A^TをAの転置行列として、一般化逆行列ってA^T * ( A * A^T )^-1でよかったっけ?
線形代数なんてもう忘却の彼方なので、複素行列の場合に成立したか自信ない
0515デフォルトの名無しさん
2006/07/11(火) 23:34:14[2]問題文:キーボードから順次入力された正の整数を0が入力
されるまで、配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)にもっとも近い値(平均との差が最小
になる値)が何番目に入力されたどういう値であるかを表示するプログラムを作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:明日の正午
[5] その他の制限:なし
0516506
2006/07/12(水) 00:04:10すまない
質問しておきながら、実はよくわかっていない
そういう式から導けるのかな・・・
4つの条件式から連立方程式を作って解いていくのかと思っていた
でもそれだと二次関数になるしな
もしかしたら考えてくれる人がいるかもだし、明日の朝図書館で調べてくる
0518デフォルトの名無しさん
2006/07/12(水) 00:21:11http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2328.c
0519518
2006/07/12(水) 00:21:59>int sub(int x, int y) { return x - y; }
消し忘れでした。
0520デフォルトの名無しさん
2006/07/12(水) 00:25:00[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] その他の制限:初心者です。よろしくお願いします。
0521デフォルトの名無しさん
2006/07/12(水) 00:28:49#include <stdio.h>
int main(void) { int n; scanf("%d", &n); n=(n+1)>>1; printf("%d\n", n*n); return 0;}
0522デフォルトの名無しさん
2006/07/12(水) 00:52:40入力できる値の制限ルールとかあんの?
0523デフォルトの名無しさん
2006/07/12(水) 00:54:56[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] その他の制限: 特にありません。よろしくお願いします。
0524デフォルトの名無しさん
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だ。
飽きたからこの辺で。
0525おもろい
2006/07/12(水) 01:01:11長方形ですが、何か?
>>円周の長さと面積および、
>円周の面積は常に0だ。
長さは円周について、
面積は円の面積だろ、この文脈では
0526デフォルトの名無しさん
2006/07/12(水) 01:05:58>524は論って揶揄しているだけだから気にすんな。
#まぁ、普通は「4辺の長さの和」とするわな。
0527デフォルトの名無しさん
2006/07/12(水) 01:33:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2329.c
こんな感じでええやろか?平均が3.5で入力された値に3と4があった場合
どちらか一方のみで先に入力された方を表示するようにしか対応してないけど
0528デフォルトの名無しさん
2006/07/12(水) 02:01:111の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
0530デフォルトの名無しさん
2006/07/12(水) 02:42:11氏ね
0531デフォルトの名無しさん
2006/07/12(水) 03:13:02揚げ足が取りたいのか、自分が無知だと晒したいのか、はっきりしてくれ
俺としては君の意見の方が笑えるw
0532デフォルトの名無しさん
2006/07/12(水) 03:45:46[2] 問題文(含コード&リンク):
自然数をキーボードから入力し,昇順ソートして画面に出力する.
入力データ数は50個以下,各自然数は0以上9999以下とする.
出力は各行10個まで,それぞれの数について,右端を揃えること.
これをバブルソートではなくクイックソートを使って動かせ.その際,基準値の取り方を工夫せよ.
(工夫し過ぎると,その処理に時間がかかって却って遅くなることもある.)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [7/12が締め切りでヤバイです…。]
[5] その他の制限: 特にありません。
0533デフォルトの名無しさん
2006/07/12(水) 05:23:51http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2331.c
0534デフォルトの名無しさん
2006/07/12(水) 05:33:45その部分をご自分で適当にどぞ
0536デフォルトの名無しさん
2006/07/12(水) 08:21:42httpプロキシの作成を頼んだものですがkeep-Ariveの確認ができなくても良いのでプログラムを見せていただけないでしょうか。
お願いします。
0537デフォルトの名無しさん
2006/07/12(水) 10:35:30[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] 配列、ループ、線形探索、二部探索、構造体
0538デフォルトの名無しさん
2006/07/12(水) 11:40:34#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だったけど)ほとんどコピペ。反省はしてない。
えーっと、説明を参照して確認するのは自分でやってね?
0539デフォルトの名無しさん
2006/07/12(水) 11:41:400540デフォルトの名無しさん
2006/07/12(水) 11:46:22int 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
0541IQ77
2006/07/12(水) 15:08:48エントロピはデータに本質的に内在されるもので
データの外面性との関連はない
データの性質が変わった瞬間にエントロピも変わる
データの本質がかわらない可逆圧縮ではエントロピは変わらない
データの本質が変化する可逆圧縮では内在するエントロピが変化する
つまり、不可逆圧縮はエントロピ自体を削ることにより容量を少なくしている
>可逆圧縮のとき、求められるエントロピーXの値に対して
>非可逆圧縮で圧縮された値PがXを下回ることがない
可逆圧縮のXと比較している時点でおかしい。
0542デフォルトの名無しさん
2006/07/12(水) 22:13:09[2] 問題文(含コード&リンク):文字型配列を、"OKINAWA"と初期値として宣言し、
文字列を反転させて、"AWANIKO"と出力するプログラムを作りなさい。
[3] 環境
[3.1] Windows XP sp2
[3.2] BCC
[3.3] C
[4] 無期限
[5] なし
よろしくおねがいします。
0543デフォルトの名無しさん
2006/07/12(水) 22:33:48#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;}
0544デフォルトの名無しさん
2006/07/13(木) 00:07:090545デフォルトの名無しさん
2006/07/13(木) 02:11:25[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]条件多いですがぜひともよろしくお願いします><
0546デフォルトの名無しさん
2006/07/13(木) 09:34:24[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)なし
よろしくおねがいします
0547デフォルトの名無しさん
2006/07/13(木) 13:54:32[2] 問題文(含コード&リンク):
ファイル data1.txt には整数値が100個書かれているとする。
data1.txt から読み込んだデータを大きい順に並べ替えてdata2.txtに書き込むプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C
[4] 期限: できればすぐ!
[5] その他の制限:特にありません。宜しくお願い致します。
0548547
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] その他の制限:特にありません。宜しくお願い致します。
0549デフォルトの名無しさん
2006/07/13(木) 14:22:47#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;
}
0550デフォルトの名無しさん
2006/07/13(木) 15:05:24>>548
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2342.txt
0551547
2006/07/13(木) 15:12:51申し訳ないです
本当にありがとうございます
0552デフォルトの名無しさん
2006/07/13(木) 15:30:53[2] 問題文(含コード&リンク): 以下の2つの課題について,C言語でプログラムを作成し,プログラムおよび実行結果を示し,考察せよ.
�@キーボードから正整数を読み込み,その数を素因数分解した結果を画面に表示する.た
だし,1つの整数を引数とし,その整数の最小の素因数を返す関数をユーザ定義関数として作成
し,この関数を使用すること.
�Aキーボードから7桁の整数を2つ読み込み,その積を表示する.ただし,整数型以外の
変数を用いてはならない.
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VisualStudio2003
[3.3] 言語: C
[4] 期限: できるだけ早くお願いします。
[5] その他の制限: お願いします
0554デフォルトの名無しさん
2006/07/13(木) 17:02:000555デフォルトの名無しさん
2006/07/13(木) 17:07:16>>326
(´・ω・`)
0556デフォルトの名無しさん
2006/07/13(木) 17:25:330557デフォルトの名無しさん
2006/07/13(木) 17:28:16いますよ、ここに。桁の多い数値を扱う計算をするプログラムのソースは
俺の手元にあるけど、参考書の丸写しになっちゃうから
俺なりに書き換えが出来たらレスしちゃる
0558デフォルトの名無しさん
2006/07/13(木) 17:29:54ありがとうございます。
0559デフォルトの名無しさん
2006/07/13(木) 17:32:22いや、期待されてもなぁ・・・
ttp://www.gihyo.co.jp/books/syoseki-contents.php/4-7741-1239-9
この本に載っているやつなんだが
0560デフォルトの名無しさん
2006/07/13(木) 18:00:53[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] その他の制限:
説明が下手ですがよろしくお願いします。
0561デフォルトの名無しさん
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] その他の制限: システムコールを使う
0562デフォルトの名無しさん
2006/07/13(木) 18:56:05[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] その他の制限:
0563デフォルトの名無しさん
2006/07/13(木) 19:34:170564デフォルトの名無しさん
2006/07/13(木) 19:52:390565デフォルトの名無しさん
2006/07/13(木) 20:41:41[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
どうかよろしくお願いします
0566デフォルトの名無しさん
2006/07/13(木) 20:43:07黙って放置しろ。
0568デフォルトの名無しさん
2006/07/13(木) 21:00:32> 黙って放置しろ。
お前ガナーwwww っつか命令するやつうぜー、氏ねよカスw
0569デフォルトの名無しさん
2006/07/13(木) 21:02:29coinflipの戻り値の型はstringなのか?
あとどうでもいいことだが、consってナニ?
0571デフォルトの名無しさん
2006/07/13(木) 21:03:33> くだらん発言でスレを埋める奴の方がうざい。
だからお前だろ?w 黙ってろよ、うざいのはお前もだろ?w
0572デフォルトの名無しさん
2006/07/13(木) 21:04:26ぜってー答えてやらねーから黙って指でもくわえてろよ?
0573デフォルトの名無しさん
2006/07/13(木) 21:08:36戻り値はstringでいいと思います
consは自分もよく分からないのですが文脈三回続けて
表がでたってことじゃないでしょうか
0574デフォルトの名無しさん
2006/07/13(木) 21:18:03勝手にしろ。俺は質問者じゃない。
回答者だと言うだけで偉くなった気になってる奴は痛すぎ。
0575デフォルトの名無しさん
2006/07/13(木) 21:18:12ありがとうございます!!
でも12行目でエラーがでてしまいました(>_<)
0576デフォルトの名無しさん
2006/07/13(木) 21:20:03助かりました!!どうも有難う御座いました!
あー、質問の仕方が悪かった。
言語はCで良いのか?Cにはstring型は無いぞ。C++にはあるが。
0578デフォルトの名無しさん
2006/07/13(木) 21:35:32いやC言語限定なんで戻り値string型ではまずいですね・・・
0579549
2006/07/13(木) 21:48:30={}; がダメなのかな? ={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のを頂いたほうがいいよ。
0580デフォルトの名無しさん
2006/07/13(木) 21:53:17[2] 問題文(含コード&リンク):いくつかの複素数を入力し、最後に1を入力して
[Enter]キーを押すとそれまでに入力した複素数とそれらをすべてかけ算した結果を
表示するプログラムを作りなさい
[3] 環境
[3.1] OS: unix
[3.2] gcc
[3.3] 言語: Cです
[4] 期限: 2006年7月20日24:00まで
[5] その他の制限:連結リストを必ず使わなければいけないそうです。よろしくお願いします
0581デフォルトの名無しさん
2006/07/13(木) 21:54:25失礼しました…>>579、>>326
{0}にしたらエラー出ませんでした。ありがとうございます!
0582sage
2006/07/13(木) 21:57:40#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;
}
0583デフォルトの名無しさん
2006/07/13(木) 22:00:30ほんとにありがとうございます!!!
0584デフォルトの名無しさん
2006/07/13(木) 22:01:07>>322
>>323
0585デフォルトの名無しさん
2006/07/13(木) 22:02:32<A>
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2346.c
-uと-lの意味を取り違えてるかもしれないので、その場合は自分で修正してくれ。
0588デフォルトの名無しさん
2006/07/13(木) 22:06:50void 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;}
エラー処理とかなにも考えてないけどこれで大丈夫なのかな・・・
sprintfの所もバグってるので直しといて。
0590デフォルトの名無しさん
2006/07/13(木) 22:42:16[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
これで最後です
どうかよろしくお願いします
0591デフォルトの名無しさん
2006/07/13(木) 23:09:10main関数が、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。
0592デフォルトの名無しさん
2006/07/13(木) 23:28:17void main()
{
int i;
double sum = 0;
Randomize();
for (i = 0; i < 500; i++)
{
sum += RandomReal(0.0f, 1.0f);
}
printf("%f", sum / 500);
}
0593デフォルトの名無しさん
2006/07/13(木) 23:33:26すいませんエラーがでるんですけど
外部シンボルRandomize RandomRealが未解決って
0594デフォルトの名無しさん
2006/07/13(木) 23:36:09#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;
}
0595デフォルトの名無しさん
2006/07/13(木) 23:36:260596デフォルトの名無しさん
2006/07/13(木) 23:37:38#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);
}
0598デフォルトの名無しさん
2006/07/13(木) 23:40:090599デフォルトの名無しさん
2006/07/13(木) 23:41:3314行めと
15行めはここでは宣言できないとエラーがでるんですが・・・
0600デフォルトの名無しさん
2006/07/13(木) 23:43:46double sum = 0;と
Randomize();の順番を入れ替えたらコンパイルできました
ありがとうございました
0601デフォルトの名無しさん
2006/07/13(木) 23:49:02悪いな、俺のミスだ。
コンパイラ何使ってるか見てなかった。
0602デフォルトの名無しさん
2006/07/13(木) 23:49:36>>584
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2349.txt
0603デフォルトの名無しさん
2006/07/14(金) 00:00:29ありがとうございますーー!!
0604デフォルトの名無しさん
2006/07/14(金) 00:06:21[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文主体レベルで)
0605デフォルトの名無しさん
2006/07/14(金) 00:52:55http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2350.txt
0606デフォルトの名無しさん
2006/07/14(金) 00:55:57fclose(fp); いれといて
0607デフォルトの名無しさん
2006/07/14(金) 01:07:42#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があるけどせっかくやったから貼ってみる
0608デフォルトの名無しさん
2006/07/14(金) 01:11:24んー, これは
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で分割しろってことかな?
0609605
2006/07/14(金) 01:16:470610デフォルトの名無しさん
2006/07/14(金) 01:34:11はい、その通りです。
あと、p3もできればお願いします...
0611デフォルトの名無しさん
2006/07/14(金) 02:15:40[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
0612デフォルトの名無しさん
2006/07/14(金) 02:22:41少なくとも朝までにやってくれる猛者はいないと思うんだぜ?
素直に適当なライブラリもってきて改変するが吉
0613デフォルトの名無しさん
2006/07/14(金) 02:29:09適当なライブラリって?
現在進行形で教科書片手にがんばってはいるもののどうにも・・。
これができるかどうかで単位どころか留年が危ういんで藁にもすがる思いというか、なんというか(汗
とりあえず、続けます。
0614デフォルトの名無しさん
2006/07/14(金) 02:30:56つ ttp://tricklib.com/cxx/ex/babel/
間違っても、ライブラリの使い方なんぞを、ここで聞くんじゃねーぞ。
0615デフォルトの名無しさん
2006/07/14(金) 02:36:45普通問題にしないだろw
どうみてもまだほんの入門的はことしかやってないじゃん
0616デフォルトの名無しさん
2006/07/14(金) 02:59:27名城大生乙
0617デフォルトの名無しさん
2006/07/14(金) 03:07:21いつもいつも茶化し乙
0618デフォルトの名無しさん
2006/07/14(金) 03:17:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2354.txt
C#用かなんかをパクって削って改悪した。反省はしてない。
0619611
2006/07/14(金) 04:11:59エラーが出ました。120行目のgetがおかしいみたいです。
複数の問題から選択式でこっちのが簡単ならこっちお願いします。
問題:
キーボードからの入力で指定されたファイルに書かれている数式を読み込み、数式を計算した結果を表示する。
ただし、数式に含まれる可能性がある記号は「0123456789*/+-()」のみで256記号以内とする。
また、計算結果が整数とならない場合は浮動小数点で計算結果を表示する。
0620デフォルトの名無しさん
2006/07/14(金) 04:14:04キャストしたら?get((unsigned char*)buff);みたいに。
0621デフォルトの名無しさん
2006/07/14(金) 05:06:34何故そっちを先に出さないのかと小一時間
0622611
2006/07/14(金) 05:10:240624デフォルトの名無しさん
2006/07/14(金) 08:50:14解説はいいけど動いたの?
キーボードからファイル名を入力し、そのファイルの文字コードを判別し、画面に表示するプログラム
文字コードの判定はコードの領域で判別してる
http://www.gprj.net/dev/tips/other/kanji.shtml
ここらへんとかが詳しい。
0625デフォルトの名無しさん
2006/07/14(金) 08:57:45[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);
0626デフォルトの名無しさん
2006/07/14(金) 09:00:090627デフォルトの名無しさん
2006/07/14(金) 09:02:350628デフォルトの名無しさん
2006/07/14(金) 09:03:03}
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);
}
0629デフォルトの名無しさん
2006/07/14(金) 09:26:32int 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);
}
0630611
2006/07/14(金) 09:32:37〆切、私の勘違いで正しくは再来週の28日。
ほんとすいませんでした。
0631デフォルトの名無しさん
2006/07/14(金) 09:45:05すいませんエラーがいっぱいでるんですけど
2行目から7行目まで全部エラーがでます
0632デフォルトの名無しさん
2006/07/14(金) 09:47:58空行までは貴様の書いたプログラムの変更すべき点。
空行以降を追加してからやってみそ
0633デフォルトの名無しさん
2006/07/14(金) 09:58:34>>560の追記
Kruscal法とは、
1)辺の長さを小さい順に並べる。
2)閉路ができないよう順次辺を加える。
だそうです。
ですが、今回の課題で閉路はできないので2)は考えなくてもいいと思います。
よろしくお願いします。
0634デフォルトの名無しさん
2006/07/14(金) 10:10:28include<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);
0635デフォルトの名無しさん
2006/07/14(金) 10:11:20{
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);}
0636デフォルトの名無しさん
2006/07/14(金) 11:16:04[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] その他の制限:無し
どなたかご教授お願いします。
0637デフォルトの名無しさん
2006/07/14(金) 11:20:321:プログラミング
2:金額をキーボードから入力し、金額を金種別にわけるプログラミングを作れ。
金種は1万、5千、2千、千、500、50、10、5、1です。
3、1:UNIX
3、2:GCC
3、3:C
4:20日まで。
5:if.for.配列を使うこと。voidなどは不可です
0638デフォルトの名無しさん
2006/07/14(金) 11:27:42http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2355.txt
きちんと判定できるように書き直した
ついでに、不要なコードを省いてわかりやすくした
if文の中身は>>624のサイトを参考に勉強しる
結構時間をかけてやってしまった・・・反省はしてない。
0639デフォルトの名無しさん
2006/07/14(金) 11:39:150640デフォルトの名無しさん
2006/07/14(金) 11:52:06問題の意味がわかんないから勘で書いてみた。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28074
0641デフォルトの名無しさん
NGNGhttp://c-kadai.sakura.ne.jp/index.php?itemid=8
これを適当にアレンジ汁。
0642デフォルトの名無しさん
2006/07/14(金) 12:08:43[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
0643637
2006/07/14(金) 12:17:13printf.int.else.break.continueしか文字はならっていないので‥。
0644デフォルトの名無しさん
2006/07/14(金) 12:29:05「正確に求める」って分数を使って表せってこと?
c=1, n=10000のとき4300桁くらいになるんだが。
0645デフォルトの名無しさん
2006/07/14(金) 12:34:15そんな馬鹿な。
0646デフォルトの名無しさん
2006/07/14(金) 12:36:54課題の追記は>>633(Kruskal法について)
よろしくお願い致します。
0647デフォルトの名無しさん
2006/07/14(金) 12:42:11(゚д゚)ハァ?
0648デフォルトの名無しさん
2006/07/14(金) 12:58:23[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; /* 各教科の平均点算出 */
}
0650デフォルトの名無しさん
2006/07/14(金) 13:26:40[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分まで
単位かかってるのでおねがいします><
0651テスト中
2006/07/14(金) 13:28:56printf ( ) と書けばよい。
( ) を教えてください><
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) で入力すると画面には ( )が出力される。
( ) を教えてください><
0652デフォルトの名無しさん
NGNGクズの分際でなに催促してんのこいつ?
0653デフォルトの名無しさん
NGNG学校名と学籍番号を晒したら教えてやる
0654デフォルトの名無しさん
2006/07/14(金) 13:51:29俺、お前のこと嫌いになりかけたけど、また好きになったよw
0655デフォルトの名無しさん
2006/07/14(金) 14:02:30作ったよ^^
#include <iostream>
using namespace std;
int main(){
int a,b;
cin >>a;
cin >>b;
cout << a*b;
return 0;
}
0656デフォルトの名無しさん
2006/07/14(金) 14:19:37#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;
}
0657デフォルトの名無しさん
2006/07/14(金) 14:26:52#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);
}
0658デフォルトの名無しさん
2006/07/14(金) 15:47:19うおっ、やっぱまだ期待してた?あれから紹介した本のソースを見て
そのままじゃ君が求めているものには物足りなくて使えないから
独自で改造をしているんだが、ちと作業が止まっていて、すまそ
もちっと時間は掛かるけど、やってみるかな・・・期待されても困るがw
0659デフォルトの名無しさん
2006/07/14(金) 15:58:30ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2356.c
うpして気づいたが、DEFAULT_ALLOC_SIZE は使ってないから消してくれ。
0660デフォルトの名無しさん
2006/07/14(金) 16:54:42プログラミングのテストを教えていただきたいのです。
授業単元:プログラミングのテスト
内容:西暦と月を入力し、その月のカレンダーを入力してください。
西暦yearと月monthを入力
西暦year年month月一日が何日目(days)かを計算する。
daysを7で割った余りに応じて空白を出力し、その後1,2,3、・・・と出力する。
このとき7つのデータを出力するごとに改行してください。
環境:C言語です
配列を習い始めたとこです。どうか教えてください。 orz
0661デフォルトの名無しさん
2006/07/14(金) 17:37:008 名前:デフォルトの名無しさん[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
0662デフォルトの名無しさん
2006/07/14(金) 18:01:51催促みたいになってすみません。本当にありがとうございます!!助かりました
0663デフォルトの名無しさん
2006/07/14(金) 19:45:33お願いします。
0664デフォルトの名無しさん
2006/07/14(金) 20:29:42間違ってるかもしらんけど。
#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;
}
0666デフォルトの名無しさん
2006/07/14(金) 21:27:18ありがとうございます!
多分2こめのaの方ででいいんですよね?
0667デフォルトの名無しさん
2006/07/14(金) 22:21:54[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] その他の制限: 特に無し
0668デフォルトの名無しさん
2006/07/15(土) 00:02:010669デフォルトの名無しさん
2006/07/15(土) 02:10:25以前httpプロキシ頼んだ者ですが
このプログラムはどうやって使うんでしょうか。
参考になればと思って使いたいのですが、何をやっているのか
分かりません。誰か教えてください。
0670デフォルトの名無しさん
2006/07/15(土) 02:15:25単位を捨ててもう一年授業を受け直すべきだな、うん
0671デフォルトの名無しさん
2006/07/15(土) 03:49:45[2] 問題文(含コード&リンク):
2本の線を別々に並行処理で、時間単位で直線を引いていきます。
2本の直線の合計がLになったら、描画を終わりにします。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:C++ builder3
[3.3] 言語: C++
[4] 期限: 2006年07月17日まで
[5] その他の制限: 特に無し
よろしくお願いします。
0672デフォルトの名無しさん
2006/07/15(土) 06:45:28動かしてみた感じ、標準入力に直にHTTPメソッド書いて送信できるだけじゃね?
0673デフォルトの名無しさん
2006/07/15(土) 08:33:46ヒント:inetd
0674デフォルトの名無しさん
2006/07/15(土) 09:16:20ぐぐってみて把握
listenやら任せられるのか
0675デフォルトの名無しさん
2006/07/15(土) 10:25:00#include <stdio.h>
#define L 32
int main(void){
int i;
for(i=0;i<L/2;i++) printf("| |\n");
return 0;
}
0676デフォルトの名無しさん
2006/07/15(土) 10:45:22[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
よろしくお願いします
0677デフォルトの名無しさん
2006/07/15(土) 11:19:33[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つを参考に作るらしいのですが、課題では実際のシェルのようにコマンドの数や
パイプ、リダイレクションの場所も決まっていないので、どのようにコマンドをパイプ
で繋いでいけばいいかが分かりません。分かる方どうかお願いします。
0678デフォルトの名無しさん
2006/07/15(土) 11:24:56ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28077
0679デフォルトの名無しさん
2006/07/15(土) 11:40:19[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] その他の制限:
問題文分かりにくくてすみません。よろしくお願いします
0680デフォルトの名無しさん
2006/07/15(土) 12:12:22「LU分解」でぐぐれ
0682デフォルトの名無しさん
2006/07/15(土) 12:21:44>>675
2本線を時間単位で延ばして、
描画していくって宿題?
わしも、C++勉強中だがJAVAでよくある同期、非同期とかの
マルチスレッドで紙芝居みたいに描画する導入問題じゃないじゃろか。
0683デフォルトの名無しさん
2006/07/15(土) 12:27:27本当にぐぐったならそんな台詞はでてこねーよカス
0686デフォルトの名無しさん
2006/07/15(土) 12:42:58答えが知りたくないやつはここに来るなカス
0687デフォルトの名無しさん
2006/07/15(土) 12:45:170688デフォルトの名無しさん
2006/07/15(土) 12:46:16\ __ /
_ (m) _ピコーン
|ミ|
/ `´ \
('A`) そうか!こうすれば荒れないのか!
ノヽノヽ
くく
\ /
_ `゙`・;`' _バチュ--ン
`゙`・;`
/ `´ \
('A`)
ノヽノヽ
くく
('A`) ...なんだっけ
ノヽノヽ
くく
(゚∀゚ )! そうだ 京都 行こう
ノヽノヽ
くく
0689デフォルトの名無しさん
2006/07/15(土) 13:03:15グーグルでLU分解について調べなおして自力で解け、ということでしょうか?
0690デフォルトの名無しさん
2006/07/15(土) 13:22:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2364.txt
荒れてるようなので早めに貼ってみる。
0691デフォルトの名無しさん
2006/07/15(土) 13:24:47-printf("x%d = % f\n", i, x[i]);
-printf("x%d = % f\n", i, + 1, x[i]);
でいいかな。
0692デフォルトの名無しさん
2006/07/15(土) 13:28:26[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] その他の制限:
0693デフォルトの名無しさん
2006/07/15(土) 13:38:36[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回送ってごめんなさい、お願いします
0694デフォルトの名無しさん
2006/07/15(土) 13:39:03よく見たら変数mとか使ってなかったしな 正直すまんかった
0695693
2006/07/15(土) 13:44:11正規方程式を解いてc0とc1を解くそうです
0696デフォルトの名無しさん
2006/07/15(土) 13:51:57中○大かな?
もし同じ教科書使っていたらスマソ。
去年と問題変わらんね…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 }
去年と微妙に問題が違う気するんだが、とりあえず去年のソース貼っておきますね。
0697デフォルトの名無しさん
2006/07/15(土) 13:52:19このプログラムをもっと初心者が書くように回りくどく拙くすることってできますか?
0698デフォルトの名無しさん
2006/07/15(土) 13:56:01・実直にforに中括弧をつける。
・変数を一行に一つずつ宣言する。
・putchar(), puts()を使わず全てprintf()で。
これだけやってもどうせコンパイル結果は同じだ。
0700693
2006/07/15(土) 14:01:170701デフォルトの名無しさん
2006/07/15(土) 14:10:18[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] その他の制限:
0702デフォルトの名無しさん
2006/07/15(土) 14:28:47すまん出かけとった。
拙く?C言語はノーフォーマットなので、適当に行を崩して書けば
それらしくならんかな?特にポインタも使ってないし。LU分解と
解くルーチンは本から写したと言えばいいのでわ?
0703デフォルトの名無しさん
2006/07/15(土) 14:38:18int 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;
}
0704693
2006/07/15(土) 15:19:04先輩先輩、実は実習問題4Aも残ってるんだけど、文章じゃ説明しにくくてここで質問できなかったんです。
そっちの答えも分かりますか?
0705デフォルトの名無しさん
2006/07/15(土) 16:18:28...って
0706デフォルトの名無しさん
2006/07/15(土) 16:43:46ごめn。 data = {4, 3,” 5, 6, 6, 7, 6”, 3, 5, 2, 3, 4},
” ”で囲ってあるとこがあかいとこ
0707デフォルトの名無しさん
2006/07/15(土) 17:30:46ですです。
どなたかよろしくお願いします。
0708デフォルトの名無しさん
2006/07/15(土) 18:55:154Aって何…w
去年はそれ、課題8といったのですが。
ごめ、そういえば去年はプリントだったんやけど今年から教科書使ってるんだっけ?
だとすれば、問題と照合しないことにはなんとも…。
0709デフォルトの名無しさん
2006/07/15(土) 18:59:31正直、去年はんな問題なかったわけですよ。
もし必要なら、スキャナかデヂカメで撮影キボソ。
ちなみに、おそらく吉○担当の講義だと思うけど、課題出さなかったら定期試験より
-30点減点だった筈。実力テストは80点以上で自動的にA。
住人の方、汚してスマソ
0710デフォルトの名無しさん
2006/07/15(土) 20:25:36ですです。
よろしくお願いします。<(_ _)>
0711デフォルトの名無しさん
2006/07/15(土) 20:27:24ごめんなさい。ミス。
0712デフォルトの名無しさん
2006/07/15(土) 21:18:010713デフォルトの名無しさん
2006/07/15(土) 21:50:40[2] 問題文(含コード&リンク):マージソートで整列するプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++
[3.3] 言語: どちらでも可
[4] 期限: 2007年07月15日22:00まで
[5] その他の制限:クイックソートまで習いました
0714デフォルトの名無しさん
2006/07/15(土) 22:02:14スレタイ嫁ボケカス
0715デフォルトの名無しさん
2006/07/16(日) 00:12:30助けてください
0716デフォルトの名無しさん
2006/07/16(日) 00:24:36#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);
}
0717デフォルトの名無しさん
2006/07/16(日) 00:43:27[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] その他の制限: 問題文長くてすみません。あとなるべく初歩的な知識でも理解できるようなのだと大助かりです。
よろしくお願いします
0718デフォルトの名無しさん
2006/07/16(日) 00:44:21x 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です
0719デフォルトの名無しさん
2006/07/16(日) 02:10:16ちょっと教えて欲しいのだが、アルゴリズムAは、ニュートンの差分商
補間アルゴリズムだと思うのだがアルゴリズムBは一体何という補間?
線形補間かな?あとラグランジュ補間、ネヴィル補間、スターリング補間
などいろいろあるが、αの意味がよくわからないため、どの補間公式なの
か選べずに困っている。
0720デフォルトの名無しさん
2006/07/16(日) 02:22:57ニュートン補完です。ラグランジュは分かるけど
ネヴィル・スターリングは聞いたことないです。
0721デフォルトの名無しさん
2006/07/16(日) 02:32:01あ、わかった。アルゴリズムAで差分商表を作り、アルゴリズムBで
その表を使って補間を行うって事だね。じゃすぐうpできるのでちと
待ってて。
0722デフォルトの名無しさん
2006/07/16(日) 02:36:03ほい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2367.txt
ちょっと i とか j の使い方が出題例と違うんだけど、同じ出力になるように
適当にいじって提出した方がいいかも。よくわからなければこのままでも
いいんでわ?責任もてんけど。
0723デフォルトの名無しさん
2006/07/16(日) 11:19:010724デフォルトの名無しさん
2006/07/16(日) 12:44:25>>678さんありがとうございます。
書いてあるとおり私は基本的なことしかやっていませんし習ったことのみでプログラムを作ります。
プログラムの中にsizeof、coinというのがあったと思いますがこれは習っていません
一日、習ったことで表せないかと試行錯誤を繰り返していましたが、どうにもできません
sizeof、coinをif for while dowhile else tray などで表すことはできないでしょうか?
0725デフォルトの名無しさん
2006/07/16(日) 13:04:150726デフォルトの名無しさん
2006/07/16(日) 13:09:27coinは変数です。
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];
に変更すればできるはず。
0727デフォルトの名無しさん
2006/07/16(日) 13:26:31>>726
ありがとうございます。sizeofについては解決いたしました。
しかし、coin resがいまだに理解しがたいです。
変数とはそもそもどんなものなのでしょうか?手持ちの参考書を読んでますが
coin や resは索引にもありません。
0728デフォルトの名無しさん
2006/07/16(日) 13:27:130729デフォルトの名無しさん
2006/07/16(日) 13:27:55本当にありがとうございました。
0730デフォルトの名無しさん
2006/07/16(日) 13:34:13確かにゆとり世代ですけどね・・・^^;
大体C言語とか学ぶ意味あるんですか?
しかも必修ですよ、わけわかんねぇ
0731デフォルトの名無しさん
2006/07/16(日) 13:39:080732デフォルトの名無しさん
2006/07/16(日) 13:43:12大体英語とか中国語とか学ぶ意味あるんですか?
しかも必修ですよ、わけわかんねぇ
と思いながら大学卒業しました
自分だけ苦労してますみたいなこと言わないでください。
英語なんでセンター試験で20点切るダメさ加減でしたよ。
0733デフォルトの名無しさん
2006/07/16(日) 13:46:03変数の説明が無いような参考書は捨てちゃえ。
0734デフォルトの名無しさん
2006/07/16(日) 13:47:30でも、struct Erf と const struct Erf と sizeof が分かりません・・・。
いじることすらできません・・・。
せっかくUPしてくれたのにすみません・・・・。_| ̄|○|||||
あと、問1の3点使うのと問2の4点使うのはこれを少し変えればできるんですか?
0735デフォルトの名無しさん
2006/07/16(日) 14:01:22自分も20切ってました><
>>733
調べましたが、半理解?
なんでわざわざint coinとか複数作る必要があるんですか?
intとcoinは書き方が違うだけで同じいみなのですか?
0736デフォルトの名無しさん
2006/07/16(日) 14:02:300737デフォルトの名無しさん
2006/07/16(日) 14:06:20なんだと!20切っただと!
仕方ない問題やってやる
0738デフォルトの名無しさん
2006/07/16(日) 14:07:19\ __ /
_ (m) _ピコーン
|ミ|
/ `´ \
('A`) そうか!こうすれば理解してもらえるのか!
ノヽノヽ
くく
\ /
_ `゙`・;`' _バチュ--ン
`゙`・;`
/ `´ \
('A`)
ノヽノヽ
くく
('A`) ...なんだっけ
ノヽノヽ
くく
(゚∀゚ )! そうだ 京都 行こう
ノヽノヽ
くく
0739デフォルトの名無しさん
2006/07/16(日) 14:14:330740デフォルトの名無しさん
2006/07/16(日) 20:58:24[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] その他の制限:特になし
よろしくお願いします
0741デフォルトの名無しさん
2006/07/16(日) 21:22:46プログラムはそれで全部か?
0742740
2006/07/16(日) 21:27:050743デフォルトの名無しさん
2006/07/16(日) 21:47:490745デフォルトの名無しさん
2006/07/16(日) 23:15:25何々?構造体とsizeofがわからない?
ならちょっと待ってろ。
0746デフォルトの名無しさん
2006/07/16(日) 23:22:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2372.txt
これ以上簡単にできんぞ。
係数の使い方が出題例と違うのが気になるのなら、これでいじれると
思う。
0747デフォルトの名無しさん
2006/07/16(日) 23:23:33わかった。なら改造するからしばし待たれよ。
0748717・718
2006/07/16(日) 23:26:330749デフォルトの名無しさん
2006/07/16(日) 23:31:48717氏の大学は、構造体とsizeofを後期に履修しまふ。
ちなみに、担当教員は創成Iと同じT氏なので覚悟すべし。
平気で50人・60人落とします>>717
0750デフォルトの名無しさん
2006/07/16(日) 23:33:20これでどうかな。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2373.txt
>>749
((((;゚Д゚)))ガクガクガクブルブルブル。係数の使い方合わせておいた方が
いいんかな・・・・
0751デフォルトの名無しさん
2006/07/16(日) 23:38:42-36
for (i = 0; i < N; i++) {
+36
for (i = 0; i < n; i++) {
0752デフォルトの名無しさん
2006/07/16(日) 23:39:05おそらくですが、717氏と同じ大学在籍です。
この担当教員は、えらく見る目が厳しく、去年はスペースが1つでも入ってズレていたら
即刻ダメだし受けてレポートを受け取ってもらえませんでした。
今思えば、当然っていえば当然ですが…。
個人的には結構厄介な教授にランクインしてまふw
0753デフォルトの名無しさん
2006/07/16(日) 23:40:260754デフォルトの名無しさん
2006/07/16(日) 23:45:12なんだと!本来フリーフォーマットのC言語に、書式の一致まで
強制する教官なのか。まあプログラムのチェック時に教官自身が
楽をしたいだけなんだろうが。
0755717・718
2006/07/16(日) 23:49:49おかげさまで課題出さないだけで期末から-30点なんてことにならなくてすみそうです。
>>753課題を出されたときにはよろしくお願いしますセンパイ_| ̄|○|||||ボクアノヒトキライ
ところで数値解析の授業のほうではこの問題は去年出なかったんですか?
0756デフォルトの名無しさん
2006/07/16(日) 23:50:34独学で学んでますのでとかじゃダメなん?
0757デフォルトの名無しさん
2006/07/16(日) 23:52:17無駄に厳しいのは事実。
だで、普段viを推奨する大学ですがvimを使ったほうが良いかな。
あと、Cファイルの中に結果とか諸々詰め込まないとダメだし受けたりとか。
まぁ、未知の事を直すのは>>717の仕事として…。
0758デフォルトの名無しさん
2006/07/16(日) 23:53:28あの。>>750だけど。係数を合わせて書いたら、デタラメな値が
出てきたので、これでいいと思うよ。
何か言われたら、「言われた通りにやったら結果がデタラメに
なったので、できるだけ出題の意図を崩さないように、正しい結果
が出るように修正しました」と言っておけばいいだろ。
0759デフォルトの名無しさん
2006/07/16(日) 23:53:48お前の態度が気に入らない
0760デフォルトの名無しさん
2006/07/16(日) 23:54:17あと教官の機嫌を取るためのプログラムの修正は俺はわからない
ので、あとは自分で頼む。
0761デフォルトの名無しさん
2006/07/16(日) 23:55:48教授本人!? (((((((( ;゚Д゚)))))))ガクガクブルブルガタガタブルガタガクガクガクガクガク
0762デフォルトの名無しさん
2006/07/16(日) 23:55:56アンドゥしまくるならvimおぬぬめなんだぜ?
0763デフォルトの名無しさん
2006/07/16(日) 23:57:14前にも言ったかもしれないが、去年は教科書じゃなくてプリント講義ですた。
教科書化したのは知っていたが、中身をちらほら変化してるみたいだな。
T教授?後期に大量に課題出すよwww
最終課題は「コンピュータと人間が対戦するゲームを何か作れ。(要するにAI)」で、
漏れは確か300行ぐらいに膨れ上がったイクナイプログラムを出した覚えがある。
0764717
2006/07/17(月) 00:09:29ほかにもいろいろと授業あって忙しい、って言うのは学生の言い訳なんでしょうか・・・?
(;´Д`)カダイガヒドイ
0766717
2006/07/17(月) 00:14:380767デフォルトの名無しさん
2006/07/17(月) 01:06:430768デフォルトの名無しさん
2006/07/17(月) 01:11:19いやだね、なんで君にいちいちどうこう言われたり、命令をされなきゃならないんだよ?
しといてくれや?して下さいだろ?誰に向かって口聞いてんだ?
相手がヤクザや暴力団の子供だったらやばいよ?
0769デフォルトの名無しさん
2006/07/17(月) 01:32:190770デフォルトの名無しさん
2006/07/17(月) 01:35:410771デフォルトの名無しさん
2006/07/17(月) 01:35:56ひどいね、こりゃ
0772893
2006/07/17(月) 01:39:39#include<stdio.h>
main()
{
printf("hello world!);
}
って刺青ほってあるぜ?
0773デフォルトの名無しさん
2006/07/17(月) 01:43:080774デフォルトの名無しさん
2006/07/17(月) 01:45:310775デフォルトの名無しさん
2006/07/17(月) 01:48:260776デフォルトの名無しさん
2006/07/17(月) 01:50:12キチガイは完全スルーしろ、完全スルー。
0777デフォルトの名無しさん
2006/07/17(月) 02:00:24遅くなったけど
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2375.zip
0778デフォルトの名無しさん
2006/07/17(月) 07:44:52なぜ彼だと決めつける?もしかすると彼女かもしれないぞ?
0779デフォルトの名無しさん
2006/07/17(月) 12:32:07[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もお願いします
0780笹井奈琴/377
2006/07/17(月) 13:43:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2377.cpp
0781デフォルトの名無しさん
2006/07/17(月) 14:17:46[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]ほとんど初心者です、お願いします
0782笹井奈琴/377
2006/07/17(月) 14:18:20しまった、data_insert()のおわりに
free( dataT );
が抜けてた。
0783デフォルトの名無しさん
2006/07/17(月) 14:29:03[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つもすいません
0784デフォルトの名無しさん
2006/07/17(月) 14:40:44#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;
}
0785笹井奈琴/377
2006/07/17(月) 14:49:33#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;
}
0786笹井奈琴/377
2006/07/17(月) 14:51:151. main3 になってますが main に直してください
2. メッセージは全部ローマ字ですが、
これは(必要であれば)漢字に直してくださいね。
0787デフォルトの名無しさん
2006/07/17(月) 15:08:01[2]以下のプログラムを完成させ、共通バッファを用いたプロセス間通信を実現せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2378.txt
[3]OS:Linux
コンパイラ:gcc
言語:C
[4]7/19 AM11:00
問題は口頭で言われたのですが
親プロセスと子プロセス間でチャットのようなことをしろ
ということです
お願いします
0788デフォルトの名無しさん
2006/07/17(月) 16:47:20はてしなく既出
0790デフォルトの名無しさん
2006/07/17(月) 17:15:190791デフォルトの名無しさん
2006/07/17(月) 17:18:010792デフォルトの名無しさん
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] ポインタがまだしっかり理解できていないので、できれば使わないようにしていただけるとうれしいです。
0793デフォルトの名無しさん
2006/07/17(月) 17:55:57忘れてしまっているSystem V IPCの記憶を掘り起こすために、
セマフォ操作の部分だけやった。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2379.c
意味不明な「共有バッファ」を使ったメッセージのやり取りは、
自分で何とかしてください。(共有メモリを使うのか?)
作られていくので、適当に手動で消してください。
$ ipcrm -s id
0797デフォルトの名無しさん
2006/07/17(月) 20:04:46パイプラインで詰まっているのですが、|を探してコマンドを整形した後
どのように繋いでいいかが分かりません。
pipeは1回だけでfdの中を保存して次々につなげていくみたいなことを
言われたのですが、どのようにすればいいでしょうか?
0798デフォルトの名無しさん
2006/07/17(月) 20:33:23[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] その他の制限:標準ライブラリは使ってはいけない
0799デフォルトの名無しさん
2006/07/17(月) 21:31:08過去スレに答えあるから探せ
0800デフォルトの名無しさん
2006/07/17(月) 21:34:090801デフォルトの名無しさん
2006/07/17(月) 22:12:460802デフォルトの名無しさん
2006/07/17(月) 22:45:000803677
2006/07/17(月) 22:50:36過去スレあさってみたのですが、3つ以上のパイプを順次繋いでいくことが
できなかったりして答えではないという感じでした。
どなたか問題文にあったの作れませんでしょうか('A`)
0804798
2006/07/17(月) 22:58:57[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] その他の制限:
すみません訂正します。まだよくわからないもので。
0805デフォルトの名無しさん
2006/07/17(月) 23:10:350806デフォルトの名無しさん
2006/07/17(月) 23:31:25その見つけたというのはどれなのか明記してみろ
0807デフォルトの名無しさん
2006/07/17(月) 23:36:24今、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つも載せてしまいました。
お願いします助けてください
0808longhon
2006/07/17(月) 23:39:030809デフォルトの名無しさん
2006/07/17(月) 23:43:220810デフォルトの名無しさん
2006/07/17(月) 23:44:36ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2385.txt
こんなもんでどうでしょう?
0811longhon
2006/07/17(月) 23:49:42http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+27659
これです。
0812デフォルトの名無しさん
2006/07/17(月) 23:54:19gtkmm は GTK+ の C++ インターフェイスです。
0813デフォルトの名無しさん
2006/07/17(月) 23:56:45どうもありがとうございます
0814677
2006/07/18(火) 00:00:53過去スレ67の575にある
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2085.c
なのですがなんか違う感じだったので・・・
0815デフォルトの名無しさん
2006/07/18(火) 00:05:28ああ、そりゃ違うな。こっちだ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2088.txt
0816デフォルトの名無しさん
2006/07/18(火) 00:10:20自分レス(>>812)で書いてあるように、
gtkmm.h自体がC++で書かれているから無理。
templateやnamespaceもある上に、
スタティックメソッドGtk::Main::run()がGtk::Windowのインスタンスを要求している。
そもそもスレ違い。
0817デフォルトの名無しさん
2006/07/18(火) 00:13:31スレ違いだけど。
0818longhon
2006/07/18(火) 00:16:21list viewがどうもうまくいかなくてリファレンスは英語でてんてこ舞いに
なってもうわけがわからなくなってしまったんです。
0819デフォルトの名無しさん
2006/07/18(火) 00:32:54[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);
ここあたりまでは頑張って考えてみました。ただ、これだと小文字の場合
だけですよね?
大文字の場合も出来ないといけないみたいですが・・・ここからは解りま
せんので教えて頂けませんか?
0820デフォルトの名無しさん
2006/07/18(火) 00:42:53#include<stdio.h>
main(){
int c,i;
c=getchar();
for(i=c;i!='z'+1&&i!='Z'+1;i++)putchar(i);
}
0821デフォルトの名無しさん
2006/07/18(火) 00:45:43[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
など習っていない記号があったので改めて質問しました
お願いします(´・ω・`)
0822デフォルトの名無しさん
2006/07/18(火) 00:48:22関数を記号言うなw
0823デフォルトの名無しさん
2006/07/18(火) 01:00:500824デフォルトの名無しさん
2006/07/18(火) 01:16:250825デフォルトの名無しさん
2006/07/18(火) 01:17:02いい機会だ、C++の勉強もし給え。
0826デフォルトの名無しさん
2006/07/18(火) 01:42:01showはなんでもできる基地外さん
IsLeapYearは記号と間違えられるメンヘルさん
daysは死ぬまでdaysな童貞さん
0827デフォルトの名無しさん
2006/07/18(火) 02:20:35そもそも何をもって初歩的な事とするんだろうな
俺からすればマクロ形式関数なんて初歩的な訳で
関数がダメだというなら代わりにそれを使うまでだが
0828デフォルトの名無しさん
2006/07/18(火) 02:39:21>関数使用不可
これは自分で定義した関数がダメってことじゃね?
0829デフォルトの名無しさん
2006/07/18(火) 03:01:25関数は全て使っちゃダメ!
0830デフォルトの名無しさん
2006/07/18(火) 03:02:170832デフォルトの名無しさん
2006/07/18(火) 04:11:36[2]問題文:外部ファイルから1000個の数字を読み込み、配列に格納する。
その数字をクイックソート法によって整列させ、整列した結果を別の外部ファイルに書き込むプログラムを作成する。
main関数とは別にクイックソートを行う関数を作成し、読み込みおよび書き込みの外部ファイル名はそれぞれ「indata.dat」、「outdata.dat」とする。
また、再帰を使用し、クイックソートを行う関数の引数にはポインタを使わないこと。
[3.1]OS:WindowsXP
[3.2]Borland C++ 5.5.1
[3.3]言語:Cです。
[4]期限:今日の11時までです。
[5]その他の制限:特にないです。
よろしくお願いします。
0833デフォルトの名無しさん
2006/07/18(火) 05:20:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2390.txt
0834デフォルトの名無しさん
2006/07/18(火) 06:02:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2391.txt
なお、63行目より下のプログラムは、indata.datという名前で1000個の
ランダムな数字を入れたファイルを作るプログラムです。提出の時は
削除してください。
0835デフォルトの名無しさん
2006/07/18(火) 06:53:20#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); }
ポインタを使うなの意味がわかんね
配列自体ポインタだし
0836893か暴力団の子供の親
2006/07/18(火) 07:04:03口の聞き方はきぃつけた方がええぞ?
0837デフォルトの名無しさん
2006/07/18(火) 07:22:58#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
0838デフォルトの名無しさん
2006/07/18(火) 07:31:39本当にありがとうございます!
提出日に間に合ってよかったです。
助かりました ありがとう×∞
0839デフォルトの名無しさん
2006/07/18(火) 08:48:43>>835
>>837
ありがとうございます。助かりました!!
0840677
2006/07/18(火) 11:38:50場合、パイプを見つけてコマンドを順次実行していくにはどうすれば
いいんでしょうか?
0841デフォルトの名無しさん
2006/07/18(火) 12:01:20いいかげんウザいぞ、お前。回答もう出てるだろ。
疑問点があったら、適当なスレで具体的に質問しろ。
0842デフォルトの名無しさん
2006/07/18(火) 12:45:15以下のように記述がされています。
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
・
・
という形で保存をしていきたいのですが、どのようにすればよいのでしょうか?
0843デフォルトの名無しさん
2006/07/18(火) 12:48:25おめースレタイも読めねーバカ?
0844デフォルトの名無しさん
2006/07/18(火) 13:03:260845デフォルトの名無しさん
2006/07/18(火) 13:07:40ググレカス
0846デフォルトの名無しさん
2006/07/18(火) 13:28:360847デフォルトの名無しさん
2006/07/18(火) 13:31:44コード教えれっていってんだろうが、ボケナス
コード書けないんだったら黙っとけ
0848デフォルトの名無しさん
2006/07/18(火) 13:42:36分かったかチンカス。いやマンカスかもしれんけどな。
0849デフォルトの名無しさん
2006/07/18(火) 14:11:15[2] 問題文
n
Σ a^(k-1)
k=1
aとnを入力して解を出力するプログラムを作る。
[3] 環境
[3.1] OS:Windows
[3.2] VC 6.0?
[3.3] C言語
[4] 期限:明朝
[5]習い始めたばかりです。
よろしくお願いします。
0850デフォルトの名無しさん
2006/07/18(火) 14:15:40習い始めたばかりだとループも使わない方がいいかな?
#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));
}
0851デフォルトの名無しさん
2006/07/18(火) 14:25:00こういう人って、なに考えて生きてるんだろうね
0852デフォルトの名無しさん
2006/07/18(火) 14:51:14自分が知っていること、あるいは相手の失敗や不手際を指摘できるだけで
得意気に調子ぶっこいているキチガイが約2名。
こんな時間にそんなことしに来るなんて、どこの暇人だよ?w
おおかた、クズ大学院生か低レベルな学校の教員だろ
0853667
2006/07/18(火) 14:55:55宿題についての内容なのですが、他のスレとかあるのでしょうか('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をどこで呼び出すかと、どのように
繋ぐかが分かりません。今回は単純のため|がコマンドにくっついていない場合を考えた
のですがどんな感じにすればいいのでしょうか・・・
また、リダイレクションが混ざって入ってきた場合どのようにすればいいのでしょうか?
0854デフォルトの名無しさん
2006/07/18(火) 15:13:18ここはあくまで宿題を片付けるスレッドであって、
宿題の内容について質問するスレッドじゃぁ無いと思うんだ
0855デフォルトの名無しさん
2006/07/18(火) 15:16:580856デフォルトの名無しさん
2006/07/18(火) 15:21:17しつこいな、お前。回答のソース良く見ろ。
0857デフォルトの名無しさん
2006/07/18(火) 15:24:51またいつものキチガイですか
0858デフォルトの名無しさん
2006/07/18(火) 15:26:42pipe作って、いらんものcloseして、dupかdup2だ。
つか、スレ違い。
0859デフォルトの名無しさん
2006/07/18(火) 15:58:48キチガイが目立つな。所詮、お前らも低レベルな学校の卒業生か教員だろ?
痛々しいね、こういう自分より下のレベルの奴が質問すると
分かっている場所でなきゃでけぇ面できない小心者ってw
リアルではまともに人と向き合って話が出来ないんだろうけどw
0860デフォルトの名無しさん
2006/07/18(火) 16:01:08#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;
}
こんな感じだと思うけど数学苦手だし間違ってるかも
0861デフォルトの名無しさん
2006/07/18(火) 16:52:29と、リアル高卒ニート引きこもりが申しております。
0862デフォルトの名無しさん
2006/07/18(火) 16:54:31[2] 問題文(含コード&リンク):
大きさ20の配列keyを用意し、キーボードから値を入力する。
この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。
ただし、ソートの途中経過を画面に出力すること。
また、最後に比較回数を画面に出力すること。
【ヒント】
配列の大きさの指定
#define SIZE 20
単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
[3] 環
[3.1] OS: xp
[3.2] visual studio2003
[3.3] 言語: C
[4] 期限: 明日の朝までに。
[5] その他の制限: 配列、構造体、線形探索、ループなど習いました
0863デフォルトの名無しさん
2006/07/18(火) 16:59:13>>859
君の発言がこのスレで最も痛々しいんだが。
0864デフォルトの名無しさん
2006/07/18(火) 17:09:31その態度が痛々しいのだがw
ずっとはりついている割には、まともにソースを出して答えない奴が
何偉そうにしてんだよ?何、お前ここのスレの主?お前の主導のもとで
このスレが成り立ってんの?
ぐちぐち言ってねーで、ソースを出せばそれで良いだろ
いちいち質問者の気に入らない態度に対してネチネチ叩くな、うぜぇ
それから、やっぱりそうなんだろ?自分より下だと見下せる相手だと分かっている
この場所でだからこそ、解けない相手に対して煽りを入れる。そして
自分は煽るだけでソースを出さない、そういう奴が目立つんだよ。
ソースを出している奴は、質問者の細かい態度に対してケチをつけずに
書いたものを出してんだから、自分の主観や判断基準で
やりとりにケチしかつけないやつの方が断然うぜぇ
>>863
としか言えないお前が一番バカ
0865デフォルトの名無しさん
2006/07/18(火) 17:12:12はいはい、いつまでも自分の基準で低レベルだと思う奴に対して
大きな態度をとるだけで満足してなさいw
0866デフォルトの名無しさん
2006/07/18(火) 17:13:16#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; }
0867デフォルトの名無しさん
2006/07/18(火) 17:13:320868デフォルトの名無しさん
2006/07/18(火) 17:15:18自分の発言態度は棚に上げて?
0869デフォルトの名無しさん
2006/07/18(火) 17:19:34相手にスンナ。
0870デフォルトの名無しさん
2006/07/18(火) 17:21:41いや違うよ。こいつはかなりまえから宿題スレに常駐してるただの馬鹿。
こんな内容のレスしかしない。
ストレス発散でしょ。
0871デフォルトの名無しさん
2006/07/18(火) 17:40:59今日の煽るだけの偉ぶるだけで無能なガイキチ
0872デフォルトの名無しさん
2006/07/18(火) 17:43:050873デフォルトの名無しさん
2006/07/18(火) 17:44:510874デフォルトの名無しさん
2006/07/18(火) 17:45:340875デフォルトの名無しさん
2006/07/18(火) 18:00:320876デフォルトの名無しさん
2006/07/18(火) 18:34:530877デフォルトの名無しさん
2006/07/18(火) 18:55:230878デフォルトの名無しさん
2006/07/18(火) 19:22:03そのうち2個がカオスなんだが
これってまだ幸せなほう?
0879デフォルトの名無しさん
2006/07/18(火) 20:44:27[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;
この続きを書けということなので、この続きをお願いします。
0880デフォルトの名無しさん
2006/07/18(火) 20:57:52C++じゃなくて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;}
0881デフォルトの名無しさん
2006/07/18(火) 20:58:33荒れてないっすよ?ここを荒れさせたら大したもんだ
0882デフォルトの名無しさん
2006/07/18(火) 20:59:470883デフォルトの名無しさん
2006/07/18(火) 21:03:48n++;}if(flag)puts("OK");else puts("NO!");}
一カ所(n+1のところ)閉じ括弧間違えてるけど
0884879
2006/07/18(火) 22:29:29解答ありがとうございます。
はい、Cでした。標準ライブラリの意味を理解してなかったです。
閉じ括弧間違えてしまいました。
3つもミスして申し訳ないです。
breakは、まだ習ってないのですが、breakを使わない方法ってないですか?
それと、>>883に書いてあるn++;}if(flag)puts("OK");else puts("NO!");} は
if (flag == 1)ではなくif(flag)っていう訂正ってことですか?
0885デフォルトの名無しさん
2006/07/18(火) 22:34:33#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");
}
0887デフォルトの名無しさん
2006/07/18(火) 22:47:400888デフォルトの名無しさん
2006/07/18(火) 22:50:44(flag)
(flag != 0)
0890デフォルトの名無しさん
2006/07/18(火) 22:57:22間違ってるって言ったのは、下から三行目の
if(moji[n]=='G' && moji[n+1}=='S'
の話だよ
0891デフォルトの名無しさん
2006/07/18(火) 22:58:290892デフォルトの名無しさん
2006/07/18(火) 23:03:58[2] 問題文(含コード&リンク):2つの数a,bをキーボードから入力し、縦がa文字、横がb文字
でできたしかっけいを表示するプログラムを作れ
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c言語
[4] 期限:できれば早めで;;
[5] その他の制限:入門なのでまだif,for,while文しか習っていません・・・
難しい単語は使えません
お願いします
0893デフォルトの名無しさん
2006/07/18(火) 23:07:16#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;
}
0894892
2006/07/18(火) 23:10:19voidというのはなにかに置き換えられますか?
0895デフォルトの名無しさん
2006/07/18(火) 23:12:15に置き換えられる。
0896892
2006/07/18(火) 23:17:110897デフォルトの名無しさん
2006/07/18(火) 23:31:09[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
0898892
2006/07/18(火) 23:32:04さっきの問題に追加して
#でできた四角形をつくれというものでした。
どのようにしたらよいですか?
0899デフォルトの名無しさん
2006/07/18(火) 23:43:070900892
2006/07/18(火) 23:47:130901デフォルトの名無しさん
2006/07/18(火) 23:48:47ご愁傷様です。
0902にゃんぽん
2006/07/18(火) 23:48:58どうか、Windowのリサイズについてご教授ください。
画像を表示するプログラムを作成しています。
画面をマウスドラッグでサイズ変更をしているとき、
マウス移動の間、図形を連続的に再描画(縦横比を一定)しようとしています。
FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。
いい方法がありましたらご教授願います。
0903デフォルトの名無しさん
2006/07/18(火) 23:54:16下から5行目のprintfの前にif(i%2)って入れるだけで終わりだよ
>>902
スレ違い
0904879
2006/07/18(火) 23:59:490905819
2006/07/19(水) 00:05:52ですが、大文字を入力すると{が出力され小文字を入力すると[が出力されて
しまいます。
0906デフォルトの名無しさん
2006/07/19(水) 00:10:03ちゃんとそのままコピペしてコンパイルしますたか?
まさか自分で手入力ってオチかね?
0907デフォルトの名無しさん
2006/07/19(水) 00:13:080908819
2006/07/19(水) 00:20:09ちゃんと、そのままコピペしてコンパイルしました。
プログラム自体は、自分の問題の答になっているのですか?
それと、C++じゃなくてCでした。これが原因ですかね?
0909デフォルトの名無しさん
2006/07/19(水) 00:31:03んじゃintをcharにするとか
0910デフォルトの名無しさん
2006/07/19(水) 00:32:050912デフォルトの名無しさん
2006/07/19(水) 00:49:45やっぱ>>820を丸々コピペしてねーじゃんw
そりゃzかZの次の文字が来る罠
0913910
2006/07/19(水) 00:50:21つーか、>911あほすぎ。>908でよくぞ「そのままコピペ」と書いたもんだ。
0914デフォルトの名無しさん
2006/07/19(水) 01:45:58と思ってたとか
0915笹井奈琴/377
2006/07/19(水) 02:26:49#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;
}
おそくなった...
0916デフォルトの名無しさん
2006/07/19(水) 03:49:11[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] その他の制限: 特に無し
0917デフォルトの名無しさん
2006/07/19(水) 06:03:54取り敢えず課題1。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2395.txt
0918デフォルトの名無しさん
2006/07/19(水) 06:35:27課題2。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2396.txt
0919デフォルトの名無しさん
2006/07/19(水) 06:40:30×leaf
○leap
な。leap year == うるう年。
0920916
2006/07/19(水) 07:41:56これ出来なかったら単位落とす所でした…
本当に感謝です。
0922デフォルトの名無しさん
2006/07/19(水) 13:25:25[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] その他の制限
0923デフォルトの名無しさん
2006/07/19(水) 13:31:05難しい問題だ。
0924デフォルトの名無しさん
2006/07/19(水) 13:34:32問題・1辺が1の長さの正n角形でした(><)
0925デフォルトの名無しさん
2006/07/19(水) 13:47:430926デフォルトの名無しさん
2006/07/19(水) 13:59:03面積の公式まで求まっているなら、出した方が早いよ。
0927デフォルトの名無しさん
2006/07/19(水) 14:04:35#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;
}
0928636ですが
2006/07/19(水) 14:09:52int 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;
}
このプログラムの(配列を用いた)非再帰版を
どなたか作っていただけませんか?自分の知識では難しくて作れないので。
よろしくお願いします。
0929デフォルトの名無しさん
2006/07/19(水) 14:15:03>>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;
}
ちなみに配列は要らない。
0930デフォルトの名無しさん
2006/07/19(水) 14:18:45ありがと〜〜〜〜!!!!
0931929
2006/07/19(水) 14:26:48int 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;
}
0932928
2006/07/19(水) 14:54:56644にレスできなくてすいませんでした。
928のプログラムの処理の不具合を解消したかったのですが、
931のプログラムで、無事解消できました。
本当に感謝です。どうもありがとうございました。
ちなみに証明の方はもう片付いたので大丈夫です。
気にかけていただき、ありがとうございます。
0933デフォルトの名無しさん
2006/07/19(水) 16:28:47[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] その他の制限: 特に無し
神タン、オネガイシマス(@´ー`)
0934デフォルトの名無しさん
2006/07/19(水) 16:32:45[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--];
}
}
0935934
2006/07/19(水) 16:34:48int 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まで
0936教えて下さい
2006/07/19(水) 17:57:21詳しくは
アップローダです
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=2401
0937デフォルトの名無しさん
2006/07/19(水) 18:15:14#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;
}
0938デフォルトの名無しさん
2006/07/19(水) 18:15:44while(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;
}
}
0939デフォルトの名無しさん
2006/07/19(水) 18:23:19[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] その他の制限: なし
0940デフォルトの名無しさん
2006/07/19(水) 18:46:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2404.txt
寝起きでてきとーにやったから、しっかり確認だけはよろ
0941デフォルトの名無しさん
2006/07/19(水) 19:33:46ペントミノ解法プログラムの課題とはまた作り甲斐のあるものを。
2339通りの解があったはず。
0942デフォルトの名無しさん
2006/07/19(水) 20:25:15[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] その他の制限:なし。
どうか宜しくおねがいします。
0943デフォルトの名無しさん
2006/07/19(水) 22:45:07[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] その他の制限: 特になし
どうか、よろしくお願いします。
0944デフォルトの名無しさん
2006/07/19(水) 23:14:59#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;
}
0945デフォルトの名無しさん
2006/07/20(木) 00:08:13[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もやっている個とは同じだし、違いや長所短所が見つけられません。宜しくお願いします。
0946デフォルトの名無しさん
2006/07/20(木) 00:10:210947デフォルトの名無しさん
2006/07/20(木) 00:19:29どっちも酷いな
0948デフォルトの名無しさん
2006/07/20(木) 00:31:24[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] ポインタ配列を使うこと
0949デフォルトの名無しさん
2006/07/20(木) 00:51:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2408.txt
文字入力のところは自分で適当に変えてくれ
0950デフォルトの名無しさん
2006/07/20(木) 00:52:32pro1.
理由:pro2.は間違っているから(printf(%d 円, %d 個のとき\n",a,b);)
0951デフォルトの名無しさん
2006/07/20(木) 00:56:590952デフォルトの名無しさん
2006/07/20(木) 00:59:28うおぃ!神!ありがとうです!
でもみたことない単語がある(´・ω・`)
0953945
2006/07/20(木) 00:59:290954デフォルトの名無しさん
2006/07/20(木) 01:00:25ありがとうございます
たすかりました。
0955デフォルトの名無しさん
2006/07/20(木) 01:07:49見たこと無い単語って何?
defineなら文字を置き換えてるだけだから直接数字を書き込んでも大丈夫だよ
0956デフォルトの名無しさん
2006/07/20(木) 01:13:12マジすか!本当にトンです(゚´∀`)
0957937-939
2006/07/20(木) 01:16:510958デフォルトの名無しさん
2006/07/20(木) 01:19:16whileは3回でforは4回回ってる気がするんだが気のせいか?
0959デフォルトの名無しさん
2006/07/20(木) 02:23:271000 円, 700 個のとき
0%引き \700000
$ ./p2
1000 円, 700 個のとき
20%引き \560000
pro2かなw
問題の趣旨的に
0960デフォルトの名無しさん
2006/07/20(木) 02:31:30いや、VCで実行してみたがそんな結果にはならなかったぞ?
0961デフォルトの名無しさん
2006/07/20(木) 02:42:510962デフォルトの名無しさん
2006/07/20(木) 02:57:54[2] 問題文(含コード&リンク):
0以上の整数nを入力し、続いてn個の整数データを入力すると
それらn個の整数のデータの最大値と最小値が出るようなプログラムを作りなさい
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (CPad)
[3.3] 言語: (C++)
[4] 期限: (2006年7月21日まで)
[5] その他の制限: (if文とwhile文まで習いました)
0963デフォルトの名無しさん
2006/07/20(木) 03:13:40#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
0964デフォルトの名無しさん
2006/07/20(木) 03:15:00どうもありがとうございます
0965デフォルトの名無しさん
2006/07/20(木) 03:15:41#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;
}
0966デフォルトの名無しさん
2006/07/20(木) 14:37:20[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] その他の制限:問題文に指定されている通りに作ること。
0967966
2006/07/20(木) 14:39:330968デフォルトの名無しさん
2006/07/20(木) 15:31:25[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
0969デフォルトの名無しさん
2006/07/20(木) 15:57:54#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++であってる?
0970お願いします・・
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] 盤面の状態を入出力するサンプルコードと問題の入出力ファイルは配布されています。
お願いします。。。。
0971デフォルトの名無しさん
2006/07/20(木) 16:56:24とりあえずサンプルコードと入出力ファイルをうp
0972デフォルトの名無しさん
2006/07/20(木) 16:56:31先に解法のレポ書いてくれ
0973お願いします・・
2006/07/20(木) 17:19:54サンプルコードは必要でしょうか?今ありません!
必要ならばすぐに学校行ってもって帰ります!
>>972 レポは自分で書くのです。まだかけていません・・
0974デフォルトの名無しさん
2006/07/20(木) 17:24:15そのサンプルコードを参考にプログラムを作成しろって課題じゃないのか?
がんばって学校行って取ってこい。もちろん入出力ファイルも。
0975デフォルトの名無しさん
2006/07/20(木) 17:25:010976デフォルトの名無しさん
2006/07/20(木) 17:26:14どうせ出力するだけのコードなんてたいしたもんじゃない。
入出力の形式だけ教えろ。
0977お願いします・・
2006/07/20(木) 17:29:01見た感じでは
6−−7−−12−
ー2ーー・・・・
・・・・・・・・
・・・・・・・・
という感じだったと思います。
わかりにくければ、学校に行って見てきます!
・・・・・・・
0978デフォルトの名無しさん
2006/07/20(木) 17:30:040979お願いします・・
2006/07/20(木) 17:30:1545分ほどで帰ってきますので。
0980お願いします・・
2006/07/20(木) 17:31:060981お願いします・・
2006/07/20(木) 18:15:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
ここに書き込みさせていただきました
0982デフォルトの名無しさん
2006/07/20(木) 18:29:36この問題がよく分からないのですがどうすればいいのでしょうか?
0983デフォルトの名無しさん
2006/07/20(木) 18:31:06>>1をよく読んで丸投げすればいい
0984982
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] その他の制限: 特にありません
0985デフォルトの名無しさん
2006/07/20(木) 18:39:21[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] その他の制限:
よろしくお願いします。
0986デフォルトの名無しさん
NGNG>>552
0987デフォルトの名無しさん
2006/07/20(木) 18:57:37ありがとうございました
できました
0988お願いします・・
2006/07/20(木) 19:18:270989デフォルトの名無しさん
2006/07/20(木) 19:33:55PC解除してくれないと見られない
いや見なくてもいい気もするんだけどさ
0990デフォルトの名無しさん
2006/07/20(木) 19:34:52単純にバックトラックでいいのか?
うろ覚えだが、たしかアルゴリズムあった気がするんだよな・・・
課題出されるときに一緒にそーいう話聞いてない?
0991お願いします・・
2006/07/20(木) 19:41:17パソから見れると思いますが・・?
>>990 課題は自分のパソに問題文が送られるだけで説明はありませんでした。
同じ列には同じ数字がないように、かつ3×3の9マスにも同じ数字がない
ように並べるらしいです。
3×3の正方形が3×3個連なって、9かける9のマスになっています
0992お願いします・・
2006/07/20(木) 19:42:230993デフォルトの名無しさん
2006/07/20(木) 19:45:210994デフォルトの名無しさん
2006/07/20(木) 19:45:520995デフォルトの名無しさん
2006/07/20(木) 19:46:350996デフォルトの名無しさん
2006/07/20(木) 19:47:360997デフォルトの名無しさん
2006/07/20(木) 19:49:120998デフォルトの名無しさん
2006/07/20(木) 19:51:510999デフォルトの名無しさん
2006/07/20(木) 19:52:121000デフォルトの名無しさん
2006/07/20(木) 19:52:3510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。