C/C++の宿題を片付けます 57代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/01/09(月) 10:02:47【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 2.9 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++の宿題を片付けます 56代目
http://pc8.2ch.net/test/read.cgi/tech/1135125328/
【過去スレ一覧】
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/01/09(月) 10:06:47http://ugzone.com/flash/flash/2get.html
オラオラ、たまちゃん様が2getしちゃうぞ〜?
〜⌒〜⌒〜⌒〜/⌒\〜⌒〜
⌒〜⌒〜⌒〜/ `・ω)ミ
〜⌒〜⌒〜⌒〜 U彡〜⌒〜⌒〜⌒
〜⌒〜⌒〜⌒〜⌒〜⌒〜⌒〜⌒〜⌒〜
0003デフォルトの名無しさん
2006/01/09(月) 10:17:15乙
0004デフォルトの名無しさん
2006/01/09(月) 10:38:38[2] 問題文(含コード&リンク):int_{-1}^{1}f(x)dxをモンテカルロ法で計算するプログラムを作れ。
試行回数n:=2^MとしてM=2からM=20までのMの値と積分値を出力せよ。
fは自分で適当に与える。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2006年1月6日18時
[5] その他の制限:なし
0005デフォルトの名無しさん
2006/01/09(月) 10:47:09[2] 問題文(含コード&リンク):n:=2^MでMを1から27まで順に変えながら、n以下の素数の個数p(n)と{p(n)*log{n}}/nの値を出力するプログラムを作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2006年1月6日18時
[5] その他の制限:なし
0007デフォルトの名無しさん
2006/01/09(月) 11:20:150008デフォルトの名無しさん
2006/01/09(月) 11:47:200009デフォルトの名無しさん
2006/01/09(月) 14:45:02数字、英字の前後には半角スペースを入れるように。
0010デフォルトの名無しさん
2006/01/09(月) 14:47:13俺基準?
0011デフォルトの名無しさん
2006/01/09(月) 15:03:51世間共通基準じゃないの?
教科書、論文もそうなってるし。
0012デフォルトの名無しさん
2006/01/09(月) 15:27:44実行にかなり時間がかかること、メモリを結構(300MB弱)必要とすること
の2点に注意せよ。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
char *sieve_of_eratosthenes(int upper) {
int i, notprime;
char *integers = (char *)malloc(upper + 1);
for (i = 2; i <= upper; i++) integers[i] = 1;
integers[0] = integers[1] = 0;
for (i = 2; i <= upper / 2; i++) {
notprime = i;
while ((notprime += i) <= upper) integers[notprime] = 0;
}
return integers;
}
#define MAX_M (27)
int main(void) {
int MAX = 2 << MAX_M, n, M, i, count = 0;
char *sieve = sieve_of_eratosthenes(MAX);
for (n = 2, M = 1; M <= MAX_M; n <<= 1, M++) {
for (i = (n >> 1) + 1; i <= n; i++) if (sieve[i]) count++;
printf("M=%2d:p(n)=%10d:{p(n)*log{n}}/n=%f\n", M, count, (count * log((double)n)) / n);
}
free(sieve);
return 0;
}
0013デフォルトの名無しさん
2006/01/09(月) 15:33:350014デフォルトの名無しさん
2006/01/09(月) 18:08:150015デフォルトの名無しさん
2006/01/09(月) 19:04:36[2] 問題文(含コード&リンク):
13台分の車両の長さの線路とその中心に3台分の転車台(くるっと回して向きを反転させる)があり、その上
に、1台の機関車と1〜7の番号が付けられた7台の客車の8両編成の列車が最初は右向きに配置されているとする。
この状態から転車台を使って、左向きに配置された状態(左から順に、機関車、客席1、2、‥)にする問題を
考える。ただし次のようなルールがある。
・機関車と客車は自由に切り離し可能であり、1回の転車で可能な台数は1〜3台である(ただし、線路の長さの関係
で、どんな状況でも1〜3台可能というわけではないことに注意。)
・転車台で向きを反転させる部分の中に、必ず機関車が含まれていなければならない。
・機関車には前後の向きはあるが、客席にはない。
目標状態に至るまでの手順を縦型探索、横型探索、A*アルゴリズムにより探索するプログラムを作成せよ。
ヒューリスティック値は各自でいろいろ設定してみて、最適なものを探してみること。また、状態を保持する
リストは配列のように保持可能な要素数が固定されているものでなく、ポインタなどを利用して保持可能要素数を
動的に変更可能なものを使用すること。
[3] 環境
[3.1] OS:WindowsXP [3.2] borland bcc55 [3.3] 言語: C言語
[4] 期限: 1/19
初期状態
+++++++++++++++++++++++++++++++
|7|6|5|4|3|2|1|機関車|
+++++++++++++++++++++++++++++++
|←5台分→|←3台分 →|←5台分→|
初期状態から転車させた状態
+++++++++++++++++++++++++++++++
|7|6|5|4|3|機関車|1|2|
+++++++++++++++++++++++++++++++
目標状態
++++++++++++++++++++++++++++++++
|機関車|1|2|3|4|5|6|7|
++++++++++++++++++++++++++++++++
001615
2006/01/09(月) 19:06:47切羽詰まっているのでこちらでも質問させてください。
卒業かかってるのでわかる方お願いします。。・;+゜・(ノД`):・゜+:・。
0017デフォルトの名無しさん
2006/01/09(月) 19:30:44A*の参考コード
ttp://www.geocities.com/jheyesjones/astar.html
0018デフォルトの名無しさん
2006/01/09(月) 23:16:14めるせんぬはゆるせんぬ
0019デフォルトの名無しさん
2006/01/09(月) 23:23:34[2] 問題文:問題1 3つの整数の並べかえ
三つのint型整数を昇順に並べかえる関数
void sort3(int *n1, int *n2, int *n3)
を作成せよ。
たとえば、a、b、cがそれぞれ5、3、7のときに sort(&a&b&c) と呼び出した後には
aには3、bには5、cには7が格納されていなければならない
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 10日の16時まで
[5] その他の制限: 動作確認のためのmain関数を作成する。
0020デフォルトの名無しさん
2006/01/09(月) 23:57:58#include <stdio.h>
void sort3( int *n1, int *n2, int *n3 )
{
int tmp;
if ( *n1 > *n2 ) { tmp = *n1; *n1 = *n2; *n2 = tmp; }
if ( *n2 > *n3 ) { tmp = *n2; *n2 = *n3; *n3 = tmp; }
if ( *n1 > *n2 ) { tmp = *n1; *n1 = *n2; *n2 = tmp; }
}
int main( void )
{
int a = 5, b = 3, c = 7;
printf( "a: %d, b: %d, c: %d\n", a, b, c );
puts( "sorting..." );
sort3( &a, &b, &c );
printf( "a: %d, b: %d, c: %d\n", a, b, c );
return 0;
}
0021デフォルトの名無しさん
2006/01/10(火) 01:11:023つの数はmain(int argc, char *argv[])じゃないの??
0022デフォルトの名無しさん
2006/01/10(火) 04:10:170023デフォルトの名無しさん
2006/01/10(火) 04:57:380024デフォルトの名無しさん
2006/01/10(火) 05:48:09[2] 問題文:8×8の盤面上で白と黒の石を使い、相手の色の石を自分の色の石で挟むことで反転させ合う、皆さんよくご存知のオセロと同じルールの白黒ゲームを自動的に実行して盤面を表示するプログラムを作りなさい。
その際、実行する手は、その局面で最も多く相手の石を反転させるものを選ぶこと。ただし同数の手が複数あるときはその中の任意の1つを選べば良い。また、実行する手が存在しない場合はPass!と表示すること。
白が先手として実行を開始すること。また各回とも次に示す情報を画面に表示すること。
・○あるいは●の石を置く座標
・それによって相手の何個の石が反転するか
・手を実行直後の盤面
なお、盤面の表示は一手ごとに画面を静止させてキー入力を促すこと。
最後には○、●それぞれの数を示し、どちらがかったかも示すこと。
[3] 環境
[3.1] OS:Windows XP
[3.2] CPad for Borland C++ Compiler
[3.3] 言語: C
[4] 期限: 2006年1月10日まで
0025デフォルトの名無しさん
2006/01/10(火) 06:44:34今日が期限じゃん
こんなにギリギリで貼られても困る
俺は学校だし
0026デフォルトの名無しさん
2006/01/10(火) 06:55:01マルチ氏ね
002724
2006/01/10(火) 08:23:23期限ギリギリに課題にきずいて焦ってマルチになってしまったのですが・・・。
0028デフォルトの名無しさん
2006/01/10(火) 10:16:24一生PCの電源点けないほうがいいんじゃない
0029デフォルトの名無しさん
2006/01/10(火) 10:24:55[2] 問題文(含コード&リンク):0,1,1,2,2,2,3,4 から
3個選んだときの順列をすべて出力せよ(重複を許す順列)
ただし、同じ順列を表示しないこと
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2006年01月11日17:00まで
[5] その他の制限: 配列、ポインタ、再帰関数を使用
動的メモリ、構造体は習っていないので使用不可
出来ることならコメントもつけて頂けるとありがたいです。
ポインタと再帰関数を使ったプログラムが、
読めるかどうかも危うい未熟者ですので何卒、よろしくお願いします。
0030デフォルトの名無しさん
2006/01/10(火) 10:28:200031デフォルトの名無しさん
2006/01/10(火) 12:08:19[2] 問題文(含コード&リンク):
f(x,y)={((2x-y)^2*(x+3y)^2+x+y)/((4x^2+y^2)*(x^2+9y^2)+1)}+arctan(x^2+y^2-1)^2
の最小(極小)点およびその値(最小値)を次の方法で求める:
適当な初期値(x0,y0)から始めてn=0,1,2,3,・・・に対して
1.ynを固定して1変数関数g(x)=f(x,yn)を考え,
黄金分割法により、この最小点をx=xn+1として求める
2.上のxn+1を固定して,1変数関数h(y)=f(xn+1,y)を考え,
やはり黄金分割法により,最小点をy=yn+1として求める。
これらを繰り返して,(x1,y1),(x2,y2),・・・を生成し,(xn,yn)がほとんど変化
しなくなったら,これを近似解として返す。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc バージョン?
[3.3] 言語: C
[4] 期限: 1月11日12:00まで
[5] その他の制限: xnとかxn+1→x*nではなくて、xの配列です。みづらくてすみません。
前スレでも聞いたのですが・・・。
この問題はもう駄目でしょうか・・・?
どなたかお願いいたします。
0032デフォルトの名無しさん
2006/01/10(火) 12:13:43風邪で熱っぽい漏れが作ったぞ。
で、24はまだいるのか?
マルチしてるようだし、どっかで答えてもらったか?
0033デフォルトの名無しさん
2006/01/10(火) 12:18:35ダメってことないけど、ぱっと見でめんどくさそうなのは敬遠されがちだね。
せめて黄金分割法の説明してくれない限り、誰も手を出さないんでないかな。
0034デフォルトの名無しさん
2006/01/10(火) 12:19:07[2] 問題文(含コード&リンク):毎日の株価を連続して入力し、
前日より上昇している場合プラス記号'+’を、下降の場合は
マイナス記号'-'を出力する(最初は'+’を出力してよい)。
ストッパは-999とする。
<入力例>
23 24 19 17 20 24 27 23 18 16 -999
<出力例>
+ + - - + + + - - -
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1月27日まで
どうかよろしくお願いします…m(__)m
0035デフォルトの名無しさん
2006/01/10(火) 12:34:41同じだったら?
0036デフォルトの名無しさん
2006/01/10(火) 12:40:03//取り敢えず同じだったら'='を出力してみる。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int value;
int oldValue = 0;
for (;;) {
if (fscanf(stdin, "%d", & value) < 1) {
fprintf(stderr, "Illegal input.\n");
return EXIT_FAILURE;
}
if (value == -999) {
return EXIT_SUCCESS;
}
if (value > oldValue) {
putchar('+');
} else if (value < oldValue) {
putchar('-');
} else {
putchar('=');
}
oldValue = value;
putchar(' ');
}
}
003734
2006/01/10(火) 12:56:38どうも有難うございますm(__)m
株価が同じ場合であったときのことは記載されていなかったので、
教授に聞いてこようかと思います。
0038デフォルトの名無しさん
2006/01/10(火) 13:24:08ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1420.txt
かなりテキトーに作ってる。
ttp://gakuen.gifu-net.ed.jp/~contents/museum/golden/page62_5.html
この辺を参考にしたんで、手法が違ってるようなら勝手に直しとけ。
003924
2006/01/10(火) 14:34:15教えてほしいです。お願いします。
004032
2006/01/10(火) 15:09:24004124
2006/01/10(火) 15:26:38ひとつ質問なんですが、このプログラムだと2手目の白がうったときに余計なところまでひっくり返りませんか?
0042デフォルトの名無しさん
2006/01/10(火) 15:42:24__ へ
i. ツ ゝ_!
. !_l _r' ⌒ヽ ノ ,/
. l ゝ、 ゙T ̄了:), ri' " ,/
゙ゝ、 `)"ー、._,r:'"` l、,/
ヾ、 l : i ,/
Y l : l'"
! l : ,l←なぜか英雄
l、 l : l
/~ ニ口ニ{
! ヽ ゙!
ゝ ヾ. ゙! ,D.←質問した>>24
\ ヽ.゙!ー七ヽ, __
\ )゙! く ゝ、 /゙ンニヾヽ,
 ̄ ̄ ̄ ̄ ̄ ̄ ̄/ / ゙!" ̄ ゙ ̄ト;'(_)゙lー! ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ゝ,/ l ! l.l l_/ヽ.ヽ,H、←風邪を押して一所懸命
/ ,/ ゝニl `¨¨ ~~~ PG組んだ>>32>>40
(ゞヘ、 | |
004332
2006/01/10(火) 15:49:13全然気付かなかった。
修正版↓
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1422.c
0044デフォルトの名無しさん
2006/01/10(火) 15:57:02あ?
あーまだバグってんな。
004532
2006/01/10(火) 16:23:03で、vol0.03。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1423.c
こうなったら、どこまで行くか試してみるのも一興か。
004631
2006/01/10(火) 16:24:06コンパイルしたところ、下のようなエラーが出てしまうのですが、どこか間違っているのでしょうか?
ougon.c: In function `main':
ougon.c:76: warning: control reaches end of non-void function
/tmp/cczqUJoV.o: In function `f':
/tmp/cczqUJoV.o(.text+0x53): undefined reference to `atan'
collect2: ld returned 1 exit status
004732
2006/01/10(火) 16:36:390048デフォルトの名無しさん
2006/01/10(火) 16:52:05gcc ougon.c -lm
~~~~多分この辺
004924
2006/01/10(火) 17:15:16ほんとにありがとうございました。
0050デフォルトの名無しさん
2006/01/10(火) 17:19:38[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録し、
新しく入力された点数以上の氏名を出力するプログラムを書け。
(必ず、print_studen(struct student s)と言う学生一人分の情報を
1行に表示する関数を作成し、それを利用して出力を行うこと。)
<構造体の例>
struct student{
char name[50], id[20];
int score;
};
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1月23日まで
005131
2006/01/10(火) 17:29:10>>48 ありがとうございます。ご指摘の通りでした。
>>31をコンパイルして実行できたのですが、ループが3,4回くらいで終わるのは
仕様でしょうか?
0052デフォルトの名無しさん
2006/01/10(火) 17:50:56[2] 問題文(含コード&リンク):
10個の整数の中から最大のものと最小のものを探す
関数をそれぞれ作成し、メインプログラムで与えた
10個の整数の中の最大値、最小値を求めるプログラム
(合計3個の関数から成る)を作成しなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2005年1月12日12:00まで
[5] その他の制限: どうかお願いします。
0053デフォルトの名無しさん
2006/01/10(火) 18:14:52#include <stdio.h>
#define SELECT2(op,x,y) ((y)op(x)?(y):(x))
#define SELECT3(op,x,y,z) SELECT2(op,(x),SELECT2(op,(y),(z)))
#define SELECT5(op,x,y,z,v,w) \
SELECT2(op,SELECT2(op,(x),(y)),SELECT3(op,(z),(w),(v)))
#define SELECT10(op,q,r,s,t,u,v,w,x,y,z) \
SELECT2(op,SELECT5(op,(q),(r),(s),(t),(u)),SELECT5(op,(v),(w),(x),(y),(z)))
#define SELECT10_F(f,q,r,s,t,u,v,w,x,y,z) \
int f##_10(q,r,s,t,u,v,w,x,y,z)int q,r,s,t,u,v,w,x,y,z; \
{ return SELECT10(f,q,r,s,t,u,v,w,x,y,z); }
#define max >
#define min <
SELECT10_F(max,q,r,s,t,u,v,w,x,y,z) SELECT10_F(min,q,r,s,t,u,v,w,x,y,z)
int main()
{
printf("max..%d\nmin..%d\n",
max_10(0,8,4,12,2,10,6,14,1,9),
min_10(0,8,4,12,2,10,6,14,1,9));
}
0054デフォルトの名無しさん
2006/01/10(火) 18:19:41ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1424.txt
普通にループさせてみた
>>53
すばらしい。
0055デフォルトの名無しさん
2006/01/10(火) 18:51:13[2] 問題文(含コード&リンク):
[問題]正の整数を入力し,それを各桁毎に分解し,
それらの数字を正順及び逆順に,間に1つ以上の空白をあけて出力するプログラムを書け。
例えば,12345 と入力したら,5 4 3 2 1 と 出力することになる。
ただし,整数の桁数は最大9桁であるとする.
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C++
[4] 期限: 一月下旬
[5] その他の制限: 繰り返しの問題です。よろしくお願いします。
0056デフォルトの名無しさん
2006/01/10(火) 19:32:41仕様。その回数が悪ければアルゴリズムとして多分紹介されない。
意図的にループ回数が長くなりそうな関数を用意したんで同様に突っ込んでみたら?
double f(double x, double y){double a = x - 57.0, b = y - 31.0; return 100*(a+b)*(a+b)+(b-a)*(b-a); }
あとはEPSを小さくして精度を上げるとか。
0057デフォルトの名無しさん
2006/01/10(火) 19:49:10ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1425.txt
てきとーに作ってみた。
scanfの"%9s"の9を、#defineしたもので置き換えたかったんだが
これってどうやるんだっけ?忘れてしまった。
0058デフォルトの名無しさん
2006/01/10(火) 19:57:32仕様通り「分解」が面倒なので、ズルをした
#include <stdio.h>
#include <string.h>
#define swap(x,y) do{char temp; temp=x; x=y; y=temp;}while(0)
int main()
{
int i,j,n;
char s[10];
printf("9桁以内の整数を入力\n-->");
scanf("%s",s);
if(strlen(s)>9){
printf("9桁までと言ったはずだ\n");
return 1;
}
n=strlen(s);
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(s[i]<s[j]) swap(s[i],s[j]);
}
}
for(i=0;i<n;i++){
printf("%c ",s[i]);
}
putchar('\n');
return 0;
}
0059553
2006/01/10(火) 20:54:41[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
Web ページの探索アルゴリズム
1.文字列操作を使ったURLの比較アルゴリズムの作成
2.HTML文書からハイパーリンクを抽出するアルゴリズムの作成
3.Webページの構成を解析するアルゴリズムの作成
という問題です。
詳しくは http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1401.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限: 1月11日8時まででお願いします。
以前、553としてお願いしたんですが、まだ完成していません。
明日、レポートとして提出しなければならないんです。コメントも書かないといけないんです。
誰かお願いします。
0060デフォルトの名無しさん
2006/01/10(火) 21:30:25scanf("%*d",s,/*桁数指定する変数、等*/);
っていうのはprintf限定か?
0061デフォルトの名無しさん
2006/01/10(火) 21:47:37調べてみよう。
すぐに判ることだが、scanf()系では変換結果を無視してしまう。
0062デフォルトの名無しさん
2006/01/10(火) 22:33:37[2] 問題文(含コード&リンク):
2つのグラフが同型であるかどうかを判定するプログラムを作成しなさい。ただし、入力データは講義で配布した形式(mat4,mat5,...)のものとする。また、次の条件を守ること。
* プログラムはC言語で作成して下さい。
* 同型の場合はその対応(全単射)も出力すること。
* 可能な限り速いプログラムを作成しなさい。例えば、各頂点の次数に着目したり、木を探索する際途中で探索しても無意味だと判明した時点でそれ以下の探索を中止するなど枝刈りを行うことで高速化できます。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:どちらでも可
[4] 期限: 2006年01月11日16:00
入力データ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1426.zip
0063デフォルトの名無しさん
2006/01/10(火) 22:42:46誰も作ってくれなかったための保険として書いておくと、wget という
プログラムがあって、ソースも公開されているから参考になるかもね。
でもむずいよ。
ttp://www.gnu.org/software/wget/wget.html
0064デフォルトの名無しさん
2006/01/10(火) 22:43:00プログラムを作成せよ。
・sin(π/4)の値を二倍して求めること。
・階乗と累乗の計算は各々関数で行うこと。
・πの値(3.141592)はプログラムに与える。
・重要な処理のところを、コメント文で簡単に説明する。
(お願い)
12日の朝8時50分ぐらいまでにお願いします。
0065デフォルトの名無しさん
2006/01/10(火) 22:45:42�@テンプレに従っていない
�A個人的に卒研が忙しい
�BJavaしか使えない
0066デフォルトの名無しさん
2006/01/10(火) 22:47:160067 ◆1oKmZSIAF.
2006/01/10(火) 22:48:53[2] 問題文(含コード&リンク):
RSA暗号のプログラム作成。
まず鍵ペアの作成。
(1)Nを求める N=p*q(p,qは素数) 素数は自分で入力することにする。
(2)Lを求める L=lcm(p-1,q-1) 最小公倍数
(3)Eを求める 1<E<L gcd(E,L)=1 EとLの最大公約数は1(EとLは互いに素)
(4)Dを求める 1<D<L E*D mod L =1
(暗号化) 平文^E mod N (復号化) 暗号文^D mod N
p,q、平文を自分で入力して(1)〜(4)、暗号化、復号化を出力。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 2006年1月11日朝まで。
鍵ペアの作成まででも良いので、よろしくお願いします。
0068デフォルトの名無しさん
2006/01/10(火) 22:52:47拡張子 zip なのに zip じゃないとはこれいかに
0069デフォルトの名無しさん
2006/01/10(火) 22:55:24007055
2006/01/10(火) 22:57:21正しい出力する数字は以下の通りです。
[2] 問題文(含コード&リンク):
[問題]正の整数を入力し,それを各桁毎に分解し,
それらの数字を正順及び逆順に,間に1つ以上の空白をあけて出力するプログラムを書け。
例えば,12345 と入力したら,
1 2 3 4 5 (正順)
5 4 3 2 1 (逆順)
と 出力(数字だけ)することになる。
ただし,整数の桁数は最大9桁であるとする。
すでに教えてくれた方には申し訳ありませんが、もう一度よろしくおねがいします。
0071デフォルトの名無しさん
2006/01/10(火) 22:57:30でも文系だしわけわかんないからパス。
0072デフォルトの名無しさん
2006/01/10(火) 22:58:43すいません�Bは一発ギャグです
0073デフォルトの名無しさん
2006/01/10(火) 23:08:12ばか。答え↓
#include <stdio.h>
int main( void )
{
int n_digits[10] = { 0,0,0,0,0,0,0,0,0,0 };
int c, i;
while (( c = getchar() ) != EOF )
++n_digits[ c - '0' ];
for ( c = 0; c < 10; ++c ) {
for ( i = 0; i < n_digits[c]; ++i )
printf( "%d ", c );
}
putchar( '\n' );
for ( c = 10; c >= 0; --c ) {
for ( i = 0; i < n_digits[c]; ++i )
printf( "%d ", c );
}
putchar( '\n' );
return 0;
}
>>72
ナイスぼけだったと思う
0074デフォルトの名無しさん
2006/01/10(火) 23:09:51意地悪してみた。VC6では無理かもしれない。
#include <iostream>
#include <sstream>
#include <string>
#include <iterator>
#include <altorithm>
int main()
{
using namespace std;
int n;
cin >> n;
ostringstream oss;
oss << n;
string str = oss.str();
ostream_iterator<char> osit(cout, " ");
copy(str.begin(), str.end(), osit);
cout << '\n';
copy(str.rbegin(), str.rend(), osit);
cout << endl;
}
007558
2006/01/10(火) 23:12:17見逃した俺も悪いが、それぐらいの修正は自分でやってくれよ
#include <stdio.h>
#include <string.h>
#define swap(x,y) do{char temp; temp=x; x=y; y=temp;}while(0)
int main()
{
int i,j,n;
char s1[10],s2[10];
printf("9桁以内の整数を入力\n-->");
scanf("%s",s1);
if(strlen(s1)>9){
printf("9桁までと言ったはずだ\n");
return 1;
}
n=strlen(s1);
strcpy(s2,s1);
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(s1[i]>s1[j]) swap(s1[i],s1[j]);
if(s2[i]<s2[j]) swap(s2[i],s2[j]);
}
}
for(i=0;i<n;i++) printf("%c ",s1[i]);
putchar('\n');
for(i=0;i<n;i++) printf("%c ",s2[i]);
putchar('\n');
return 0;
}
0076デフォルトの名無しさん
2006/01/10(火) 23:52:29無意味な意地悪だったなw
007759
2006/01/11(水) 00:25:13データを見ましたが、難しすぎてまったくわかりません。
これを出したら、さすがにやばいので、誰かお願いします。
私を助けてください。進級したいんです。これが甘えだということもわかってます。
よろしくお願いします。
0078デフォルトの名無しさん
2006/01/11(水) 00:31:000079デフォルトの名無しさん
2006/01/11(水) 00:34:47問題の中に書いてあるwww.edu.fe.takushoku-u.ac.jpにアクセス出来ないんだが。
www.takushoku-u.ac.jpならアクセス出来るんだけど違うよねぇ
0080デフォルトの名無しさん
2006/01/11(水) 00:43:31俺HTMLよく知らないし
0081デフォルトの名無しさん
2006/01/11(水) 00:51:09過去5文字が"href="だったらダウト
008255
2006/01/11(水) 00:55:57ありがとうございます。
>>74を
#include <iostream>
#include <sstream>
#include <string>
#include <iterator>
int main()
{
using namespace std;
int n;
cin >> n;
ostringstream oss;
oss << n;
string str = oss.str();
ostream_iterator<char> osit(cout, " ");
copy(str.begin(), str.end(), osit);
cout << '\n';
copy(str.rbegin(), str.rend(), osit);
cout << endl;
return 0;
}
という風にしてみたら自分のパソコンでは無事に実行できましたが大学に送ると以下のエラーが出ました。
work.cpp: In function `int main()':
work.cpp:15: implicit declaration of function `int copy(...)'
work.cpp:17: warning: cannot pass objects of type `reverse_iterator' through `...'
work.cpp:17: warning: cannot pass objects of type `reverse_iterator' through `...'
***error*** コンパイルできませんでした
何度もすみませんがまたよろしくお願いします。
0083デフォルトの名無しさん
2006/01/11(水) 01:37:02[2] 問題文(含コード&リンク): headコマンドを実装せよ
[3] 環境
[3.1] OS:WinXP
[3.2] BCC無償版
[3.3] 言語: C
[4] 期限: 2006/01/12
http://proxy.f2.ymdb.yahoofs.jp/users/ccb552f0/bc/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8/head.c.c?bcgtoOEBR_MiPR_O
↑
にソースをアップさせていただきました。
このソースに、コマンドラインから渡したパラメータを一つないし二つのみに限定し
三つ以上渡してしまった場合はエラー表示をさせるという機能を追加したいのですが
どうすればよいのでしょうか?
お手数でなければ、ソースにコメントをつけてくださると助かります。
不躾な御願いかと思われますが何卒よろしく御願いします。
0084デフォルトの名無しさん
2006/01/11(水) 01:51:220085デフォルトの名無しさん
2006/01/11(水) 01:53:000086デフォルトの名無しさん
2006/01/11(水) 02:01:02アホか。それを言ったらこのスレの意義がなくなるだろが。
0087デフォルトの名無しさん
2006/01/11(水) 02:06:05#include <algorithm>
#include <string>
#include <functional>
struct print : public std::unary_function< const char&, std::ostream& > {
std::ostream& operator()(const char& t) const {
return std::cout << t << ((t == '\n') ? "" : " ");
}
};
int main(int argc, char* argv[]) {
if (argc < 2) {
std::cout << "9" << std::endl;
return 1;
}
std::string str(argv[1]);
if (str.length() > 9) {
std::cout << "9" << std::endl;
return 1;
}
std::for_each(str.begin(), str.end(), print())('\n');
std::for_each(str.rbegin(), str.rend(), print())('\n');
return 0;
}
0088デフォルトの名無しさん
2006/01/11(水) 02:08:360089デフォルトの名無しさん
2006/01/11(水) 02:15:12まったく手がつかずに困っています。
0090デフォルトの名無しさん
2006/01/11(水) 02:18:25Pascalの宿題は俺にやらせろ!!Part1
http://pc8.2ch.net/test/read.cgi/tech/1089719714/
0091デフォルトの名無しさん
2006/01/11(水) 02:19:55ありがとうございます!!
0092デフォルトの名無しさん
2006/01/11(水) 05:35:59if(argc>3)
return 0;
0093デフォルトの名無しさん
2006/01/11(水) 06:03:38今まで何を習ってきたのか
ここで甘えても何の進歩にもならない
また同じ事を繰り返すだけ
0094デフォルトの名無しさん
2006/01/11(水) 07:32:21[2] 問題文(含コード&リンク):
nを入力すると、n!を計算して出力するプログラムを再帰を用いて作りなさい。
(nを読み込む時に、fgets(), sscanf() を用いること。)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006/01/13
単純だとは思いますが、どうかよろしくお願いします。
0095デフォルトの名無しさん
2006/01/11(水) 08:43:230096デフォルトの名無しさん
2006/01/11(水) 09:57:21#include <stdio.h>
int kai(int n)
{
if(n==1) return n;
else return n * kai(n-1);
}
int main()
{
int a;
char s[10];
printf("数字入れなはれ(´・ω・) ");
fgets(s,sizeof(s),stdin);
sscanf(s,"%d",&a);
if(a<=0) printf("\nまたまたご冗談を(´・д・`)");
else printf( "\n%d の階乗は %d ですよ.\n", a, kai(a));
return 0;
}
0097デフォルトの名無しさん
2006/01/11(水) 09:57:56#include <stdio.h>
unsigned get_factorial( unsigned n )
{
if ( n == 1 || n == 0 ) return 1;
return n * get_factorial( n-1 );
}
int main( void )
{
char buf[ 1024 ];
unsigned n;
printf( "Input n > " );
fgets( buf, sizeof(buf), stdin );
sscanf( buf, "%u", &n );
printf( "%u! = %u\n", n, get_factorial(n) );
return 0;
}
0098デフォルトの名無しさん
2006/01/11(水) 10:31:05いきなりsizeofとか使ってきたら期待されそうだな。
0099デフォルトの名無しさん
2006/01/11(水) 12:20:55こう書かなくても平気?
0100デフォルトの名無しさん
2006/01/11(水) 12:25:45[2] 問題文(含コード&リンク):
N個の要素よりなる配列をmain関数に宣言する。
配列にデータを読み込む関数inputをmainから呼んで入力を行い
データを書き出す関数outputを呼んで出力するプログラムを
配列で呼んで配列で受け取るやりかたで作成せよ
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年1月13日
[5] その他の制限:昔ここで教えて貰ったんですけど、ソースプログラムが
違うって言われたのでおねがいします。
0101デフォルトの名無しさん
2006/01/11(水) 12:31:10[2] 問題文(含コード&リンク):
二次元渦の運動方程式をつかって二対の渦の運動を数値的に求める。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年1月20日
[5] その他の制限:gnuplot
0102デフォルトの名無しさん
2006/01/11(水) 12:43:39>>101 2次元渦の運動方程式を書け
0104101
2006/01/11(水) 13:18:18http://www.math.meiji.ac.jp/~mk/lecture/ouyousuurijikken/experiment-ode.pdf
の3番 渦糸の力学系 平面状にあるN個の渦糸の運動を表す方程式よりお願いします。
0105デフォルトの名無しさん
2006/01/11(水) 14:01:22RKF45で?
0106101
2006/01/11(水) 14:05:340107デフォルトの名無しさん
2006/01/11(水) 14:59:37あってんだかあってないんだかわからん
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define TIME_SLICE 0.001 /* h = t_{k+1} - t_k */
int usage()
{
printf("Usage: prog x1 y1 x2 y2 gamma1 gamma2 ");
return 1;
}
0108デフォルトの名無しさん
2006/01/11(水) 15:00:43typedef struct _point
{
double x;
double y;
} point;
double distance(point p1, point p2)
{
return pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2);
}
double fx(int n, point* p, double* g)
{
double res = -g[1-n]*(p[n].y - p[1-n].y);
res /= 2*M_PI*distance(p[1],p[2]);
return res;
}
0109デフォルトの名無しさん
2006/01/11(水) 15:01:23double fy(int n, point* p, double* g)
{
double res = g[1-n]*(p[n].x - p[1-n].x);
res /= 2*M_PI*distance(p[1],p[2]);
return res;
}
void f(point* p, double* g, point* res)
{
res[0].x = fx(0,p,g);
res[0].y = fy(0,p,g);
res[1].x = fx(1,p,g);
res[1].y = fy(1,p,g);
}
0110デフォルトの名無しさん
2006/01/11(水) 15:02:10void euler(point* p, double* g)
{
point res[2];
f(p,g,res);
p[0].x += TIME_SLICE*res[0].x;
p[0].y += TIME_SLICE*res[0].y;
p[1].x += TIME_SLICE*res[1].x;
p[1].y += TIME_SLICE*res[1].y;
}
void show(point* p)
{
printf("(%lf,%lf),\t(%lf,%lf)\n",p[0].x,p[0].y,p[1].x,p[1].y);
}
0111デフォルトの名無しさん
2006/01/11(水) 15:03:05int main(int argc, char* argv[])
{
point p[2];
double gamma[2];
if (argc < 7) return usage();
p[0].x = atof(argv[1]);
p[0].y = atof(argv[2]);
p[1].x = atof(argv[3]);
p[1].y = atof(argv[4]);
gamma[0] = atof(argv[5]);
gamma[1] = atof(argv[6]);
show(p);
while (1)
{
euler(p,gamma);
show(p);
}
return 0;
}
0112101
2006/01/11(水) 15:18:02私はrungekuttaの方でやってたのですがどうもうまくいきません。
問題用紙をスキャンしました。
http://briefcase.yahoo.co.jp/bc/kanaty321/vwp2?.tok=bc_HJkWBGPY6wJIL&.dir=/&.dnm=%b1%b2%b1%bf%c6%b0.pdf&.src=bc
課題8,9で止まっています。
0113デフォルトの名無しさん
2006/01/11(水) 15:29:140114デフォルトの名無しさん
2006/01/11(水) 15:32:13[2] 問題文(含コード&リンク):
連成振動の問題。http://www.ne.jp/asahi/tokyo/nkgw/gakusyu/rikigaku/kyousin/kyousin_kaisetu/kyousin_kaisetu.html
Runge-Kutta法で数値解を求めて、それを元に上記ページ上にあるようなグラフ(図1、図2)を描きたい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月19日
[5] その他の制限:
0115101
2006/01/11(水) 15:41:51実行についてですが、任意の条件をUsageに入れて実行するということでしょうか。
0116デフォルトの名無しさん
2006/01/11(水) 15:42:24[2] 問題文(含コード&リンク):
・sin(x)のマクローリン展開から√2の近似値を計算する
プログラムを作成せよ。
・sin(π/4)の値を二倍して求めること。
・階乗と累乗の計算は各々関数で行うこと。
・πの値(3.141592)はプログラムに与える。
・重要な処理のところを、コメント文で簡単に説明する。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月13日8:50まで
0117デフォルトの名無しさん
2006/01/11(水) 16:39:47[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1427.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 2006年 1月17日
宜しくお願いします。
0118デフォルトの名無しさん
2006/01/11(水) 17:43:26http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1428.txt
0119初心者ですみません
2006/01/11(水) 18:06:02#include <stdio.h>
int sosu (int n)
{
int i;
for ( _(A)_;_(B)_ ;i++){
if( _(C)_) {/*nがiで割り切れた場合には*/
return 0; /*0を返す*/
}
} /*繰り返し処理の終了*/
return 1; /*最後まで割り切れなかった場合には1を返す*/
}
int main()
{
int n, m;
printf ("自然数mを入力してください\n");
scanf ("%d", &m);
printf ("素数リストは次の通り\n");
for (n=1; n<=m; n++) { /* 2〜mまでの自然数を調べる */
if ( _(D)_) { /* nが自然数だった場合には */
printf ("%d", n); /* 画面に表示する */
}
}
printf ("\n");
return 0;
}
0120デフォルトの名無しさん
2006/01/11(水) 18:18:10(A) iの初期値は2
(B) iがnになったら終了
(C) nをiで割った余りが0なら
(D) 関数sosu()にnを引数として与えた結果が1なら
0121デフォルトの名無しさん
2006/01/11(水) 18:55:49いや、ハマったハマった。
(A) i=2
(B) i<n
(C) !(n%i) または n%i==0
(D) n!=1 && sosu(n)
蛇足ながら、最後画面に表示するところ、%d の後ろにスペース入れたほうが見やすい
0122デフォルトの名無しさん
2006/01/11(水) 19:17:28[2] 問題文:指摘したプログラムの誤りを直しなさい。
[3] 環境
[3.1] OS:UNIX
[3.2] : (gcc 2.9 VC 6.0等)
[3.3] 言語:C
[4] 期限:1/16(月)
[5] その他の制限:特になし
指摘事項
下記プログラムは点数にaaaなんて入力しても入ってしまうのは問題。
そこで次のように0〜100までの整数値しか入らないようにプログラムを直しなさい。
点数を入力=> aaa
点数に誤りがあります。0〜100までの整数値を入力=> 91
氏名を入力=>
となるようにしなさい。
0123122
2006/01/11(水) 19:20:18#include <stdio.h>
#include <string.h>
int score;
char sca[4],name[150],buf[256];
FILE *fp;
int main(int argc,char* argv{}){
void fp1(){
fp = fopen( "seiseki2.txt" , a+ );
if( fp == NULL ){
printf("seiseki2.txt使用不可\n");
}
while(1){
printf( "氏名を入力=>" );
scanf( "%s" ,name );
if( strcmp( name , "end" ) ) == 0 )
break;
printf( "点数を入力=>" )
scanf( "%s" , buf );
if( strcmp(buf , "end" ) == 0 )
break;
sscanf( buf, "%d" , &score );
fprintf( fp, "%s " , name );
fprintf( fp, "%d\n" , score );
}
fclose(fp);
}
0124デフォルトの名無しさん
2006/01/11(水) 20:42:48そこまで書けたならわかるでしょ
0125駅弁 ◆KcEqepNQxM
2006/01/11(水) 20:52:17[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1429.lzh
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: ボーランド
[3.3] 言語: Cのみ可
[4] 期限: 明日です
[5] その他の制限: ttp://www9.plala.or.jp/sgwr-t/に載ってるくらいの知識の範囲で(めちゃめちゃ高度で不自然なプログラムじゃなきゃOKです。。。)
期限が迫ってるのに一向にプログラムが動いてくれないんです…。誰か助けてください!
0126デフォルトの名無しさん ◆rEQrRgfXU2
2006/01/11(水) 20:52:59[2] 問題文(含コード&リンク):
2004年の通算日が何月何日の何曜日かを表示するプログラムを作りなさい。
1月から12月までの各月の日数の累計を配列に初期設定して使用する。
例えば、通算日の32日は「2月1日 (日)」である。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 特になし
0127デフォルトの名無しさん
2006/01/11(水) 21:07:20#define PI 3.1415926535897932384
double factorial(long n)
{
doublefn;
fn=n;
while(--n) fn*=n;
return fn;
}
>>116
double powern(double x, long n)
{
doublepx;
px=x;
while(--n) px*=x;
return px;
}
int main(void)
{
doublex, s, p;
intn;
x=PI/4.0;
s=0.0;
n=1;
do {
p = powern(x,n) / factorial(n);
if (n & 2) s-=p; else s+=p;
n+=2;
} while (p > 1E-15);
printf("%.15lf\n",s+s);
return 0;
}
0130デフォルトの名無しさん
2006/01/11(水) 21:19:08>>118でガイシュツ
>>125
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1430.txt
0132デフォルトの名無しさん
2006/01/11(水) 21:27:59[2] 問題文(含コード&リンク):
連成振動の問題。http://www.ne.jp/asahi/tokyo/nkgw/gakusyu/rikigaku/kyousin/kyousin_kaisetu/kyousin_kaisetu.html
Runge-Kutta法で数値解を求めて、それを元に上記のページのした辺りにあるようなグラフ(図1、図2)を描きたい。
RK法を用いたプログラムでこの連成振動の厳密解を出力するところまでいければあとはできるのですが・・・。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月19日
[5] その他の制限:
0133デフォルトの名無しさん
2006/01/11(水) 21:30:37[2] 問題文(含コード&リンク): int i;
floatm[3]={1.0,2.0,3.0};
float *mp;
mp=&m[0]-1;
for(i=1;i<=3;i++){
printf("mp[%d]=%f\n",i,mp[i]);
}
を1オリジンにする(上は0オリジンらしいのです…)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] C言語
[4] 期限: 今日まで
もしよろしければよろしくお願いします。
0134125 駅弁 ◆KcEqepNQxM
2006/01/11(水) 21:33:38>>130に貼ってあったやつ(http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1430.txt
)で
struct tableとかlagrange_interpolationとか使わずに配列(x[0]とか)でxとyを
読み込ませてみたいんですがどこいじればいいでしょうか。。。
それにしてもここにいる人たちはレスポンスすっげー速いですね。俺なんか1時間以上かかるのに…。
やっぱプロは尊敬。
0135125 駅弁 ◆KcEqepNQxM
2006/01/11(水) 21:35:59吊ってくるorz
0136デフォルトの名無しさん
2006/01/11(水) 21:56:35よくわからんがこういうこと?
float m[4]={0.0,1.0,2.0,3.0};
for(i=1;i<=3;i++){
printf("m[%d]=%f\n",i,m[i]);
}
0137デフォルトの名無しさん
2006/01/11(水) 22:02:14ようするに配列が1から始まるか0から始まるかってことか?
そのコードは1オリジンじゃないのか?
0に直すなら
int i;
float m[3]={1.0,2.0,3.0};
float *mp;
mp=&m[0];
for(i=0;i<3;i++){
printf("mp[%d]=%f\n",i+1,mp[i]);
}
オリジンって言葉初めて聞いた
0138136
2006/01/11(水) 22:06:01>>133はポインタで出力時にだけ1オリジンになるように辻褄合わせてるだけじゃないの?
「オリジン」っていうぐらいだから配列の初期化部分が重要だと思う
0139デフォルトの名無しさん
2006/01/11(水) 22:06:49ttp://www.toshu.co.jp/origin/index.html
0140デフォルトの名無しさん
2006/01/11(水) 22:08:56やっとオリジン理解した。
0141デフォルトの名無しさん
2006/01/11(水) 22:16:49>>130みたらi=0Σ2じゃなくてi=0Σ7じゃん。式間違ってるやん(#゚Д゚)ゴルァ!!
調べてる間に答え書かれちまいましたよ(ノ∀`)
0142デフォルトの名無しさん
2006/01/11(水) 22:24:21こっちが問題でした…;(133はもう1オリジンらしぃです…)
m[0][0]数値1.1アドレス5044
m[0][1]数値1.2アドレス5048
m[0][2]数値1.3アドレス5052
m[1][0]数値2.1アドレス5056
m[1][1]数値2.2アドレス5060
m[1][2]数値2.3アドレス5064
上記の3行3列を宣言した場合のアドレスの並びと、要素数9の1次元の配列
を宣言した場合のアドレスの並びが等価で有ることを確認するプログラムを
作成する。
たびたびすいません;
0143デフォルトの名無しさん
2006/01/11(水) 22:28:48オリジンってそもそも原点って意味だよな
それとも専門的な使い方があって俺が無知なだけか・・・
0144デフォルトの名無しさん
2006/01/11(水) 22:33:08ホント良くわかんないんですよね…
0145デフォルトの名無しさん
2006/01/11(水) 22:34:24二次元配列は2行3列のようだが?
0146デフォルトの名無しさん
2006/01/11(水) 22:37:08float hoge[3][3]={ ... };
for(int i=0;i<9;i++)
printf("%f ",*(hoge+i));
って事?
0147デフォルトの名無しさん
2006/01/11(水) 22:37:390148デフォルトの名無しさん
2006/01/11(水) 22:37:58#include <stdio.h>
int main()
{
int i;
double m[3][3]={{1.1,1.2,1.3},{2.1,2.2,2.3},{3.1,3.2,3.3}};
double *mp;
mp=m;
for(i=0;i<9;i++){
printf("%lf\n",mp[i]);
}
return 0;
}
0149デフォルトの名無しさん
2006/01/11(水) 22:44:25Runge-Kutta法ならなんでもいいの?
・使用するRunge-Kuttaの次数とか
・その次数での計算に必要になるまで値を蓄積するために使うのはどの数値解法なのかとか
0150デフォルトの名無しさん
2006/01/11(水) 22:49:08m[0][0]数値1.1アドレス5044
m[0][1]数値1.2アドレス5048
m[0][2]数値1.3アドレス5052
m[1][0]数値2.1アドレス5056
m[1][1]数値2.2アドレス5060
m[1][2]数値2.3アドレス5064
はいらないっぽいです;
正式には…
3行3列を宣言した場合のアドレスの並びと、要素数9の1次元の配列
を宣言した場合のアドレスの並びが等価で有ることを確認するプログラムを
作成する。
だけでした…;
0151デフォルトの名無しさん
2006/01/11(水) 22:55:010152デフォルトの名無しさん
2006/01/11(水) 22:58:340 1 2 3 4 5… が 0オリジン
1 2 3 4 5 6… が 1オリジン
だったはず。
…それでも問題の意図するところが理解できないorz
0153デフォルトの名無しさん
2006/01/11(水) 23:03:21月、年、COBOLの配列の添え字、が1オリジン
0154デフォルトの名無しさん
2006/01/11(水) 23:40:32m1[3][3]とm2[9]の各要素のアドレスを表示
0155デフォルトの名無しさん
2006/01/11(水) 23:41:00[2] 問題文:3行3列を宣言した場合のアドレスの並びと、要素数9の1次元の配列
を宣言した場合のアドレスの並びが等価で有ることを確認するプログラムを
作成する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] C言語
[4] 期限: 今日まで
0156デフォルトの名無しさん
2006/01/11(水) 23:51:11int main()
{
int array[9];
int matrix[3][3];
int i;
for (i = 0; i < 9; i++) {
printf("%p\t%p\n",&array[i], &matrix[i/3][i%3]);
}
}
0157デフォルトの名無しさん
2006/01/11(水) 23:59:48[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録し、
新しく入力された点数以上の氏名を出力するプログラムを書け。
(必ず、print_studen(struct student s)と言う学生一人分の情報を
1行に表示する関数を作成し、それを利用して出力を行うこと。)
<構造体の例>
struct student{
char name[50], id[20];
int score;
};
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月14日まで
015855
2006/01/12(木) 00:11:27大学に送信すると
{「7」を入力した場合正しくは[7(改行)7」ですが
あなたの答えは 「7(改行)10 10 10 10 10 7」 でした}
と返ってきました。
>>87のを試してみると入力を求められず、「9」を出力して終了してしまいました。
この問題の時点で習っているのがif文とfor、whileだけなので
他のものと見比べたりして色々試してみましたが自力では直すことが出来ませんでした。
また手助けよろしくおねがいします。
0159デフォルトの名無しさん
2006/01/12(木) 00:14:34全部?
0160デフォルトの名無しさん
2006/01/12(木) 00:19:38この質問はどこにもって行けばいい?
0161デフォルトの名無しさん
2006/01/12(木) 00:21:120162デフォルトの名無しさん
2006/01/12(木) 00:22:160163デフォルトの名無しさん
2006/01/12(木) 00:24:09"9"の文字列は"9桁の正整数を引数に"とでもしておいてください
入力はプログラム実行時引数として渡して下さい
例えば作ったプログラムがreverse.exeなら、
reverse 12345
で実行すれば結果は
1 2 3 4 5
5 4 3 2 1
となると思います。
0164デフォルトの名無しさん
2006/01/12(木) 00:34:42int main()
{
int a;
scanf("%d", &a);
while(a) {
printf("%d ", a % 10);
a /= 10;
}
putchar('\n');
}
0165デフォルトの名無しさん
2006/01/12(木) 00:37:00すみません、遅くなりました↓これです
void input(int *a){int i;for(i=0;i<N;i++){scanf("%d",&(a[i]));}}
void output(int *a){int i;for(i=0;i<N;i++){printf("%d\n",a[i]);}}
int main(){int a[N];input(a);output(a);return 0;}
0166デフォルトの名無しさん
2006/01/12(木) 00:37:15猿並の頭でも理解できるくらい詳しく解説しているサイトを教えていただけないでしょうか…。
サンプルプログラムみたいなのが載ってると理解しやすいかと思うのですが…。
0167デフォルトの名無しさん
2006/01/12(木) 00:40:05質は保証しない。Googleで出てきただけだから。
自己参照構造体
ttp://www9.plala.or.jp/sgwr-t/c/sec15-5.html
0168デフォルトの名無しさん
2006/01/12(木) 00:42:06#include <stdio.h>
main(){
int i;
char str[10];
gets(str);
for(i=0;i<strlen(str);i++)
printf("%c ",str[i]);
printf("\n");
for(i=strlen(str)-1;i>=0;i--)
printf("%c ",str[i]);
return 0;
}
0169デフォルトの名無しさん
2006/01/12(木) 00:43:000170132
2006/01/12(木) 01:12:02レスが遅れてすみませんm(_ _)m
・使用するRunge-Kutta法は4段4次でお願いします。
・値の蓄積にはどのような方法でもいいです。
0171デフォルトの名無しさん
2006/01/12(木) 02:47:17[2] 問題文(含コード&リンク):
自分で任意のプログラムを作ります。
オセロのプログラムを作ろうと思っています。めちゃくちゃ簡単なのを作ろうと思っています。
使うのはprintf、scanf、if、forなどの超基本的なものだけでいきたいす。
コンピュータに手は打たせないで自分が二役分の手を打っていく形でコンピュータに手は考えさせないでいいです。
つまりはまずフィールドのようなものを表示するプログラム。そこに白、黒の人がが交互にマス目を埋めていくプログラム。
白、黒、黒、白などとフィールド中に縦横か斜めで並んだときに真ん中の黒を白に変えるプログラム。最後にどちらが勝ちか判定するプログラム。
黒や白、フィールドに何も置かれていない状態の表示は簡単のために0,1,2などで表示したほうがいいかもと思うんですが他の方法でもかまいません。
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:c
[4] 期限: できれば今日中
[5] その他の制限: 200行以内くらいのプログラム。
アドバイス、協力してくれる方いましたらよろしくお願いします。一応メアドも載せときます。
0172171
2006/01/12(木) 02:48:310173デフォルトの名無しさん
2006/01/12(木) 02:50:06これでどう?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1433.txt
実行は初期値を4つ引数に渡して -o progname でコンパイルしたら
./progname [振子1の初期位置] [振子1の初期速度] [振子2の初期位置] [振子2の初期速度]
で実行し、出力は1行ごとにその時点での
[振子1の位置] [振子2の位置]
"時間微分が高次の時はそれぞれの変数が1次になるよう変数を増やす"
0174デフォルトの名無しさん
2006/01/12(木) 02:57:53>月、年、COBOLの配列の添え字、が1オリジン
どうでもいいけど思いっきり間違ってるな。
[2] 問題文(含コード&リンク):
プログラム2は指定したファイルを読み込み、英数字(AからZとaからzと0から9)の塊を表示するプログラムです。
ここで isalnum 関数は文字を読み、文字が英字が数字だった時は 0 以外、英字でも数字でもなかった場合は 0 を返すものです。
このプログラムと strcmp 関数を利用して、この塊が出て来る頻度を大文字小文字を区別した辞書順(strcmp が定める文字列の順序) に
並べるプログラムを作りたい。題意を満たすプログラムを作成しなさい。
プログラム2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1434.c
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:できればCでお願いします。
[4] 期限:2006年01月12日13:00まで
[5] その他の制限:特に制限はありません。よろしくお願いします。
0176デフォルトの名無しさん
2006/01/12(木) 03:27:14COBOL はしらん。
017773
2006/01/12(木) 03:35:45意味がわからん。
ソースに「でした」なんて書いてもいないのにそんな表示出るわけない。
↓ちょっと変えた。たぶん、Windows でも動く。
#include <stdio.h>
int main( void )
{
int n_digits[10] = { 0,0,0,0,0,0,0,0,0,0 };
int c, i;
while (( c = getchar() ) != EOF ) {
if ( c < '0' || '9' < c ) /* that's not a numeral */
continue;
++n_digits[ c - '0' ];
}
for ( c = 0; c < 10; ++c )
for ( i = 0; i < n_digits[c]; ++i )
printf( "%d ", c );
putchar( '\n' );
for ( c = 10; c >= 0; --c )
for ( i = 0; i < n_digits[c]; ++i )
printf( "%d ", c );
putchar( '\n' );
return 0;
}
0178デフォルトの名無しさん
2006/01/12(木) 03:45:08これだけ何種類も答えを提示されて一つも動かないとなると、
何をどう教えても無理じゃないかという気がしてきた
0179デフォルトの名無しさん
2006/01/12(木) 03:45:38"strcmpを利用して"って題意としてクリティカル?
0180デフォルトの名無しさん
2006/01/12(木) 03:47:09ぶっちゃけ問題の後半の意味がわからない
さて、自分の宿題やるか( 'A`)
0181デフォルトの名無しさん
2006/01/12(木) 03:51:43このソース汚すぎ。自分で書いただろ。
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji12
0183デフォルトの名無しさん
2006/01/12(木) 03:56:27入力の出現文字列塊は最大何文字以内とかの制約は?
教師側から提示されたものなので何とも…^^;
制約としては明記されていないので、一行の上限である80までだと思います。
0186デフォルトの名無しさん
2006/01/12(木) 05:24:14http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1435.txt
申し訳ありません、少しうとうとしてしまいました。
動作確認いたしました。ありがとうございます。
もう一つの問いに、先に作成したプログラムを書き換える問題で
「文字列の先頭から順に比較していき、最初に異なった文字の大小関係とし、
途中で文字が無くなった場合は無い方が小さいとする」
というものがあるのですが、これは簡単にできるものなのでしょうか?
例:
入力
abcd ab
defg ghi def
出力
ab
abcd
def
defg
ghi
0188デフォルトの名無しさん
2006/01/12(木) 06:32:55http://pc8.2ch.net/test/read.cgi/tech/1087979678/235-236
0189デフォルトの名無しさん
2006/01/12(木) 06:42:04俺も昔課題で先読み指向型オセロ作らされたからその時に考えたアイデアの一部
・マスは縦*横の2次元配列
・コマは白=0, 黒=1などどして数値で判別。
・コマをおく時はX=? Y=?それぞれをscanf等で入力
入力した後の処理
1.指定した座標にコマがないか、存在する座標か判別。 ある↓ 無い→座標再入力要求
2.隣接するマスで最低1個以上の相手のコマがあるかどうか調べる。 ある↓ 無い→座標再入力要求
3.相手のコマがある方向へ、マスがなくなるまでfor分でサーチ
サーチして自分のコマがあったら、その部分まで全てのコマを自分のコマに置き換え 自分のコマが無い→座標再入力要求
相手のコマがある方向全てに対して処理する
4.コマの切り替え
あとはパスの判定とかマスが全て埋まったらコマの数を数えて結果を出力する処理が必要。
他に効率のいいやり方があるだろうが俺の場合はこんな感じ。
printf、scanf、if、for、whileくらいでいけるはず。200行以内でいけるかは分からん。
0190デフォルトの名無しさん
2006/01/12(木) 06:49:550191デフォルトの名無しさん
2006/01/12(木) 07:03:40頻度出力してる部分削ればいい
"%s: %d\n" を "%s\n"とかって
0192デフォルトの名無しさん
2006/01/12(木) 07:07:27まあどっちでもいいんだけど。
2次元なら↓みたいになるのかな
//0=空 1=● 2=○
int panel[8][8]=
{
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 2, 1, 0, 0, 0},
{0, 0, 0, 1, 2, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
}:
0193デフォルトの名無しさん
2006/01/12(木) 07:08:33特にポインタ関係
0194デフォルトの名無しさん
2006/01/12(木) 07:17:560195171
2006/01/12(木) 07:25:40>>188ソースが半分以上意味わかめなので要所要所理解してみます。
>>189細かくありがとうございます。パスの概念とか見逃していました。
0196デフォルトの名無しさん
2006/01/12(木) 07:31:44あ、すみません。
そういう事ではなくて、文字数が少ないものが上にくるようにしたいのですが。。。
どうにかできませんでしょうか?
0199デフォルトの名無しさん
2006/01/12(木) 07:54:02http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1436.c
win2000、bccでしか確認してないけど、多分OK。
二次元で8×8だけど今のところ問題なし。
0200デフォルトの名無しさん
2006/01/12(木) 07:55:41そこんとこ錯覚しないでくれよ
0201171
2006/01/12(木) 08:04:51>>196わかりました。一次元でも考えてみます。
0202デフォルトの名無しさん
2006/01/12(木) 08:41:270203199
2006/01/12(木) 08:57:58バグってた。入力に8以上の数字を入れるとさくっとメモリ破壊される。
修正版↓ #defineも入れといた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1439.c
Cygwin+gccでも動作確認OK。
>202
堕落、堕落はあざなえる縄のごとし。
0204デフォルトの名無しさん
2006/01/12(木) 09:01:11俺みたいに
0205デフォルトの名無しさん
2006/01/12(木) 10:10:12もう少し細かく時間を知る方法は無いでしょうか?
外部のプロファイラなどに頼らず、
ある関数の開始と終了時点で計時し、
かかった時間を調べたいと思っています。
IA32 アーキテクチャの RDTSC レジスタを読み取って、
クロック数を得る事で粒度の細かい計時が可能なのですが、
もう少しポータブルな方法を探しています。
Cygwin, Linux および Solaris で共通に利用できるような
方法を探しています。
0206デフォルトの名無しさん
2006/01/12(木) 10:28:380207初心者ですみません
2006/01/12(木) 10:49:34例えば、
1〜100までの素数の数は
25 です
このように表したいです
0208デフォルトの名無しさん
2006/01/12(木) 10:55:320209デフォルトの名無しさん
2006/01/12(木) 10:55:33>>207
まず、>1をよく読むといいと思うよ。
0210121
2006/01/12(木) 11:02:27>>119流用
#include <stdio.h>
int sosu(int n){int i;for(i=2;i<n;i++){if(n%i==0){return 0;}}return 1;}
int main(){
int n,m,cnt;cnt=0;
printf ("自然数mを入力してください\n");
scanf ("%d", &m);
for (n=1; n<=m; n++){if (n!=1 && sosu(n)){
//printf ("%d ", n);
cnt++;}}printf ("\n素数は%d個\n",cnt);return 0;}
コメント外せば素数表示できる。
100入れたら25出たからたぶん大丈夫。
0211121
2006/01/12(木) 11:07:16#include <stdio.h>
int sosu(int n){int i;for(i=2;i<n;i++){if(!(n%i)){return 0;}}return 1;}
int main(){int n,m,cnt;cnt=0;printf ("自然数mを入力してください\n");
scanf ("%d", &m);for (n=1; n<=m; n++){if (n!=1 && sosu(n)){
/*printf ("%d ", n);*/cnt++;
}}printf ("\n1〜%dまでの素数は%d個\n",m,cnt);return 0;}
0212デフォルトの名無しさん
2006/01/12(木) 12:10:04[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。
問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
3 = 0 1 1・・・・・・5の指数部
6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。
このような仕様です。よろしくお願いします。
0213デフォルトの名無しさん
2006/01/12(木) 13:05:50int main( void )
{
int num, *pnt;
for( num = 10; num >= 6; num-- ){
printf( "value:%2d address:%p\n", num, &num );
}
while( num != 0 ){
pnt = #
printf( "value:%2d address:%p\n", *pnt, pnt );
num -= 1;
}
return 0;
}
関数とポインタ関数を用いて10〜1の値と、そのアドレスを表示せよというプログラムを書いたつもりなんですが、
これでいいんでしょうか
実行してみると、アドレスが全部同じなんですが・・・・・
0214デフォルトの名無しさん
2006/01/12(木) 13:10:34コードは汚いが合ってる。
0215デフォルトの名無しさん
2006/01/12(木) 13:39:351,変数x,yにそれぞれ8と5を代入して,x/yを計算し,
整数解と実数解を出力するプログラムを作成せよ
2,sを入力し,sから200までの整数のうち16の倍数となる整数を
出力するプログラムをfor文またはwhile文を用いて作成せよ
3,nを入力したとき,その数を3で割ったとき,割り切れるならばaを
,1余るならばbを,2余るならばcを出力するプログラムを作成せよ。
4,n人分について国語,社会,数学,理科,英語の5科目の得点を入力し,
それぞれの合計点を計算した後,n人を合計点の小さい順に並び替え,
出力するプログラムを作成せよ。ただし,各科目の変数名を
ko,sy,su,ri,eiとし,配列名はtokutenとすること
5,すべて大文字の英字を10字以内で入力し,
そのうちの子音(a,i,u,e,o以外の文字)の部分を小文字に
変換して出力するプログラムを作成せよ。
(例:MOMOTAROU → mOmOtArOU)
6,15文字以内の文字列(英字)と3文字のキーワード(英字)を入力する.
このとき,先に入力した文字列にキーワードが含まれていたら 「あります」
,含まれていなければ 「ありません」 と,
メッセージを返すプログラムを作成せよ.
たとえば,入力文字が「takoikatai」のとき,
キーワードが「ika」の場合は「あります」,キーワードが「aji」の場合は「ありません」と表示されるようにする.
0216すいません 215です
2006/01/12(木) 13:44:01[2] 問題文(含コード&リンク): 215です
[3] 環境
[3.1] OS: (Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (C
[4] 期限: 2006年1月14日24h
[5] その他の制限:、標準ライブラリは使ってはいけない
授業は215の範囲ぐらいしかいってません
0217すいません 215です
2006/01/12(木) 13:48:28一番以外お願いします。
0218デフォルトの名無しさん
2006/01/12(木) 14:05:34とあるので違うと思う
0219デフォルトの名無しさん
2006/01/12(木) 14:10:100220デフォルトの名無しさん
2006/01/12(木) 14:14:152.
scanf("%d".&s);
for(s;s<201;s++)
{
if(s%16==0)
{ printf("%d\t",s);
}
}
3.
scanf("%d",&n);
if(n%3==0)
{ printf("a\n");}
else if(n%3==1)
{ printf("b\n");}
else
{ printf("c\n");}
0221デフォルトの名無しさん
2006/01/12(木) 14:19:19何故1.が出来て2.3.が出来ないか!!
とりあえず2.
#include <stdio.h>
int main(){int i,s;
printf ("input s:");scanf ("%d", &s);printf("\n");
for( i=s; i<200; i++)if(!(i%16))printf("%d ",i);}
0222デフォルトの名無しさん
2006/01/12(木) 14:24:23[2] 問題文人工無能を作れ。
やる気がなければオウム返しでもよい。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2006年2月上旬
[5] その他の制限:なし
0223デフォルトの名無しさん
2006/01/12(木) 14:36:53#include <stdio.h>
#include <string.h>
int main(){
char buf[BUFSIZ];
while(fgets(buf, sizeof(buf), stdin)){
if(!strcmp(buf, "quit\n"))
break;
printf("> %s", buf);
}
return 0;
}
0224デフォルトの名無しさん
2006/01/12(木) 14:45:07の2
int s;
scanf("%d", &s);
s+=(16-(s%16))%16;
while(s<200)printf("%d\n", s), s+=16;
もう解決してるし・・・
せっかくだからおいとく
0225デフォルトの名無しさん
2006/01/12(木) 14:53:165.(4はめんどいんで後回し)
#include <stdio.h>
int main(){char s[10+1],*p;
fgets(s,10+1,stdin);p=s;
while(1){if(*p=='\0') break;
if(*p>='A' && *p<='Z')if(*p!='A'&&*p!='I'&&*p!='U'&&*p!='E'&&*p!='O')*p+=0x20;
putchar(*p++);}}
0226デフォルトの名無しさん
2006/01/12(木) 15:05:27いちど別の変数に入れてポインタ指定しないとダメなんかな?
このへんの処理が(見た目)重い…
#include <stdio.h>
int main(){int n;char s[]={'a'},*p;p=s;scanf("%d",&n);putchar(*p+=n%3);}
0227215
2006/01/12(木) 15:10:00自分でもいまやってるんですが,やはり皆さんはやいです。
すげー
0228デフォルトの名無しさん
2006/01/12(木) 15:18:28すげぇ無駄だな。
0229215
2006/01/12(木) 15:19:01c++でした・・。
0230デフォルトの名無しさん
2006/01/12(木) 15:20:02最初に言えよwwwwwwwwwwwwww
0231デフォルトの名無しさん
2006/01/12(木) 15:20:48死ね
0232デフォルトの名無しさん
2006/01/12(木) 15:21:45これ、教えて。
0233デフォルトの名無しさん
2006/01/12(木) 15:22:01putchar('a'+n%3);
これでいいね。
0234215
2006/01/12(木) 15:28:400235226
2006/01/12(木) 15:31:57動きましたw
改めて貼っとく。
#include <stdio.h>
int main(){int n;scanf("%d",&n);putchar('a'+n%3);}
0236デフォルトの名無しさん
2006/01/12(木) 15:32:15[2] 問題文(含コード&リンク):円周率をマチンの公式を使い1万桁表示するプログラムを作る.
多倍長演算を使い,5桁ごとに1つ空白を入れる.
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日中 1月12日24時まで
[5] その他の制限: なし
よろしくおねがいします
0237デフォルトの名無しさん
2006/01/12(木) 15:35:34[2] 問題文(含コード&リンク):期末試験を手伝え。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 01/23 12:50〜14:20限定
[5] その他の制限: 留年かかってます。当日ここに高速で書き込むので即答をお願いします。
0238デフォルトの名無しさん
2006/01/12(木) 15:36:20手伝えってw
命令口調ワロス
0239デフォルトの名無しさん
2006/01/12(木) 15:39:04お手伝いロボット置いときますね。ぐぐっただけなんで詳細不明
-―-
. ´ ` 、
' , i l ! ヽ ヽ
〈\ .〃/‐リノ ノリ)ヘヽ.\`
,' ヽ \ /,ィ'"|` f'!ヽト、!` / ̄ ̄ ̄ ̄ ̄
l//, ゙{0))! ヒ1! ,l.!,. l、ヽ .|
' /l/` リl、"´ lフ イゝ < 健康びーむ?
'´ l/_i_リ,! r._´ リ |
'「 , ‐ゝ>r'l〉く.、 \_____
く,`l ,.`Kト〉ヾヽ
ゝL ヾ.l、〉 r'
,-| 「 {} !_ |
! l、 `)}´}
`>/`,-´、 ァ'
く./ {_`」./ l}
// 「i. k
,.' / >! l}
j / r'j i1
^!,' k1 k'
0240デフォルトの名無しさん
2006/01/12(木) 15:40:140241デフォルトの名無しさん
2006/01/12(木) 15:53:13確実に留年する
0242デフォルトの名無しさん
2006/01/12(木) 16:00:05やばいな、見落としてた。
[5] その他の制限:、標準ライブラリは使ってはいけない
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^このへん
どうしようか・・・_| ̄|○ ゼンブヤリナオシカヨ
0243デフォルトの名無しさん
2006/01/12(木) 16:10:510244デフォルトの名無しさん
2006/01/12(木) 16:12:18cout もだめとか
0245デフォルトの名無しさん
2006/01/12(木) 16:17:07全部まとめてみましたバージョン
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26804
0246デフォルトの名無しさん
2006/01/12(木) 16:26:28WindowsAPI叩けってことだよね?
0247デフォルトの名無しさん
2006/01/12(木) 16:36:40[2] 問題文(含コード&リンク):
d2y(x) / dx2 + dy(x) + y(x) = sin(πx)
0≦x≦1で定義された微分方程式
を境界条件 y(0)=0, y(1)=0のもとで解け
[3] 環境
[3.1] OS: UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 1月13日17時まで
お願いします
0248デフォルトの名無しさん
2006/01/12(木) 16:39:17[2] 問題文(含コード&リンク):
ファイル名をコマンドラインで指定し、その内容を256バイトずつ1ブロックとして、16進と文字列形式でダンプ出力した上で、その内容を16進コードで更新するプログラムを作る。
ただし表示ブロック位置(先頭を0とする)はキーボードから入力するものとして、負値またはエンターキーのみが入力させるまで続ける。ブロック内の更新データの先頭はアドレスは16進で入力する。
更新データは2桁で1バイトの16進データを入力する。
:実行例:
a:\e12345.exe e12345.c
BLNo.->2
000200: 64 69 2e ・・・・・・・・・・・・・・ 63 28 dio.h>・v oid spc(
000210: 69 6e 74 ・・・・・・・・・・・・・・ 28 6e int n)・{ ・・if ((n
|||途中省略|||
0002f0: 0a 09 7d ・・・・・・・・・・・・・・ 29 3b ・・}・・fcl ose(fi);
ADR->12
DATA->a1a2a4
000200: 64 69 2e 68 3e・・・・・・・・・・・ 63 28 dio.h>・v oid spc(
000210: 69 6e a1 a2 a4 ・・・・・・・・・・ 28 6e int n)・{ ・・if ((n
|||途中省略|||
0002f0: 0a 09 7d 0a 09・・・・・・・・・・・ 29 3b ・・}・・fcl ose(fi);
DATA->_
ADR->_
Change OK?->y
BLNo.->
[3] 環境 Windows C言語
[4] 期限:2006年1月13日12:00まで
成績に関わるんでよろしくお願いします。
0249デフォルトの名無しさん
2006/01/12(木) 18:14:04[2] 問題文(含コード&リンク):
int t(int x, int y, int z) {
if (x > y) return t(t((x-1),y,z),t((y-1),z,x),t((z-1),x,y));
return y;
}
という関数tがある。tと等価な関数で高速なものを実装せよ。
目安としてはt(2006,1003,0)がtimeコマンドで10s以内
[3] 環境
[3.1] OS: 問わない
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1/15(日)の23:59まで
0250デフォルトの名無しさん
2006/01/12(木) 20:15:23[2] 問題文(含コード&リンク): セット時刻になったらグラフィックを表示し音楽を鳴らすプログラムを作る
[3] 環境
[3.1] OS:Windows
[3.2] lcc
[4] 期限:17日
[5] その他の制限: グラフィックはchinouglなどをつかう
プログラミングが完成したらグラフィック処理、音楽処理、時間判定の処理を関数として書き、
main()から呼び出す形にしなきゃいけません。
・・・
int main(){
・・・
timecomp();
graphic();
music();
・・・
}
後、絵はなんでもいいです!
面倒だとは思いますがよろしくお願いします。
0251デフォルトの名無しさん
2006/01/12(木) 20:25:450252デフォルトの名無しさん
2006/01/12(木) 20:26:56[2] 問題文:
1.下のファイルに画像があります。その中の赤枠の中お願いします。その文章中の演習問題4-8の
プログラムが1.cppです。
2.ファイルの中にある、2.cppは2つの画像を重ねて画素の差の有無で0か255に出力するプログラムです。
そして、もとの画像は、見た目が同じものを使うのですが出てきた画像は他の画像になっています、
それは何故でしょうか?
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: VC 5.0か6.0
[3.3] 言語: どちらでも可
[4] 期限: 1月13日14:00まで
[5] ファイルは(http://cgi.2chan.net/up2/up.htm)のf111554.zipです。
出来ないと単位を取れないので、時間が無いですが、お願いします。
0253デフォルトの名無しさん
2006/01/12(木) 20:34:25それはともかく
>>250
グラフィック処理、音楽処理は機種依存の処理になるので
そのあたりは下で問い合わせた方がいいかもしれません
【初心者歓迎】C/C++室 Ver.24【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1135828083/l50
そのchinouglというライブラリの仕様がこちらからではわからないためです。
ここで回答できるのは
ソースにセット時刻を書き込むか(コンパイルしたら設定変更できない)
外部テキストファイルから読み込んでその時刻になったら
graphic();
music();
を呼び出すということくらいですがよろしいですか。
0254デフォルトの名無しさん
2006/01/12(木) 20:39:32#include "params.h"
#include "ImageMDisp.cpp"
#include "ResultMDisp.cpp"
がどんなファイルかわかりませんので答えようがありません。
今なぜあなたが単位がとれるかどうかの瀬戸際に立たされているか
ということをよく考えればなんとか解決できるのかもしれません。
0255デフォルトの名無しさん
2006/01/12(木) 20:47:040256デフォルトの名無しさん
2006/01/12(木) 20:50:42[2] 問題文(含コード&リンク):整数iの自乗が1000以上で、一番1000に近い値となるiとiの自乗を出力するプログラムを作成
#include <stdio.h>
void main(void)
{
int i;
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: ボーランドC++ Compiler
[3.3] 言語:C++
お願いします
0257デフォルトの名無しさん
2006/01/12(木) 20:53:49そうですか、その辺は習っていなくて学校のサーバーから移してvoid Processing(unsigne〜〜[X_SIZE])以下を
打つように習っていました。
馬鹿すぎて取れなくて当然ということですか?
0258デフォルトの名無しさん
2006/01/12(木) 20:58:38切り番おめ。
#include <iostream>
int main( void )
{
int i = 0;
while( true ) {
++i;
if ( i*i >= 1000)
break;
}
std::cout << "i: " << i << " i*i: " << i*i << std::endl;
return 0;
}
0259デフォルトの名無しさん
2006/01/12(木) 20:59:25int i = (int)sqrt(1000)+0.5;
printf("%d %d", i, i*i);
0260259
2006/01/12(木) 21:01:480261デフォルトの名無しさん
2006/01/12(木) 21:02:01#include <stdio.h> ってあるから
std::cout << "i: " << i << " i*i: " << i*i << std::endl;
でなくて、
printf("i:%d i*i:%d\n",i,i*i);
でないか。
0262デフォルトの名無しさん
2006/01/12(木) 21:03:03迷ったけど C++ て書いてるしと思って。
0263デフォルトの名無しさん
2006/01/12(木) 21:04:49Processing がどうのこうのとか何言ってるかぜんぜん通じないよ?
君の大学でしか通用しないことをここで当たり前のように言われても困る。
0264デフォルトの名無しさん
2006/01/12(木) 21:20:33すみません、はっきし言って、私、全然この授業わかってないので、もう諦めます。
0265デフォルトの名無しさん
2006/01/12(木) 21:22:350266デフォルトの名無しさん
2006/01/12(木) 21:23:10[2] 数人分の学生成績データ・レコードを格納したファイル(名前をstu-seiseki)がある。
各レコードの長さは次のとおりである。
学生番号 7byte
氏名 20byte
英語・数学・国語 3byte
学生番号は0番からの通し番号であり、
各レコードは学生番号の順に並んでいるものとする。
このデータを使って学生の成績に関する問い合わせを行うプログラムretrieve.cを作りたい。
このプログラムは、キーボードから学生の番号を入力し該当する学生のレコードを検索、
学生番号等の各項目のほかに、合計点と平均点を並べて表示するものとする。
プログラム終了には、^bを押すものとする。
【データの例】
0000000 山田 太郎 030050060
0000001 鈴木 花子 080075030
【実行例】
学生番号入力→1
学番 氏名 英語 数学 国語 総点 平均点
1 鈴木花子 80 75 30 185 61.7
[3]Windows C言語
[4]2006年1月13日 12:00まで
[5]バイナリモードでお願いします。
本当に困り果てています。よろしくお願いします。
0267デフォルトの名無しさん
2006/01/12(木) 21:23:25言われるとそうかもって気になってきた。
256は確認して、いいほうを提出しる。
>263
まあ、257はライブラリってのがよく理解できてないだけだと思われ。
>257
Processingうんぬんは熊本大学?だけでしか使われてないから、部外者はわからない。
でも逆に「コピーされるように言われた」内容をこちらに伝えれば、部外者でもそれを使ってソースは書ける。
とりあえず、情報を出してみれば作ってくれる人もいると思うよ。
0268267
2006/01/12(木) 21:26:32やっぱ打つのおそいのかな。
0269デフォルトの名無しさん
2006/01/12(木) 21:27:37Processing なんとかはしらない
0270236
2006/01/12(木) 21:30:20[1] 授業単元:情報工学
[2] 問題文(含コード&リンク):円周率をマチンの公式を使い1万桁表示するプログラムを作る.
多倍長演算を使い,5桁ごとに1つ空白を入れる.
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日中 1月12日24時まで
[5] その他の制限: なし
提出が明日なので、誰か助けてください!!
0271デフォルトの名無しさん
2006/01/12(木) 21:51:14マチンの公式 多倍長
でぐぐれば見つかるよ
0272デフォルトの名無しさん
2006/01/12(木) 21:55:380273257
2006/01/12(木) 22:03:51ライブラリってのは、他のとこに作ったプログラムを引っ張ってきて使うってことですよね?
あと、
"ImageMDisp.cpp"
"ResultMDisp.cpp"
が見つかりましたのでうpします。
mip.cppはコピーされるように言われたものです。
http://vista.x0.com/index.php の vi18927.zip です。
0274257
2006/01/12(木) 22:06:070275デフォルトの名無しさん
2006/01/12(木) 22:48:25http://ccfa.info/cgi-bin/up/src/up22984.txt
終了条件の^bがわからなかったので、
学籍番号入力時に負の値を指定したら終了するようにした。
まあ、このあたりは適当に直してくれ。
0276215///
2006/01/12(木) 23:11:05[2] 問題文(含コード&リンク): 216に
[3] 環境
[3.1] OS: (Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (C
[4] 期限: 2006年1月14日24h
[5] その他の制限:標準らいぶらりいいそうです。すいません
0277215///
2006/01/12(木) 23:12:11,1余るならばbを,2余るならばcを出力するプログラムを作成せよ。
4,n人分について国語,社会,数学,理科,英語の5科目の得点を入力し,
それぞれの合計点を計算した後,n人を合計点の小さい順に並び替え,
出力するプログラムを作成せよ。ただし,各科目の変数名を
ko,sy,su,ri,eiとし,配列名はtokutenとすること
5,すべて大文字の英字を10字以内で入力し,
そのうちの子音(a,i,u,e,o以外の文字)の部分を小文字に
変換して出力するプログラムを作成せよ。
(例:MOMOTAROU → mOmOtArOU)
6,15文字以内の文字列(英字)と3文字のキーワード(英字)を入力する.
このとき,先に入力した文字列にキーワードが含まれていたら 「あります」
,含まれていなければ 「ありません」 と,
メッセージを返すプログラムを作成せよ.
たとえば,入力文字が「takoikatai」のとき,
キーワードが「ika」の場合は「あります」,
キーワードが「aji」の場合は「ありません」と表示されるようにする.
むずいです
0278215///
2006/01/12(木) 23:15:240279デフォルトの名無しさん
2006/01/12(木) 23:26:273。
int num;
scanf("%d", num);
switch(num % 3){
case 0: printf("a\n");
case 1: printf("b\n");
case 2: printf("c\n");
}
0280デフォルトの名無しさん
2006/01/12(木) 23:27:34[2] 問題文:
抽象クラス:Shape(抽象的に図形クラス)
以下で考える図形
�@円(Circle) :中心座標と半径
�A正方形(square) :一点の座標と一辺の長さ
�B楕円(ellipse) :楕円の方程式
�C矩形(rectangle) :一点の座標と対角線の長さ
派生クラス
�@円(Circle) �A正方形(square) �B楕円(ellipse) �C矩形(rectangle)
操作クラス(関数)
�@〜�C:面積を求める、周の長さを求める、各図形を特徴付ける値を返す。
�@〜�A:図形の大きさを拡大する、図形の大きさを縮小する。
�B〜�C:離心率を変化させる。
�C:一辺の長さを変える。
この各図形およびその操作を実現できるプログラムを作成する。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限: 1月15日 23時59分まで
[5] その他の制限: 難しくてさっぱりです、お願いします><
0281215///
2006/01/12(木) 23:32:360282デフォルトの名無しさん
2006/01/12(木) 23:33:395
#include<stdio.h>
int main(void){
char n[11],t[6]="AIUEO";
int i,j;
scanf("%s",n);/*10文字超えたらシラネ*/
for(i=0;n[i];i++)
if(n[i]>='A' && n[i]<='Z')/* 念のため */
switch(n[i]){
case 'A':case 'I':case 'U':case 'E':case 'O':
break;
default:
n[i]+='a'-'A';
break;
}
printf("%s\n",n);
return 0;
}
0283デフォルトの名無しさん
2006/01/12(木) 23:34:45[2] 問題文(含コード&リンク): オーナーウィンドウからメニューを持ったウィンドウを
生成しなさい。また、このことを利用して何かプログラムを作り提出しなさい。
[3] 環境
[3.1] OS: WindowsXP SP2
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: どちらでも可
[4] 期限: 明日の朝(やばいw
[5] その他の制限: 知識的には猫でもわかるシリーズのC/Win/ネットを読破したくらいです。
時間がないですがよろしくお願いします。
0284デフォルトの名無しさん
2006/01/12(木) 23:35:17だからまとめてここに置いたって
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26810
0285デフォルトの名無しさん
2006/01/12(木) 23:42:37VCで環境依存(オーナーウィンドウからメニューを持ったウィンドウ…)
急ぎならこちらへ
くだすれVisual C++(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1135817069/l50
0286デフォルトの名無しさん
2006/01/12(木) 23:43:160287デフォルトの名無しさん
2006/01/12(木) 23:47:51#include<stdio.h>
int main(){
const char *conv="AbcdEfghIjklmnOpqrstUvwxyz";
char buff[11];
int i;
scanf( "%10s", buff );
for( i=0; i<10&&buff[i];++i ) buff[i]=conv[buff[i]-'A'];
printf( "%s", buff );
return 0;
}
0288デフォルトの名無しさん
2006/01/13(金) 00:14:45朝まで待ちますよ
0289デフォルトの名無しさん
2006/01/13(金) 00:15:27ImageMDispは画像ファイルから配列に取り込む関数、ResultMDispは配列から画像ファイルに書き出す関数って事でOK?
ふたばのファイル流れてて見れなかったけど、vi18927って同じ物?
img10.cppの10行目では、image_in_1、image_in_2、image_outで36行目では、image_in_1、image_out、image_in_2だけどどっちが正しいの?
ソースのタイムスタンプが2005/12/20になってるけど、そこからいじってないの?
>2.ファイルの中にある、2.cppは2つの画像を重ねて画素の差の有無で0か255に出力するプログラムです。
>そして、もとの画像は、見た目が同じものを使うのですが出てきた画像は他の画像になっています、
>それは何故でしょうか?
差分があれば255にするんだよね。同じ画像を2つ重ねたら全部0で、もとの画像とは違う画像になると思うけど?
0290デフォルトの名無しさん
2006/01/13(金) 00:17:28というかスレ違い
CreateWindowの引数にメニューを指定するかカスタムウィンドウクラスのメンバ引数にメニューをしてやるか
もうこないでね
0291デフォルトの名無しさん
2006/01/13(金) 00:22:28#include <stdio.h>
#include <string.h>
int main(void){
char str[16], word[4], *result;
int i, len, chk;
printf("15文字以内の文字列でもいれたら?\n");
scanf("%s", str);
printf("3文字のキーワードでもいれたら?\n");
scanf("%s", word);
len = strlen(word);
if(len != 3){
printf("3文字って言うたやん\n");
return 0;
}
result = strstr(str, word);
if(result != NULL) printf("あります\n");
else printf("ありません\n");
return 0;
}
0292252
2006/01/13(金) 00:47:03ありがとうございます。
ImageMDispやResultMDispはもとからあって、特に説明は受けなかったので何なのか分かっていません。
そうです、vi18927は同じものです。
すみません多分、image_in_1、image_in_2、image_outがあってると思います。
はい、授業でやった時からいじっていません。
はい、あくまでも、「見た目は」同じ画像なんです、が実行すると学校のマークが出てきました。
たぶん元の画像に何かしらの細工がしてあったわけですよね?
0293デフォルトの名無しさん
2006/01/13(金) 02:06:21>たぶん元の画像に何かしらの細工がしてあったわけですよね?
そうなるな。
正解した生徒にはわかる仕掛けを仕込んだんだろう。先生共もヒマだな。
ソースはあれでいいと思う。
image_in_1、image_in_2、image_outの順になるよう書き直せば終わりだ。
>236
技術評論社のC言語による最新アルゴリズム事典って本に、多倍長演算でMachinの公式使って円周率求める内容が載ってた。
著者のサイトからソースがダウンロードできる。
ttp://oku.edu.mie-u.ac.jp/~okumura/algo/
multprec.cがそれだ。
0294117
2006/01/13(金) 02:09:080295215///
2006/01/13(金) 02:09:39今までやってたけど正直きびしいです
後の4をがんばって後1時間はやってみます・・。
0296デフォルトの名無しさん
2006/01/13(金) 02:33:48[2] 問題文(含コード&リンク):
3つの線分(整数)をキーボードから入力させ、その3つの線分で三角形を
描くことができるなら“THEY CAN MAKE A TRIANGLE”
描けないなら“THEY CAN`T MAKE A TRIANGLE”と表示する。
(ヒント:三角形形成条件 3辺をa,b,cとした場合
a<b+c且つb<c+a且つc<a+bであること
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:・・・本気でわかんない;ごめんなさい
[3.3] 言語:C言語
[4] 期限:1月13日金曜日の午後6時
[5] その他の制限:入社前課題。C言語は独学で明解C言語(ソフトバンク)入門編を
一度だけ読み通したのみ。
情報系に就職が決まったけど周りに情報系の人間が1人もいないから
ほぼ独学、質問できる人がいないから助けてくださいorz
ついでにフリーの良い開発環境を教えていただけたら幸せです。
0297デフォルトの名無しさん
2006/01/13(金) 02:35:42きさま"うほっ"だったのかぁ!
0298デフォルトの名無しさん
2006/01/13(金) 02:38:04その程度ができないようなら入社するな!!
独学で調べられないならやめてしまえ!!
ガキの遊びじゃねえんだよ!!
0300デフォルトの名無しさん
2006/01/13(金) 02:48:46#include <stdio.h>
int main(void) {
int a, b, c;
printf("a?:"); scanf("%d", &a);
printf("b?:"); scanf("%d", &b);
printf("c?:"); scanf("%d", &c);
if (a < b + c && b < c + a && c < a + b)
printf("THEY CAN MAKE A TRIANGLE\n");
else
printf("THEY CAN`T MAKE A TRIANGLE\n");
return 0;
}
勉強向けのフリーの開発環境は今ならこれがいい。ただし、Windows固有の
機能に依存した物を作ろうと思ったらそれなりにファイルの入手&設定が必要。
こんなものがフリーで使える事をありがたく思いなさい。
Visual C++ 2005 Express Edition 日本語版
ttp://www.microsoft.com/japan/msdn/vstudio/express/visualc/
0301デフォルトの名無しさん
2006/01/13(金) 02:50:070302296
2006/01/13(金) 02:55:50深夜なのにすみませんでした。そしてありがとうございます。
まだまだ本当に勉強が足らなくて本当に社会にでれるか心配ですが
できるだけ入社しても周りの脚を引っ張らないように頑張って勉強します。
色々お世話になりました。
そして298さん。他人任せにしてはいけないんだと思いなおせました。
叱咤ほんとにありがとう、もう一回本とか読み直します。
0303デフォルトの名無しさん
2006/01/13(金) 02:56:17[2] 問題文(含コード&リンク):
x, y, z がそれぞれ1から120までの数であるとき、
三平方の定理(x2+y2=z2)を満足する(x,y,z)のうち、
x,y,z の3つすべてが偶数であるものを出力するプログラムを作成せよ。
[3] 環境
[3.1] OS:Widows XP
[3.2] コンパイラ名とバージョン:すみません分かりません。
[3.3] 言語:C言語
[4] 期限:2006年1月20日
全くの初心者で困っています。
どなたか宜しくお願いします。
0304デフォルトの名無しさん
2006/01/13(金) 03:01:56xの範囲は1から1524バイトです。
αの中から特定のバイト3Eが含まれているからどうか
高速に見つける方法を考えなさいって問題が出されました
どうやって解いたらいいのでしょうか。
先頭からfor文で一個一個見ていくやり方を書いたら
怒られましたなぜ怒られたのかも解りません。
それ以外方法ないと思うのですが間違っていたら教えてください。
0305デフォルトの名無しさん
2006/01/13(金) 03:10:54有名なので二分木(2分探索)ってのがある。
http://www.sra.co.jp/people/miyata/algorithm/bsrch.txt
でも今時のcpuなら端から見てっても大して変わらないと思うが・・。
古き時代のテクって感じかねぇ
0306デフォルトの名無しさん
2006/01/13(金) 03:16:15>>303
#include <stdio.h>
#define F(a) for (a = 2; a <= 120; a += 2)
int main(void) { int x, y, z; F(x) F(y) F(z) if (x * x + y * y == z * z)
printf("x = %d, y = %d, z = %d\n", x, y, z); return 0; }
>>304 スレ違い
>>305 うーん。与えられてる情報だと、バイト列としか言われてないので、線形サーチしか思い浮かばない。
0308デフォルトの名無しさん
2006/01/13(金) 03:23:55303です。
ありがとうございます!
本当に助かりました!心より感謝致します。
0309305
2006/01/13(金) 05:08:24(A XNOR B) はCで書くと(A&B)|(!A&!B)
0x3E3E3E3EでXNORすれば4バイト単位で調べられる・・と
0310魚チョコ
2006/01/13(金) 05:45:38>>309 に下記のように誤りがありました。おわびして訂正致します。
(誤) (A&B)|(!A&!B) (正) (A&B)|(~A&~B)
(誤) 0x3E3E3E3EでXNORすれば4バイト単位で調べられる
(正) まず 0x3E3E3E3E との XNOR をとる。
その結果と 0xFF000000、0x00FF0000、0x0000FF00、0x000000FF
との AND を順次マスク値と比較する。
等しいものがあればそのバイトが 3Eh(00111110) だが、
ここまでやって得があるのかははなはだ疑問だ。
0311魚チョコ
2006/01/13(金) 05:47:36EX-OR とってマスクして 0 なら当たりじゃないか。
0312魚チョコ
2006/01/13(金) 05:49:23CPU のエンヂアンに依存するじゃないか。
0313デフォルトの名無しさん
2006/01/13(金) 06:42:19しかし与えられてるのがバイト列のみであるから俺は総当り戦法しか思いつかん
これでもし教官の期待してるものが2分木やら線形リストやらだったら学校やめるな
0314デフォルトの名無しさん
2006/01/13(金) 06:43:24まぁ美しいってより安心できるってだけかもしれんが
0315デフォルトの名無しさん
2006/01/13(金) 06:44:47の構図が美しいと申したか
0316デフォルトの名無しさん
2006/01/13(金) 07:01:040317デフォルトの名無しさん
2006/01/13(金) 08:32:24探すのが1回(あるいは探すバイト値が一種類)だけとは限らないだろ
今後のことも考えて一旦バイト列αを二分木に構成しておくと2回目から効果が出るんだよ
あと、二分木と二分探索は違うものだから
0318デフォルトの名無しさん
2006/01/13(金) 08:34:560319デフォルトの名無しさん
2006/01/13(金) 08:45:21左右反転、上下反転して出力。
0320デフォルトの名無しさん
2006/01/13(金) 08:47:28それぞれの配列要素ごとに、一行に*を印刷し、グラフをつくりたい。
最も大きな数字を*が50個となるように、スケーリングして表示。
0321デフォルトの名無しさん
2006/01/13(金) 08:48:570322デフォルトの名無しさん
2006/01/13(金) 08:50:240323デフォルトの名無しさん
2006/01/13(金) 08:53:010324デフォルトの名無しさん
2006/01/13(金) 08:57:29まとめて質問を却下とします
0325ひお
2006/01/13(金) 09:02:12それを整数に変換して返す関数int atoi(char str[ ])を記述せよ。
�Aライブラリ関数int strcmp(char str1[ ], char str2[ ])と同じ処理をする関数を記述せよ。
0326デフォルトの名無しさん
2006/01/13(金) 09:31:47[2] 問題文(含コード&リンク):
・sin(x)のマクローリン展開から√2の近似値を計算する
プログラムを作成せよ。
・sin(π/4)の値を二倍して求めること。
・階乗と累乗の計算は各々関数で行うこと。
・πの値(3.141592)はプログラムに与える。
・重要な処理のところを、コメント文で簡単に説明する。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月13日8:50まで
0327デフォルトの名無しさん
2006/01/13(金) 09:32:57[2] 問題文(含コード&リンク):
・sin(x)のマクローリン展開から√2の近似値を計算する
プログラムを作成せよ。
・sin(π/4)の値を二倍して求めること。
・階乗と累乗の計算は各々関数で行うこと。
・πの値(3.141592)はプログラムに与える。
・重要な処理のところを、コメント文で簡単に説明する。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月16日8:50まで
0328デフォルトの名無しさん
2006/01/13(金) 10:35:28[2] 問題文(含コード&リンク):
ファイル名をコマンドラインで指定し、その内容を256バイトずつ1ブロックとして、16進と文字列形式でダンプ出力した上で、その内容を16進コードで更新するプログラムを作る。
ただし表示ブロック位置(先頭を0とする)はキーボードから入力するものとして、負値またはエンターキーのみが入力させるまで続ける。ブロック内の更新データの先頭はアドレスは16進で入力する。
更新データは2桁で1バイトの16進データを入力する。
:実行例:
a:\e12345.exe e12345.c
BLNo.->2
000200: 64 69 2e ・・・・・・・・・・・・・・ 63 28 dio.h>・v oid spc(
000210: 69 6e 74 ・・・・・・・・・・・・・・ 28 6e int n)・{ ・・if ((n
|||途中省略|||
0002f0: 0a 09 7d ・・・・・・・・・・・・・・ 29 3b ・・}・・fcl ose(fi);
ADR->12
DATA->a1a2a4
000200: 64 69 2e 68 3e・・・・・・・・・・・ 63 28 dio.h>・v oid spc(
000210: 69 6e a1 a2 a4 ・・・・・・・・・・ 28 6e int n)・{ ・・if ((n
|||途中省略|||
0002f0: 0a 09 7d 0a 09・・・・・・・・・・・ 29 3b ・・}・・fcl ose(fi);
DATA->_
ADR->_
Change OK?->y
BLNo.->
[3] 環境 Windows C言語
[4] 期限:2006年1月13日16:00まで
心底困り果てています、ホントによろしくお願いします
0329デフォルトの名無しさん
2006/01/13(金) 10:51:13#include <stdio.h>
#include <stdlib.h>
int main(int ac, char **av)
{
char buf[1024];
if(ac != 2){
fprintf(stderr, "Usage: hoge filename\n");
}else{
sprintf(buf, "dump %s", av[1]);
system(buf);
}
return 0;
}
0330デフォルトの名無しさん
2006/01/13(金) 10:51:53#include <stdio.h>
#include <stdlib.h>
int main(int ac, char **av)
{
char buf[1024];
if(ac != 2){
fprintf(stderr, "Usage: hoge filename\n");
}else{
sprintf(buf, "debug.exe %s", av[1]);
system(buf);
}
return 0;
}
0331デフォルトの名無しさん
2006/01/13(金) 11:24:22[2] 問題文(含コード&リンク):三角関数(sin、cos、tan)を計算するプログラムを書きなさい
[3] 環境
[3.1] OS: WindousXP
[3.2] コンパイラ名とバージョン:Tera Term Pro ver.2.3
[3.3] 言語:C
[4] 期限:2006年1月17日
[5] その他の制限: stdio.hだけを使用して作ること
(テーラー展開を用いて)
0332デフォルトの名無しさん
2006/01/13(金) 11:25:580333デフォルトの名無しさん
2006/01/13(金) 11:32:53これは酷い
0334デフォルトの名無しさん
2006/01/13(金) 12:20:49http://pc8.2ch.net/test/read.cgi/tech/1136527588/
0335加賀
2006/01/13(金) 13:30:11[2] 問題文(含コード&リンク):入力された文字列とキーの押し時間と離し時間をファイルへ書き出せ。
シフトキーを押した場合と押してない場合の区別をつけろ。
例:I have a pen の場合以下のように出力しなさい
0.135443 0.578212 I
0.159088 0.230911 0.127591 0.344145 0.099871 0.517189 0.148901 0.309172 have
0.200912 0.389001 a
0.187678 0.489176 0.112567 0.201985 0.158481 0.491371 pen
[3] 環境
[3.1] Windows XP
[3.2] Microsoft VC++ 6.0
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:2006年1月16日
[5] 次にプログラムまで自作してみましたが、これ以上はわからないです。よろしくお願いします。
0336加賀
2006/01/13(金) 13:31:50#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
__int64 tsc2sec;
inline __int64 __fastcall RDTSC( )
{
_asm{
rdtsc
// _emit 0xf ← rdtsc でエラーが出る古いバージョン
// _emit 0x31 ← の環境のとき
}
}
0337加賀
2006/01/13(金) 13:32:29int GetKeyTime(double *interval, int *code) {
int i,j,k;
__int64 st,ed;
double a;
static __int64 last=0;
static char ks[256]={0};
for(;;) {
for(i=0;i<0xfe;i++) {
k=GetAsyncKeyState(i);
if(((k&0x8000) >0)&&(ks[i]==0)) {
st=RDTSC();
*interval=(double)(st-last)/tsc2sec;
*code=i;
ks[i]=1;
last=st;
return(1);
}
if(((k&0x8000)==0)&&(ks[i]==1)) {
st=RDTSC();
*interval=(double)(st-last)/tsc2sec;
*code=i;
ks[i]=0;
last=st;
return(0);
}
}
}
return(0);
}
0338加賀
2006/01/13(金) 13:33:51int main()
{
__int64 st;
clock_t t1;
int i,j,k;
double a,b;
char str[256];
FILE *fp1= fopen("test1.txt", "w");
st=RDTSC();
t1=clock();
while(clock()-t1<CLOCKS_PER_SEC);
tsc2sec=RDTSC()-st;
j=0;
while(GetAsyncKeyState(VK_RETURN)==0)
{
i=GetKeyTime(&b,&k);
if(i==1){
printf("Keycode:%x pressed : interval:%f\n",k,b);
if(j!=0)
fprintf(fp1,"%f ",b);
j++;
}
0339加賀
2006/01/13(金) 13:34:39if(GetAsyncKeyState(VK_SPACE)<0)//スペースが押されていたときの処理
{
printf("SPACE KYE\n");
FILE *fp3 = fopen("test2.txt", "r");
while (fgets(str, 256, fp3) != NULL)
{
fprintf(fp1,"%s\n", str);
}
fclose(fp3);
if( remove( "test2.txt" ) == -1 )
perror( "'test2.txt' ファイルが削除できません" );
else
printf( "'test2.txt' ファイルが削除されました\n" );
}
if(i!=1)
{
FILE *fp2 = fopen("test2.txt", "a+");
printf("Keycode:%x released : interval:%f\n",k,b);
fprintf(fp1,"%f ",b);
fprintf(fp2,"%c",k);
fclose(fp2);
}
}
fclose(fp1);
return 0;
}
長々とすみません。
0340加賀
2006/01/13(金) 14:03:270341リストラくん ◆zts/Wuwm4c
2006/01/13(金) 14:26:47[2] 問題文(含コード&リンク): ポインタ配列の変数を下記の文字列(”JANUARY”〜”DECEMBER”)で初期化。各文字列、文字列の文字数
文字列の最終文字(一文字)を表示させる。
初期化文字列 January February March April May June July August September October November
December
実行結果 : JANUARYは7文字で最終文字はYです。
−−−−−−−−−−−−−−−−
DECEMBERは8文字で最終文字はRです。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C)
[4] 期限: (1月15日まで)
[5] その他の制限: strlen() ポインタ配列の初期化(static) ポインタのポインタ をつかう
最終文字を表示させるところで詰まっています。よろしくお願いします。
0342305
2006/01/13(金) 14:43:16( ⌒ ヽ 寝ぼけてた
∪ ノ 吊って来る
∪∪
0343デフォルトの名無しさん
2006/01/13(金) 14:53:01printf("%c",str[i][len-1]);
0344デフォルトの名無しさん
2006/01/13(金) 14:57:30http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1445.c
最初だけ
0345リストラくん ◆zts/Wuwm4c
2006/01/13(金) 15:15:46なるほど、助かりました。
0346デフォルトの名無しさん
2006/01/13(金) 15:18:32[2] 問題文(含コード&リンク):構造体を用いて、名前(ローマ字で30文字)、年齢(int)、身長(double)、体重(double)
を、別に用意したファイルから取り込み、年齢で昇順にソートする関数と
名前で昇順にソートする関数を作り、その動作を確認するmain関数をつくる。
昇順にソートする方法がわからないので、特にそこを教えていただければありがたいです。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2006年1月23日
[5] その他の制限:なし
0347デフォルトの名無しさん
2006/01/13(金) 15:36:18「補間」って単語が辞書に引っかからないんだけど
みんななら何使う?
0348デフォルトの名無しさん
2006/01/13(金) 15:38:47[2] 問題文(含コード&リンク):
http://www.math.meiji.ac.jp/~mk/labo/java/uzu.html
ここにあるプログラムを使って、Nの値を変化させることにより、さまざまなNの値に対して数値的にもとめて
その結果について考察する。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 2.9 VC 6.0等
[3.3] 言語: C
[4] 期限: 1月16日
[5] その他の制限:
0349デフォルトの名無しさん
2006/01/13(金) 15:46:22interpolation
0350デフォルトの名無しさん
2006/01/13(金) 15:52:27Cに移植しろってことか?
0351初心者ですみません
2006/01/13(金) 15:53:14[2] 問題文:
#include <stdio.h>
#define LOW 3 /* 行数 */
#define COLUMN LOW /* 列数 */
int main(){
int i,j,k;
double pivot,d;
double A[LOW][COLUMN + 1] /* 行列を作成 */
={{3,2,1,10},{2,5,2,18},{1,4,1,12}} /* A[行][列] */
for (i = 0; i < LOW; i++){
pivot =____A____ ; /* ピボットとして行列Aの対角成分を選ぶ */
for (j = 0; j <= COLUMN; j++){
____B____; } /* これよりピボット要素の係数は1となる */
for (j = 0; j <= LOW; j++){ /* 第j行について第i列の要素を0とする */
/* j=iのときはピボット対象行なので操作しない */
if(j == i) continue;
/* 第j行の第i列要素をdとして保存しておく */
d = ____C____;
/* 第j行の各列(k)から、d倍したピボット行の各列要素を引く */
for (k = 0; k <= COLUMN; k++){
____D____;}}}
for (i = 0; i < LOW; i++){
printf ("X%d: %lf\n", i, A[i][3]);}
return 0;}
1) 解答がx1=1,X2=2,X3=3となるように適切に書き換えよ。(A)(B)(C)(D)を答えよ
2) 今回のプログラムでは解けない問題が存在する。どのような問題か2つ答えよ。
0352デフォルトの名無しさん
2006/01/13(金) 15:56:37[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
ファイル名をコマンドラインで指定し、その内容を256バイトずつ1ブロックとして、16進と文字列形式でダンプ出力した上で、その内容を16進コードで更新するプログラムを作る。
ただし表示ブロック位置(先頭を0とする)はキーボードから入力するものとして、負値またはエンターキーのみが入力させるまで続ける。ブロック内の更新データの先頭はアドレスは16進で入力する。
更新データは2桁で1バイトの16進データを入力する。
:実行例:
a:\e12345.exe e12345.c
BLNo.->2
000200: 64 69 2e ・・・・・・・・・・・・・・ 63 28 dio.h>・v oid spc(
000210: 69 6e 74 ・・・・・・・・・・・・・・ 28 6e int n)・{ ・・if ((n
|||途中省略|||
0002f0: 0a 09 7d ・・・・・・・・・・・・・・ 29 3b ・・}・・fcl ose(fi);
ADR->12
DATA->a1a2a4
000200: 64 69 2e 68 3e・・・・・・・・・・・ 63 28 dio.h>・v oid spc(
000210: 69 6e a1 a2 a4 ・・・・・・・・・・ 28 6e int n)・{ ・・if ((n
|||途中省略|||
0002f0: 0a 09 7d 0a 09・・・・・・・・・・・ 29 3b ・・}・・fcl ose(fi);
DATA->_
ADR->_
Change OK?->y
BLNo.->
[3] 環境 Windows C言語
[4] 期限:2006年1月13日まで
心底困り果てています、ホントによろしくお願いします
0353デフォルトの名無しさん
2006/01/13(金) 16:16:38それは・・・機能的には不充分だが立派なバイナリエディタじゃないか。
そんな手間のかかるものをしかも一日で書いてクレとは・・・無理がある。
スーパーなPGがこのスレを見ればやってくれる可能性は零ではないけど。
諦めなさい
0354デフォルトの名無しさん
2006/01/13(金) 16:22:04入力し、最大値 MA を求めるプログラムをポインタを用いて
作成してください。
0355デフォルトの名無しさん
2006/01/13(金) 16:22:341)
適切に描き換えるとA,B,C,Dの修正だけでは済まなくなります。が、あえて入れるとしたら、
(A) A[i][i]
(B) A[i][j] /= pivot
(C) A[j][i]
(D) A[j][k] -= d*A[i][k]
ただし他のところも直さねば動きません
2)
Ax = bの連立方程式を解いているので、rank(A) < dim(A)ならば解けません。
桁落ちが発生する計算を含む場合等も正しい解を得られないでしょう。
0356348
2006/01/13(金) 16:25:33はい。できれば移植してほしいのですが・・・m(_ _)m言語は指定されてないのでjavaのままでもかまいません。
ただどちらかといえばC言語の方が分かりやすいのでここに投稿しました。
課題内容としては、渦運動を視覚的に表示する機能はいらないのでこのソースを利用して渦運動の様子を数値的に出すようにしたいです。
渦群(N個)の数値を入力してそのときの運動を数値的に出力する課題です。
0357デフォルトの名無しさん
2006/01/13(金) 16:37:49単位がかかっているので、すいませんどなたか助けて下さい。
[1] 授業単元: オブジェクト指向言語
[2] 問題文(含コード&リンク):
問題(1) キーボードから入力したスペースを含む文字列に対して、以下の6つの情報を出力するプログラムを作成せよ。
(a) 全文字数
(b) 小文字の文字数
(c) 大文字の文字数
(d) アルファベット前半(AからM、および、aからm)の文字数
(e) アルファベット後半(NからZ、および、nからz)の文字数
(f) アルファベット以外の文字数
ただし、実行結果は以下と同じになるようにすること
Input a string: Hiroshima Institute of Technology
The input string is "Hiroshima Institute of Technology".
# of letters = 33
# of small letters = 27
# of large letters = 3
# of A-M and a-m = 15
# of N-Z and n-z = 15
# of other letters = 3
[3] 環境
[3.1] OS : Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C言語
[4] 期限:1月13日18時まで
0358357
2006/01/13(金) 16:46:26[2] 問題文(含コード&リンク):問題(2) キーボードから、文字列と一つの文字を入力する。
このとき、 与えた文字が文字列中の左から何番目に位置しているかを表示する。
ただし、文字列中に、指定した文字が二つ以上ある場合は一番左端の 文字の位置を、
また、指定した文字が全くない場合は nothing と表示する。
プログラムの関数の定義部分以外は、以下にあげるものを変更せず そのまま利用すること。
#include <stdio.h>
int find_letter( char *str, char ch );
int main(void) {
int num;
char in[80], ch;
printf("Input a string: ");
gets( in );
printf("Input a letter: ");
scanf("%c", &ch);
num = find_letter( in, ch );
if ( num==0 ) {
printf(" The letter '%c' of \"%s\" : nothing\n", ch, in);
} else {
printf(" The letter '%c' of \"%s\" : %d\n", ch, in, num);
}
return 0;
}
[3] 環境
[3.1] OS : Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C言語
[4] 期限:1月13日18時まで
0359デフォルトの名無しさん
2006/01/13(金) 16:49:16[2] 問題文(含コード&リンク):
n人分について国語,社会,数学,理科,英語の5科目の得点を入力し,
n人の平均点の平均を計算した後,その平均より低い平均点を出力する
プログラムを作成せよ。ただし,各科目の変数名をkok,sya,suu,rik,eigとし,
配列名はtokutenとすること。
[3] 環境
[3.1] OS:(Windows)
[3.2] コンパイラ名とバージョン:(C++ ?)
[3.3] 言語: (C/C++/どちらでも可)
[4] 期限: (2006年1月15日)
上記のような課題が出ました。
素人同然で全く分からないのでよろしくお願いします。
0360デフォルトの名無しさん
2006/01/13(金) 17:08:56[2] 問題文(含コード&リンク):
ファイル名をコマンドラインで指定し、その内容を256バイトずつ1ブロックとして、16進と文字列形式でダンプ出力した上で、その内容を16進コードで更新するプログラムを作る。
ただし表示ブロック位置(先頭を0とする)はキーボードから入力するものとして、負値またはエンターキーのみが入力させるまで続ける。
:実行例:
a:\e12345.exe e12345.c
BLNo.->2
000200: 64 69 2e ・・・・・・・・・・・・・・ 63 28 dio.h>・v oid spc(
000210: 69 6e 74 ・・・・・・・・・・・・・・ 28 6e int n)・{ ・・if ((n
|||途中省略|||
0002f0: 0a 09 7d ・・・・・・・・・・・・・・ 29 3b ・・}・・fcl ose(fi);
BLNo.->-1
[3] 環境 Windows C言語
[4] 期限:2006年1月13日まで
心底困り果てています、ホントによろしくお願いします
後は自力で考えますんでここまででも教えてください
0361デフォルトの名無しさん
2006/01/13(金) 17:16:02囲碁のプログラムを自分で作成しているのですが、
「人間対人間」が対極していたとします。その時、黒石の方が白石より強かったとします。
そこで、白石の方が弱いので、負けの方向にいっています。
そこで、今打っている白石を黒石の方に、黒石を白石の方に
今打っている変換するプログラムを打ちたいのですが、自分でも試してみたのですが
なかなか上手いようにはいきません。
C言語での回答、宜しくお願い致します。
0362デフォルトの名無しさん
2006/01/13(金) 17:19:39#include <stdio.h>
#include <string.h>
#define LEN 256
int main(){
char c, str[LEN];
int i, small, large, atom, ntoz, other;
small = large = atom = ntoz, other = 0;
printf("Input a string: ");
gets(str);
printf("The input string is \"");
for (i = 0; str[i] != '\0'; i++) {
if (islower(str[i]) != 0) small++;
else if (isupper(str[i]) != 0) large++;
c = tolower(str[i]);
if (('a' <= c) && (c <= 'm')) atom++;
else if (('n' <= c) && (c <= 'z')) ntoz++;
else other++;
printf("%c", str[i]);
}
puts("\".");
printf("# of letters = %d\n", i);
printf("# of small letters = %d\n", small);
printf("# of large letters = %d\n", large);
printf("# of A-M and a-m = %d\n", atom);
printf("# of N-Z and n-z = %d\n", ntoz);
printf("# of other letters = %d\n", other);
return 0;
}
0363デフォルトの名無しさん
2006/01/13(金) 17:21:48small = large = atom = ntoz = other = 0;
0364デフォルトの名無しさん
2006/01/13(金) 17:29:42(a) strlen()
(b) int count_lower(const char *s) {int count = 0; for (; *s; s++) if (islower(*s)) count++; return count;}
(c) int count_upper(const char *s) {int count = 0; for (; *s; s++) if (isuppler(*s)) count++; return count;}
(d), (e)
int count_sub(const char *s, int a, int b) {int count = 0; for (; *s; s++) if (*s >= a && *s <= b) count++; return count;}
int count_a_m(const char *s) {return count_sub(s, 'a', 'm') + count_sub(s, 'A', 'M'); }
int count_n_z(const char *s) {return count_sub(s, 'n', 'z') + count_sub(s, 'N', 'Z'); }
int count_a_m(const char *s) {return strlen(s) - count_lower(s) - count_upper(s); }
>>360 その内容を16進コードで更新するプログラムを作る。
というところの詳細がわからんので、パス。 表示だけなら、簡単。
0365デフォルトの名無しさん
2006/01/13(金) 17:35:22「自力で考えましたができませんでした」とかいって。
0366デフォルトの名無しさん
2006/01/13(金) 17:37:27まずは日本語の勉強をしてください
0367デフォルトの名無しさん
2006/01/13(金) 17:39:17次に、スレ違いであることを理解し、二度と来ないようにして下さい
0369デフォルトの名無しさん
2006/01/13(金) 17:45:08http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1447.c
0370デフォルトの名無しさん
2006/01/13(金) 17:45:27Ax = bの連立方程式を解いているので、rank(A) < dim(A)ならば解けません。
桁落ちが発生する計算を含む場合等も正しい解を得られないでしょう。
詳しくお願いします
0371デフォルトの名無しさん
2006/01/13(金) 18:18:01x + y + z = 1 かつ x + y + z = 0なんてのは解けん気がするぞ。
0372デフォルトの名無しさん
2006/01/13(金) 18:40:46[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録し、
新しく入力された点数以上の氏名を出力するプログラムを書け。
(必ず、print_student(struct student s)と言う学生一人分の情報を
1行に表示する関数を作成し、それを利用して出力を行うこと。)
<構造体の例>
struct student{
char name[50], id[20];
int score;
};
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月23日まで
ヒントでもいいので,何とぞお手柔らかにお願いします
0373デフォルトの名無しさん
2006/01/13(金) 18:51:29int input(FILE *s, struct student *s, int n)
{
int i;
for (i = 0; i < n && fscanf("%s %s %d", &s->name, &s->id, &s->score) == 3; i++, s++)
;
return i;
}
void print_student(struct student s)
{
printf("%s %s %d\n", s.name,, s.id, s.score);
}
int main(void)
{
struct student s[5];
input(stdin, s, sizeof(s)/sizeof(s[0]));
あーメンドウになった。あとよろしく。
0374デフォルトの名無しさん
2006/01/13(金) 19:17:05俺もよく分かってないが、解の存在定理じゃねーのか?
連立一次方程式が解を持つ必要十分条件は
rank[A] = rank[A b]
つーかこれ以上は板違いだろ
線形代数なんだし、数学板池
0375117
2006/01/13(金) 19:24:22ありがとうございます!とても助かります。
0376デフォルトの名無しさん
2006/01/13(金) 20:59:39結構意味不明だな。
0377デフォルトの名無しさん
2006/01/13(金) 21:21:52[2] 問題文(含コード&リンク):石置き対戦ゲームを作りなさい。
このゲームとは、マス目の上に、交互に石(○か×)を置いていき、
縦横斜めのいずれかに自分の石が並んだほうが勝つというゲームである。
ただし、すでに石が置いてある所には石は置けない。
(1)3×3マス([1]〜[3],[A]〜[C])で、先手、後手が選択でき、
既に石の置いてあるところを選択すると、(指定位置には石は置けません)
と表示しなさい。
(順番が回ってくるごとに[位置を指定してください。(先手) 1A
のように表示する。入力方法は[1A]や、[3C]といった方法にする。)
勝ち負けの表示は自由とする。
(2)以下の追加機能を追加しなさい。
[1] : マス目を指定できるようにする(n×n)。(n個並べたら勝ち。)
[2] : コンピュータ対戦ができるようにする。(空き目をランダム検索する)
[3] : コンピュータ対戦ができるようにする。(勝てるアルゴリズム作成)
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 2006年1月24日12:00まで
[5] その他の制限: 条件:特にありません。よろしくお願いします。
0378デフォルトの名無しさん
2006/01/13(金) 21:29:25そんな簡単なの授業の内容理解してれば分かるだろ。
だいたい「勝てるアルゴリズム作成」が無理
0379デフォルトの名無しさん
2006/01/13(金) 21:35:10人間側を邪魔しなけりゃいいだけだし
0380デフォルトの名無しさん
2006/01/13(金) 21:52:050381デフォルトの名無しさん
2006/01/13(金) 21:56:32パターン総当りになるんで面白くないかも。
0383デフォルトの名無しさん
2006/01/13(金) 22:03:370384デフォルトの名無しさん
2006/01/13(金) 22:05:070385デフォルトの名無しさん
2006/01/13(金) 22:11:340386デフォルトの名無しさん
2006/01/13(金) 22:12:22#include <stdio.h>
#define STUDENT_NUM 5
struct student {
char name[50], id[20];
int score;
};
void print_student(struct student s);
void print_passedStudent(struct student s[], int student_num, int pass_score);
int main() {
int pass_score;
struct student student[STUDENT_NUM] = {{"Tanaka", "A01", 70 },{"Kato", "A02", 40 },{"Sato", "A03", 90 },{"Ito", "A04", 100 },{"Yamada", "A05", 80 },};
printf("点数を入力してください: ");
scanf("%d", &pass_score);
print_passedStudent(student, STUDENT_NUM, pass_score);
return 0;
}
void print_student(struct student s) {
printf("氏名:%s\t学籍番号:%s\t点数:%d\n", s.name, s.id, s.score);
}
void print_passedStudent(struct student s[], int student_num, int pass_score) {
int i;
for (i = 0; i < student_num; ++i) {
if (s[i].score >= pass_score) {
print_student(s[i]);
}
}
}
0387デフォルトの名無しさん
2006/01/13(金) 22:16:52難しいってより長いたるいって感じ
0388デフォルトの名無しさん
2006/01/13(金) 22:20:34漏れも興味ある。
スーパーハカーさんお願いします
0389デフォルトの名無しさん
2006/01/13(金) 22:31:272.自分がリーチになったら揃えにいく
3.相手が 〃 邪魔をする
4.斜めを優先的に埋めていく
これぐらいで結構強くなるんじゃない?
判定順は番号の通りで
0390デフォルトの名無しさん
2006/01/13(金) 22:37:07一部適当だが作ったぞ。
ろだが規制中で投稿できないからどこかいいとこ教えれ。
0391デフォルトの名無しさん
2006/01/13(金) 22:40:42「勝てるアルゴリズム」ってのは多分「勝てるように考えたアルゴリズム」
ってことだとおもわれる。
0392デフォルトの名無しさん
2006/01/13(金) 22:42:130393デフォルトの名無しさん
2006/01/13(金) 22:48:35ちと暇つぶしでつくってみるか。工夫しないやつを。
0394デフォルトの名無しさん
2006/01/13(金) 22:51:590395デフォルトの名無しさん
2006/01/13(金) 22:59:1012時までにできなかったら宿題始めるからやめる
0396359
2006/01/13(金) 23:43:50どなたかお願いしますm(__)m
0397デフォルトの名無しさん
2006/01/13(金) 23:48:00C++で答えて「Cでした」とかだと腹が立つから一応聞いておく。
出力に使うのはcoutと習った?それともprintfと習った?
0398395
2006/01/13(金) 23:48:14後はまかせた
0399デフォルトの名無しさん
2006/01/13(金) 23:54:01System.out.println()と習いました><
0400デフォルトの名無しさん
2006/01/13(金) 23:56:16えぇと、釣りかな?一応本人だったときのために言っておくけど、それは
Javaだからこのスレの担当範囲外。次のスレに移動してね。
★★ Java の宿題ここで答えます Part 54 ★★
http://pc8.2ch.net/test/read.cgi/tech/1133778112/
0401デフォルトの名無しさん
2006/01/13(金) 23:57:14俺は>>359じゃないよ♪w
0402デフォルトの名無しさん
2006/01/14(土) 00:02:49[2] 二つのファイルを比べ、違っている最初の行を表示する。
[5] ファイル入出力を用いる
お願いしますm(_ _)m
0403デフォルトの名無しさん
2006/01/14(土) 00:04:060404デフォルトの名無しさん
2006/01/14(土) 00:22:26#include<stdio.h>
#include<stdlib.h>
int main(void){
int kok,sya,suu,rik,eig,n,i;
float *tokuten,heikin=0.0;
printf("何人分のデータ?:");
scanf("%d",&n);
tokuten = calloc(n,sizeof(float));
for(i=0;i<n;i++){
printf("%d人目のデータ入力\n",i+1);
printf("国語の点数:");scanf("%d",&kok);
printf("社会の点数:");scanf("%d",&sya);
printf("数学の点数:");scanf("%d",&suu);
printf("理科の点数:");scanf("%d",&rik);
printf("英語の点数:");scanf("%d",&eig);
tokuten[i] = (kok+sya+suu+rik+eig)/5.0;
}
for(i=0;i<n;i++)
heikin += tokuten[i];
heikin /= n;
printf("全体の平均点は%f\n以下平均未満の点数\n",heikin);
for(i=0;i<n;i++){
if(tokuten[i]<heikin)
printf("%d人目%f\n",i+1,tokuten[i]);
}
return 0;
}
問題の意味取り違えてたとしても知らない
0405デフォルトの名無しさん
2006/01/14(土) 00:23:31>>377
石置き対戦の[1]対人戦n×n並べたら勝ち、まで。
最大9×9、デバッグ甘め。とりあえず動く風
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1451.txt
0407215///
2006/01/14(土) 00:40:10[2] 問題文(含コード&リンク): n人分について国語,社会,数学,理科,英語
の5科目の得点を入力し,
それぞれの合計点を計算した後,n人を合計点の小さい順に並び替え,
出力するプログラムを作成せよ。ただし,各科目の変数名を
ko,sy,su,ri,eiとし,配列名はtokutenとすること
[3] 環境
[3.1] OS: (Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (C++
[4] 期限: 2006年1月14日24h
[5] その他の制限:、
できません
0408デフォルトの名無しさん
2006/01/14(土) 00:45:53この流れだとネタにしか見えないんだが
0409390
2006/01/14(土) 00:46:01>248
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1453.c
0410デフォルトの名無しさん
2006/01/14(土) 00:47:23#include<iostream>
#include<fstream>
#include<string>
#include<iterator>
#include<algorithm>
#define FILE1 "foo.txt"
#define FILE2 "bar.txt"
using namespace std;
template<typename T1, typename T2>
void print( const pair<T1,T2> &t ) {
cout << *(t.first) << "," << *(t.second);
}
int main() {
ifstream is1(FILE1), is2(FILE2);
print( mismatch( istream_iterator<string>(is1), istream_iterator<string>(), istream_iterator<string>(is2)));
}
0411デフォルトの名無しさん
2006/01/14(土) 01:15:210412デフォルトの名無しさん
2006/01/14(土) 01:18:42[2] 問題文(含コード&リンク):
int t(int x, int y, int z) {
if (x > y) return t(t((x-1),y,z),t((y-1),z,x),t((z-1),x,y));
return y;
}
という関数tがある。tと等価な関数で高速なものを実装せよ。
目安としてはt(2006,1003,0)がtimeコマンドで10s以内
[3] 環境
[3.1] OS: 問わない
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1/15(日)の23:59まで
おねがいします。
0413デフォルトの名無しさん
2006/01/14(土) 01:29:59数学の問題得意じゃないけど
int t( int x, int y, int z )
{
if ( x <= y ) return y;
if ( y <= z ) return z;
return x;
}
でいいんじゃないか?
元の関数と違う結果を返す x, y, z の組み合わせ例を見つけたら
教えて。
0414デフォルトの名無しさん
2006/01/14(土) 01:30:33ノシ
とりあえず枠だけ作るのに2時間かかりました
0415デフォルトの名無しさん
2006/01/14(土) 01:34:30・・・まあ、なんだ・・・あとは明日以降。
0416デフォルトの名無しさん
2006/01/14(土) 01:43:28ワロタ
0417413
2006/01/14(土) 01:47:51再帰複雑すぎて脳内実行できないし、元のアルゴリズム遅すぎて結果でるまで待てないし、
検証の仕様がないんだけど。
0418デフォルトの名無しさん
2006/01/14(土) 01:51:590419405
2006/01/14(土) 01:52:05ノシ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1454.txt
[2]CPU戦・ランダムで置くところまで。4でCPU対戦。
update 1451.txt
>右上→左下の判定が出来てなかったもより
今は反省している
>あと、メッセージを問題文に準拠
0420405
2006/01/14(土) 02:13:57とりあえず今の考えでは
1.自分が置いて「勝ち」なら、その手を選ぶ
リーチ目の行・列があれば、ってこと
2.相手にリーチ目があれば全力で阻止
3.ライン(1列)上に相手の石が無く、なおかつ
自分の石が一番多いラインをカウント
ライン上に相手の石があれば、そのラインを
揃えて勝つことはできない
4.3.のラインの自石が置ける場所にクロスするラインで
3.の判定を行い、最善を選ぶ
5.3.を満たす列がまったく無い場合、勝つことができない。
逆に相手に揃えさせない手を選ぶ。
6.5.を満たす列が無くなった場合、すなわちどこの
空きマスを見ても縦横に○×両方入っている場合は
実質引き分けとなる。空いてるマスにランダムで。
これからの方針はこんな感じ。では寝ます ノシ
ちなみに4.の判定をすると、ダブルリーチの目を
自ら潰すように動くと思われ。
0421デフォルトの名無しさん
2006/01/14(土) 02:15:49[2]問題文:
既定のディレクトリにあるファイルをオープンし、ファイルの中身を読む。
ファイルは一日単位で自動的に生成され、名前は
2005_12_31.txtのようなフォーマットになっていて、開く対象のファイルはコマンドラインの
オプションで指定する。(./exefilename prm1 prm2)
例えば、prm1が2005_12_20,prm2が2006_01_10であれば、2005年12月20日から
2006年1月10日までのファイルを順番にオープンする。
ファイルの中身は一行が最大200Byteのテキストで、全て5行で構成されるログのようなもので、
1つのレコードの最後、つまり5行目の終端に、DBGPRT=ONかDBGPRT=OFFという文字列が
付加されている。
ファイルリードは1つの関数として実行し、開くファイルの数だけその関数を実行する事とする。
ファイルリード関数の先頭で子プロセスを生成しておく。
関数内で1つのレコード(MAX200Byte*5)を読み込み、5行目の最後がDBGPRT=ONだった場合、
標準出力に吐き出させる。ただし、吐き出しは子プロセスで行う事。
子プロセスとのプロセス間通信には共有メモリを用い、また、ダブルフォークは禁止とする。
子プロセスの埋葬は必ず行う事。
尚、ソースコードはC言語で記述し、文字列はchar型の配列で扱う事。
上記以外の制約は無し。
[3]環境
OS:Linux
コムパイラ:GCC
言語:C
[4]期限 お勉強なので特になし。
どう取り組んだら良いのかさっぱりです。
取り合えず方針だけでも教えて頂ければ幸いです。それ以前に、プロセス間通信は分かりますが共有メモリを使っての
プロセス間通信はどうやってやるとですか??
0422デフォルトの名無しさん
2006/01/14(土) 02:19:28だぶるふぉーっくって何だ?
0423デフォルトの名無しさん
2006/01/14(土) 02:22:420424デフォルトの名無しさん
2006/01/14(土) 02:23:18量子力学の基本だろ
0425デフォルトの名無しさん
2006/01/14(土) 02:26:18http://www.system5.jp/asp/ItemFile/10004843.html
0426デフォルトの名無しさん
2006/01/14(土) 02:30:19[2] 問題文(含コード&リンク):
【1】1+2+3+...+100を計算するプログラムを作成してくださいfor文を使用してください。
#include<stdio.h>
void main(void)
{
int gokei,i;
【2】【1】のプログラムをwhile文を用いて書き直してください。
【3】整数iの自乗が1000以上で、もっとも100に近い値となるiとiの自乗を算出するプログラムを作成してください。
#include<stdio.h>
void main(void)
{
int i;
【4】18の倍数で、300以下の最大の整数を求めるプログラムを作成してください。
#include<stdio.h>
void main(void)
{
int i;
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:bcc32 Ver.5.5.1.2
[3.3] 言語:C
[4] 期限:2006/1/15
[5] その他の制限:あまり詳しいことは分からないのですが、
出来るだけ初歩的なコードで書いてください。
すいません。
結構、量があるとは思いますが、どうぞよろしくお願い致します。
0427デフォルトの名無しさん
2006/01/14(土) 02:35:480428デフォルトの名無しさん
2006/01/14(土) 02:39:22gokei = 0;
for(i =1;i<=100;++i){
gokei += i;
}
【2】
gokei = 0;
i = 1;
while(i <= 100){
gokei += i;
++i;
}
【4】
i = 300 - (300 % 18);
>427
10000の間違いなんじゃない?
0429デフォルトの名無しさん
2006/01/14(土) 02:41:12main(void){
int n1 = 1;
for(;n1 * n1 > 1000;n1++)
ん?? LOOPしねぇぞオイ
0430デフォルトの名無しさん
2006/01/14(土) 02:45:49int n1 = 200;
int n2 = 0;
while(1)
{
n2 = n1 * n1;
if(n2 < 1000)
break;
n1--;
}
0431デフォルトの名無しさん
2006/01/14(土) 02:48:32#include<stdio.h>
void main(void){int gokei,i;gokei=0;for(i=1;i<=100;i++)gokei+=i;printf("%d\n",gokei);}
2.
#include<stdio.h>
void main(void){int i=0,gokei=0;while(i<100)gokei+=++i;printf("%d\n",gokei);}
3.
#include<stdio.h>
void main(void){int i=0;while(i*i<1000)i++;i--;printf("i=%d, i^2=%d\n",i,i*i);}
4.
#include<stdio.h>
void main(void){int i;i=300-(300%18);printf("%d\n",i);}
0432431
2006/01/14(土) 02:52:27問題読めば読むほどワカラン
0433デフォルトの名無しさん
2006/01/14(土) 02:53:00おマイの頭にSIGKILL
SIGSEGVしてるぞ
0434デフォルトの名無しさん
2006/01/14(土) 03:00:55リーチ目をおさえるまでやってみた。
0435デフォルトの名無しさん
2006/01/14(土) 03:02:01#include<stdio.h>
void main(void){puts("100");return 0;}
0436デフォルトの名無しさん
2006/01/14(土) 03:03:10なんでそんな情熱あるの?w
0437434
2006/01/14(土) 03:03:41if(search_reach(&x, &y, current)) printf("<%c%c>\n",x+'1', y+'A');
はテストコードなんで無視してちょ。
0438デフォルトの名無しさん
2006/01/14(土) 03:05:30やるな>435
i=0;
while(1){
if(1000 <= (100-i)^2){
i = 100-i;
break;
}
if(1000 <= (100+i)^2){
i = 100+i;
break;
}
++i;
}
printf("%d %d\n",i,i^2);
0439デフォルトの名無しさん
2006/01/14(土) 03:14:52愛がゼロだからそのまま抜けるな。
0440デフォルトの名無しさん
2006/01/14(土) 03:40:21なんて愛の無いプログラムなんだろう。
0441デフォルトの名無しさん
2006/01/14(土) 03:43:480442426
2006/01/14(土) 03:58:11【3】の問題は
整数iの自乗が1000以上で、もっとも「1000」
です。
こんな下らないミスで混乱させてしまい、申し訳ありません。
それでも、真剣に考えてくださって本当にありがとうございます。
これで、単位どうにかなりそうです。
0443デフォルトの名無しさん
2006/01/14(土) 04:00:38別の人?
0444デフォルトの名無しさん
2006/01/14(土) 04:03:490445デフォルトの名無しさん
2006/01/14(土) 04:04:24ハズカシス
0446438
2006/01/14(土) 04:07:29>441
あー、何考えてんだ、漏れ。
>444-445
もう寝れ。漏れも寝る。
0447デフォルトの名無しさん
2006/01/14(土) 04:18:57私が質問するのは今回が初めてなので、
同じ授業を取っていた人が質問したと思います。
0448デフォルトの名無しさん
2006/01/14(土) 04:26:000449デフォルトの名無しさん
2006/01/14(土) 04:35:31めんどくさいってのもあるけど
0450デフォルトの名無しさん
2006/01/14(土) 04:40:13(゚Д゚)ノ ァィ
#include<stdio.h>
void main(void){
int i;
for(i=1;i*i<1000;i++);
printf("%d %d\n",i,i*i);
}
0451デフォルトの名無しさん
2006/01/14(土) 04:50:17>整数iの自乗が1000以上で、もっとも「1000」
日本語勉強し直せよ
整数iの自乗が1000以上で、もっとも「1000」に近い「i」なら1000だろ
i == 32 を期待してるなら、
整数iの自乗が1000以上で、もっとも小さい「i」
0452デフォルトの名無しさん
2006/01/14(土) 04:52:18死ね
0453デフォルトの名無しさん
2006/01/14(土) 04:54:40とりあえず通報しといた
0454デフォルトの名無しさん
2006/01/14(土) 05:38:12ところで、総当り方式のマルバツプログラムは組んだんだが、3x3までは動く。
4x4はダメダ...
3x3の組合せ(9!)362880
4x4の組合せ(16!)20922789888000
...いや、6x6のオセロが解けるってきいてたもんで、4x4ならラクに行けるんじゃないかと...
先に計算量を予想しとかんといかんですな...
0455デフォルトの名無しさん
2006/01/14(土) 05:42:160456デフォルトの名無しさん
2006/01/14(土) 07:10:35ここでソースコード書いてもらっても理解出来なきゃ自分が困るだけだな。
0457デフォルトの名無しさん
2006/01/14(土) 07:12:41実際問題そんなの出して問題ないのかな?
0458デフォルトの名無しさん
2006/01/14(土) 07:30:54C99以前では
int num;
scanf("%d",&num);
int hoge[num];
というのは駄目ですからー
遅かれ早かれ動的メモリ確保は履修するべき、しないならうんこ
0459デフォルトの名無しさん
2006/01/14(土) 07:38:52それは教官が馬鹿な場合だけだ
0460デフォルトの名無しさん
2006/01/14(土) 07:40:51えっ?それできるの?マジで?
0461デフォルトの名無しさん
2006/01/14(土) 07:43:26できないんですけど・・・
0462デフォルトの名無しさん
2006/01/14(土) 07:50:09馬鹿じゃなくて理解できているかどうか確認するために書かせる
0463デフォルトの名無しさん
2006/01/14(土) 07:56:08自分で理解して組み上げたものか、ここで丸投げしたものかの判断で
ソース内か別pdfなどで説明を要求してくる先生もいる。
0464デフォルトの名無しさん
2006/01/14(土) 08:00:40俺はそんなことなかったな
0465デフォルトの名無しさん
2006/01/14(土) 08:03:13余所(このスレの回答者とか)で動作確認できなくすることで
丸投げ対策してるのではないかとも思いたくなる。
0466デフォルトの名無しさん
2006/01/14(土) 08:03:23それが恐ろしいとか、うざいとか言うなら
大学なんて辞めてアルバイトでもした方がいいよ
生半可な知識で現場に出てこられても使えないだけだし
0467デフォルトの名無しさん
2006/01/14(土) 08:04:33たかが大学の授業なのに
0468デフォルトの名無しさん
2006/01/14(土) 08:05:240469デフォルトの名無しさん
2006/01/14(土) 08:16:440470デフォルトの名無しさん
2006/01/14(土) 08:16:48えっ、それが普通じゃないの?
てか、そうじゃないと本当の意味で理解してるのか分からない。
友達のソースを改変して、できましたって持ってくこともできるし。
0471デフォルトの名無しさん
2006/01/14(土) 08:29:05だけど、コピーペーストだけはするな
まんまでいいから自分で打ち込めとか言ってた
0472デフォルトの名無しさん
2006/01/14(土) 08:34:57プログラムは組みたいけど、数学の勉強はいまさらしたくない。
漸化式とか、ぐぐってもサパーリ理解不能。
本末転倒だとは思うんだけど、ね。
めんどうな計算はコンピーターにやらせよう。
「3桁×3桁は電卓で。」の、ゆとり教育。
0473デフォルトの名無しさん
2006/01/14(土) 08:35:33あたかも自分で書いたように見せかけて提出すると犯罪だけど
覚えるだけならそれでもいいかもね。
0474377
2006/01/14(土) 09:05:38コンピュータ側を強くするという意味だそうです。
>>405さん 有難うございます。俺も頑張ってみますが、まだプログラムを
考えてくださってる方もいるようなので、よろしくお願いします。
0475デフォルトの名無しさん
2006/01/14(土) 09:15:000476デフォルトの名無しさん
2006/01/14(土) 09:18:30おまえ漸化式も知らないでプログラマやってんの?w
0477デフォルトの名無しさん
2006/01/14(土) 09:20:55ここで書かれたコンピュータ側プログラムでどれが一番強いか競わせたいね。
だれかネットワーク対戦用に共通の土俵を作ってくれ。
0478デフォルトの名無しさん
2006/01/14(土) 09:31:380479472
2006/01/14(土) 09:46:19正直、行列とかわからん。3D興味ないし。
ベクトル内積ぐらいならなんとか。
作りたいものが10年前のレベルだからいいじゃん。
日曜プログラマだし。(元プロ)
0480デフォルトの名無しさん
2006/01/14(土) 09:47:140481デフォルトの名無しさん
2006/01/14(土) 10:01:12[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録し、
新しく入力された点数以上の氏名を出力するプログラムを書け。
(必ず、print_student(struct student s)と言う学生一人分の情報を
1行に表示する関数を作成し、それを利用して出力を行うこと。)
< 構造体の例 >
struct student{
char name[50], id[20];
int score;
};
< 実行例 >
Name? Tanaka (fgets と sscanf によって5人分のデータを入力する)
ID? 103
Score? 80
(途中省略)
Passing score? 70
102 Suzuki 90
103 Tanaka 80
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月17日まで
何とぞお手柔らかにお願いします
0482479
2006/01/14(土) 10:03:12Cだけど、表示まわりは社内ライブラリが充実してたし
(支店の人間がさわることは許されなかった)、
ほとんどSQLだけ。
業務アプリなんて、VB+データベースの知識だけで十分。
こんなんで全国1,000店舗の販売管理できるんだもんな。
0483デフォルトの名無しさん
2006/01/14(土) 10:07:08雑談したいだけならどっか逝けよ
0484デフォルトの名無しさん
2006/01/14(土) 12:29:07× データベースの知識
○ データベースの使い方
0485デフォルトの名無しさん
2006/01/14(土) 13:47:50[2] 問題文:
二分探索木における挿入、削除、検索のアルゴリズムを簡潔に説明し、そのプログラムを作成せよ。
ただし、挿入、削除、検索はそれぞれ再帰を用いた関数でプログラムを作れ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:1/26まで
[5] その他の制限:特に無し
よろしくお願いします。
0486デフォルトの名無しさん
2006/01/14(土) 13:49:48ttp://www.geocities.jp/ky_webid/algorithm/017.html
0487デフォルトの名無しさん
2006/01/14(土) 13:51:14BinarySearchで再帰なんて使うメリット無いだろ
0488デフォルトの名無しさん
2006/01/14(土) 14:22:450489デフォルトの名無しさん
2006/01/14(土) 14:41:410490デフォルトの名無しさん
2006/01/14(土) 14:49:52[2] 問題文(含コード&リンク):数字パズル。パズル完成時にクリアメッセージ「おめでとう!」等が表示されるようにせよ。(配列の初期配置と現在値の合同判定をする関数を組んで下さい)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1462.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: bcc32
[3.3] 言語: C
[4] 期限: [2006年01月16日24:00まで]
[5] その他の制限: 特にありませんが、お願いする関数はint moveのswitch(S)下、caseのbreak;直前毎に組み込んでくださると見易くて助かります。
それと私自身の力不足の為、グローバル変数が混じっていますが多めに見て下さい…それでは宜しくお願い致します。
0491デフォルトの名無しさん
2006/01/14(土) 14:50:590492デフォルトの名無しさん
2006/01/14(土) 14:52:35いわゆる15パズルっぽいな
0493490
2006/01/14(土) 15:01:06プログラムとして動くようにはなっているので、bcc32でコンパイルすればどんな状態なのか一発でわかるのですが…
実際参考にする必要性のある箇所は少ないはずです…多分グローバル関数のnumと配列担当のint table位だと思います。
他の関数は数字混ぜたり書いたりしてるだけなので…
0494デフォルトの名無しさん
2006/01/14(土) 15:49:14masu 定義直後に int masu0[11][11];int started = 0;
tableinit() 呼出直後に copy();
start() 呼出直後に started = 1;
指定位置に judge();
void copy(){int x, y;for(x=1;x<=num;++x) for(y=1;y<=num;++y) masu0[x][y]=masu[x][y];}
void judge(){int x, y;if(!started) return;for(x=1;x<=num;++x) for(y=1;y<=num;++y) if(masu0[x][y]!=masu[x][y]) return;printf("おめでとう!\n");}
0495デフォルトの名無しさん
2006/01/14(土) 16:25:01最近はできる
昔はできなかった
VC++6.0なんかだとできない
0496212
2006/01/14(土) 16:34:33ややこしい問題ですがどうかよろしくお願いします。
符号付2進展開のプログラムについてです。
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。
問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
3 = 0 1 1・・・・・・5の指数部
6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。
このような仕様です。よろしくお願いします。
0497デフォルトの名無しさん
2006/01/14(土) 17:00:38この程度で長いって逝ってたらやばいぞ
0498デフォルトの名無しさん
2006/01/14(土) 17:11:05僕にはこれが限界ですた
http://smzk55.hp.infoseek.co.jp/maru_batu.c
0499デフォルトの名無しさん
2006/01/14(土) 17:33:42[2] 問題文 台形の面積を計算する関数を作成せよ.ただし上底,下底,高さは
main関数内で取り込み,これら3変数を関数の引数として与えるものとする.
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:初心者でもわかりやすい感じ…;
よろしくお願いします。
0500デフォルトの名無しさん
2006/01/14(土) 17:50:00・関数内で表示するのか、値を返すのか
・引数および面積の値は実数か整数か
0501デフォルトの名無しさん
2006/01/14(土) 17:53:50値は実数
0502デフォルトの名無しさん
2006/01/14(土) 17:55:23「値を返す」「実数」でお願いします!
0503デフォルトの名無しさん
2006/01/14(土) 17:55:280504デフォルトの名無しさん
2006/01/14(土) 17:56:33表示する必要はなさそう
0505デフォルトの名無しさん
2006/01/14(土) 17:57:240506デフォルトの名無しさん
2006/01/14(土) 18:00:02マジレスワロスw
>>499
double (double top,double bot,double h)
{
return (top+bot)*h/2.0;
}
0507デフォルトの名無しさん
2006/01/14(土) 18:04:11506番さんのを詳しく教えてほしいのですが…
0508デフォルトの名無しさん
2006/01/14(土) 18:04:25このタイミングで桁あふれしないか?
(h/2.0)*(top+bot)
とするとか...
0509デフォルトの名無しさん
2006/01/14(土) 18:06:010511デフォルトの名無しさん
2006/01/14(土) 18:12:02>(h/2.0)*(top+bot)
このタイミングで桁落ちしないか?
0512デフォルトの名無しさん
2006/01/14(土) 18:13:10符号付2進展開のプログラムについてです。
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。
問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
3 = 0 1 1・・・・・・5の指数部
6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。
このような仕様です。よろしくお願いします。
0513デフォルトの名無しさん
2006/01/14(土) 18:13:49符号付2進展開のプログラムについてです。
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。
問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
3 = 0 1 1・・・・・・5の指数部
6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。
このような仕様です。よろしくお願いします。
0514デフォルトの名無しさん
2006/01/14(土) 18:13:530515デフォルトの名無しさん
2006/01/14(土) 18:14:21符号付2進展開のプログラムについてです。
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。
問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
3 = 0 1 1・・・・・・5の指数部
6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。
このような仕様です。よろしくお願いします。
0516デフォルトの名無しさん
2006/01/14(土) 18:14:52符号付2進展開のプログラムについてです。
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。
問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
3 = 0 1 1・・・・・・5の指数部
6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。
このような仕様です。よろしくお願いします。
0517デフォルトの名無しさん
2006/01/14(土) 18:15:010518デフォルトの名無しさん
2006/01/14(土) 18:15:26符号付2進展開のプログラムについてです。
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。
問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
3 = 0 1 1・・・・・・5の指数部
6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。
このような仕様です。よろしくお願いします。
0519デフォルトの名無しさん
2006/01/14(土) 18:28:190520デフォルトの名無しさん
2006/01/14(土) 19:00:03http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1463.txt
0521520
2006/01/14(土) 19:02:160522デフォルトの名無しさん
2006/01/14(土) 19:35:12一応聞いておくけど
(1)5^3=5*5*5ですか?
ふつうCだと「^」は排他的論理和で使わているので(5^3=6)。
(2)(5^3)*(2^6)の「*」の部分はどう計算するのですか?
ふつうに「*」を使って計算するのか、2つを2進化して
和とビットシフトで計算するのですか?また、5と3を
連動して累乗?を計算するのか、独立して累乗を計算するのか?
(3)途中で「rを符号付2進展開にした場合」とありますが
a,rはどの型で定義しますか?(int ,unsigned int,double)
それによって、計算結果が無意味になる場合もあります。
0523490
2006/01/14(土) 19:37:15素晴らしいスレッドですね。出来る限り自力で解けるように精進しようと思います。
>>494さん有難う御座いましたー。
0524デフォルトの名無しさん
2006/01/14(土) 19:50:24C#はC#の質問できそうなスレがありますが
ミスターサタンのC#相談室
http://pc8.2ch.net/test/read.cgi/tech/1092656075/l50
【やったね】C#最強伝説 第2章【ゲイツ】
http://pc8.2ch.net/test/read.cgi/tech/1070469339/l50
C#の独自機能を使わずC/C++の範囲でどうにかなる
場合もありますので自身で判断してください。
0525212
2006/01/14(土) 19:52:26返答ありがとうございます。
(1)5^3は5×5×5です。
(2)ビットシフトのほうでお願いします。
(3)a,rとも巨大な数にも対応できるように一応多倍長で定義しています。
色々説明が抜けていてすみません。
ちなみに212と496以外は自分ではありません。
今度はトリップのつけ方覚えてきます。
0526デフォルトの名無しさん
2006/01/14(土) 20:55:53定義がよくわからん。自前の浮動小数点数だとは思うが、それだったら、定義が必要。
とりあえず、講義で足し算とか掛け算くらはいは出てるだろうから、それをUP。
> OX作ってる人。
いや・・・がんばってるな。乙。
この手のゲームの場合、思考ルーチンは手だけを返すというのもアリ。
ゲーム状態を保持するなら、手番も構造体に入れるといいかも?
0527デフォルトの名無しさん
2006/01/14(土) 21:06:42http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1464.txt
まずは簡単にa,rともにintでa>0、r≧0の場合のみ。
この時点ではr<0に対してa^rが0になってしまったり
>>522の「連動して」計算しても10進数でいう小数点以下が
維持されないのででたらめな値になる。そのため(3)で聞いてみた。
>>525
多倍長の形式がわからないので、学外でも使用できるライブラリか
自作なら
・多倍長の形式と代入(main内の埋め込みでおk)
・多倍長同士の和を求める関数
(和さえ分かれば差積も比較的容易と思う。商はやや難だが)
・多倍長における1464.txtで言うところの論理積「&」のビットシフト「>>」の処理
あたりを示してほしい
0528212 ◆mL2ZRk1cK.
2006/01/14(土) 21:29:43すみません、多倍長のヘッダファイルは先生が作ってくれた物を
そのまま使っているので定義のところがわかりません。
わかり次第UPします!
>>527さん
ありがとうございます!
さっそく試してみます。
多倍長に関しては上に書いたようにまだよく
分かってない部分があるので
わかり次第書き込みます。
協力していただいて本当にありがとうございます!
0529デフォルトの名無しさん
2006/01/14(土) 21:37:09[2] 問題文(含コード&リンク):
このプログラムを改良して、以下の機能を実現させろ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1465.txt
リダイレクションでhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1466.txt このファイルを入力します。
datファイルでしたがUPしたらtxtになってしまいました。
駅名 所在地 次の駅までの距離 ってなってます
(1) 全ての駅について、その駅から下り方向の全ての駅との距離を表形式で標
準出力に出力(上り方向は表示する必要はない)
[イメージ]
Tokyo Shina Yokoh ....Hakat
Tokyo 0.0 6.8 28.8 ....
Shina 0.0 22.0 ....
.....
Hakat 0.0
(2) 表出力後、標準入力から駅名を2個入力し、その区間の駅名・駅間距離を
下り方向で表示(入力される駅名が下り方向順とは限らないので注意する
こと)
[3] 環境
[3.1] OS: Windows
[3.2] Borland bcc
[3.3] 言語: C
[4] 期限: 来週中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします
0530デフォルトの名無しさん
2006/01/14(土) 21:37:53参考にさせていただきます。
0531デフォルトの名無しさん
2006/01/14(土) 22:21:27[2] 問題文:以下の通りです
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年1月23日まで
丸投げで申し訳ありません><問題文の意味さえ理解出来ていない
ド素人ですが、どなたかお願い出来ませんでしょうかm(_._)m
-------------------------------------------------------------
問1 次の関数を作成しなさい。
a. 数値の入った配列を引数として受け取り、その整数部(小数点以下切り捨て)
の合計を計して返す関数。データの終わりは 0.0になっている。
その最初の行は,int intsum(list)とする。
例:intsum([-19.5,30.8,-60.93,25.21,0.0]) → -24
b. 文字列を引数として受け取って、その中の数字の個数を数えて返す関数。そ
の最初の行は,int digitnumber(list)とする。
例:digitnumber("EXPO 2005 will begin on March 25.") → 6
0532531
2006/01/14(土) 22:22:24#include <stdio.h>
int main(void)
{
int natural[10];
int i=1,j,k;
int sum=0;
for (j=0;j<=9;j++) {
natural[j]=i;
i++;
}
for (k=0; k<=9; k++) {
sum+=natural[k];
}
printf("%d\n",sum);
}
0533デフォルトの名無しさん
2006/01/14(土) 22:31:59結果だけなら55
やってることは、配列natural[10]に1〜10まで数を入れて
配列naturalに収められている数を順番にsumに足していってる
0534デフォルトの名無しさん
2006/01/14(土) 22:34:52int intsum(list)
double list[];
{
int sum = 0;
while(*list!=0.0){
sum+=(int)*list;
++list;
}
return sum;
}
int digitnumber(list)
char* list;
{
int count = 0;
while(*list!='\0'){
if('0'<=*list&&*list<='9') ++count;
++list;
}
return count;
}
0535デフォルトの名無しさん
2006/01/14(土) 22:39:04[2] 問題文(含コード&リンク):
1G(=ゴールド), 5G, 15G, 32Gの4種類のみの硬貨が存在する国を考える。
ある金額n(0 <= n <= 100000000)Gを払うのに必要な硬貨の最小枚数を求めるプログラムpayを作成しなさい
実行例
$ ./pay 33
2
$ ./pay 9
4
$ ./pay 100000000
3125000
[3] 環境
[3.1] OS: 問わず
[3.2] コンパイラ: gcc
[3.3] 言語: C/C++
[4] 期限: 2006 1/16 17:00まで
よろしくおねがいします。
0536デフォルトの名無しさん
2006/01/14(土) 22:40:43有難うございます。
ここで聞いてみます!
0537デフォルトの名無しさん
2006/01/14(土) 22:47:45pay 9 って 5 じゃね?
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[]){
int coins[] = {32,15,5,1,0};
int money = atoi(argv[1]);
int count = 0, *coin=coins;
while(money&&*coin){
if(money<*coin) ++coin;
else {money-=*coin; ++count;}
}
if(money) printf("Unpayable.\n");
else printf("%d", count);
}
0538デフォルトの名無しさん
2006/01/14(土) 22:51:575ですた
0539デフォルトの名無しさん
2006/01/14(土) 22:52:330540537
2006/01/14(土) 22:54:360541デフォルトの名無しさん
2006/01/14(土) 22:54:41そうです
0542デフォルトの名無しさん
2006/01/14(土) 23:28:51誤(PG):45=32+5+5+1+1+1
正 :45=15+15+15
で、どうやって実装するの?
スーパーハカー期待wktk
0543531
2006/01/14(土) 23:29:140544デフォルトの名無しさん
2006/01/14(土) 23:31:12#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
int money[]={32,15,5,1,1},pay1=atoi(argv[1]),pay2=pay1;
int num1=0,num2=0,i;
for(i=0;i<4;i++){
num1+=pay1/money[i];
pay1%=money[i];
}
for(i=1;i<4;i++){
num2+=pay2/money[i];
pay2%=money[i];
}
if(num1<num2) printf("%d\n",num1);
else printf("%d\n",num2);
return 0;
}
0545デフォルトの名無しさん
2006/01/14(土) 23:38:00泥沼です
0546デフォルトの名無しさん
2006/01/14(土) 23:50:22正しくは「(御)解答くださった方々」。
0547デフォルトの名無しさん
2006/01/14(土) 23:51:50[2]問題文(含コード&リンク):任意の文字列の左右を逆転させる(EX:Program⇒margorP)プログラムをスタック(LIFO)のデータ構造を用いて作成せよ。
[3]環境
[3.1]OS:windows
[3.2]コンパイラ名とバージョン:VC
[3.3]言語:C
[4]期限:1月16日
[5]その他の制限:なし
よろしくお願いします
0548デフォルトの名無しさん
2006/01/15(日) 00:21:01浅学なもんですまないが
1,5,15,32の4つの整数を考えた場合
15は5の3倍だし、5は1の5倍
これから15は (1の5倍 && 5の3倍) だから15は1*15と確かめられる
1*(n*5) → 5*n && 5*(n*3) → 15*n = 1*(n*15) → 15*n
しかし32は5の倍数ではないのでここで不都合が起きる
もしある金額が5の倍数である場合32のコイン計算は除いたほうがいいだろう。(※1)
しかし32と15の公倍数の場合(例えば480 = 最小公倍数)、※1により32のコイン計算を除外した場合
480の最小コインの枚数は32Gの15枚であるはずが、15Gの32枚と返されてしまう。
であるから、32と15の公倍数である場合は※1の例外処理はまずいだろう。
(証明は出来ないですがorz)
長くなりましたプログラムにすると次になりました
0549デフォルトの名無しさん
2006/01/15(日) 00:21:35#include<stdio.h>
#include<stdlib.h>
typedef struct stack_impl_tag {struct stack_impl_tag *prev; char data;} StackImpl;
typedef struct stack_tag {StackImpl* ptr;} Stack;
int StackPush(Stack *s, char x) {
StackImpl *temp;
if (s->ptr) {
if (!(temp = (StackImpl*)malloc(sizeof(StackImpl)))) return 0;
temp->prev = s->ptr; s->ptr = temp;
} else {
if (!(s->ptr = (StackImpl*)malloc(sizeof(StackImpl)))) return 0;
s->ptr->prev = NULL;
}
s->ptr->data = x;
return 1;
}
int StackPop(Stack *s, char *x) {
StackImpl *temp;
if (!s->ptr) return 0;
*x = s->ptr->data; temp = s->ptr->prev; free(s->ptr);
if (temp) s->ptr = temp; else s->ptr = NULL;
return 1;
}
void StackInit(Stack *s) {s->ptr = NULL;}
void StackFree(Stack *s) {char temp; while (StackPop(s, &temp)) {}}
int main(void) {
Stack s; int i; char c; StackInit(&s);
while ((i = getchar()) != EOF && i != '\n') StackPush(&s, (char)i);
while (StackPop(&s, &c)) putchar(c);
StackFree(&s); return 0;
}
0550デフォルトの名無しさん
2006/01/15(日) 00:21:44{
int c1=0,c5=0,c15=0,c32=0;
int money = 480;
if( money%5 || !(money%480) ){
c32 = money / 32;
money -= c32*32;
}
c15 = money / 15;
money -= c15*15;
c5 = money / 5;
money -= c5*5;
c1 = money;
printf("各々コイン 32G=%d 15G=%d 5G=%d 1G=%d\n",c32,c15,c5,c1);
printf("合計枚数 %d\n",c32 + c15 + c5 + c1);
getch();
return 0;
}
というかもう結論出てたりするのかしら
0551デフォルトの名無しさん
2006/01/15(日) 00:22:47狙ったかのような割り込み乙
0552デフォルトの名無しさん
2006/01/15(日) 00:22:53[2] 問題文�@n個のデータを入力して、その最大、
最小、中央値を求めよ。ただしnは100までの数とする。
�A次のフィボナッチ数列Fnを計算し、Fn≧50となるときの第n項を
出力せよ。
Fn=Fn-2+Fn-1 ただし、F0=0、F1=1
�B10文字までの英字を入力して、「入力された英字のそれぞれを
1文字前の英字で表す。」という規則で変換した暗号を出力せよ。
�C任意の文字列を入力して、文字を右に数文字ずらした文字列を作成したい
。例えば、「delicate」を右に3文字ずらすと「atedelic」となる。
任意の10文字の文字列と右へずらす数を入力して、新しい文字列の結果
を出力せよ。
[3] 環境
[3.1] OS: (Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (C++
[4] 期限: 2006年1月16日24h
[5] その他の制限:
僕の手ではあまるんでよかったらお願いします・
0553548
2006/01/15(日) 00:28:155の倍数 && 480の倍数ではないから32Gのコイン計算がされてませんねorz
うむむ出直してきます
0554デフォルトの名無しさん
2006/01/15(日) 00:32:16もう出たけどせっかく書いたし貼っとく。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26836
"Download as file" っていうリンクをクリック
0556デフォルトの名無しさん
2006/01/15(日) 00:41:10この擦れに長く居たせいで自明に見えるw
# include <stdio.h>
# include <stdlib.h>
int min(int x, int y)
{
return x < y ? x: y;
}
int mincoins(int amount, const int *coins, int n_coins)
{
int x, y;
if(n_coins == 0 || amount < 0)
return -1;
if(amount == 0)
return 0;
x = mincoins(amount-coins[0], coins, n_coins);
y = mincoins(amount, coins+1, n_coins-1);
if(x == -1)
return y;
if(y == -1)
return x+1;
return min(x+1, y);
}
int main(int ac, char **av)
{
const int coins[] = {32, 15, 5, 1};
if(!av[1])
return 1;
printf("%d\n", mincoins(atoi(av[1]), coins, 4));
return 0;
}
0557544
2006/01/15(日) 00:43:05思いつきで書いてテストしてないけど
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
int money[]={32,15,5,1,1},pay=atoi(argv[1]);
int num=0,i;
if(pay%5!=0){
while(pay>=money[0]){
pay=pay-money[0];
num++;
if(pay%5==0) break;
}
}
for(i=1;i<4;i++){
num+=pay/money[i];
pay%=money[i];
}
printf("%d\n",num);
return 0;
}
0558デフォルトの名無しさん
2006/01/15(日) 00:43:29これでどうだ?
int main(int argc, char* argv[]){
int money = atoi(argv[1]);
int hasuu[15] = {0,1,2,3,4,1,2,3,4,5,2,3,4,5,6};
int i, c32, c15;
int count = (money/480)*15;
int min;
money%=480;
min=count+money;
for(i=0;i<15;++i){
int nokori = money-i;
for(c32=0;c32<=nokori/32;++c32){
for(c15=0;c15<=(nokori-c32*32)/15;++c15){
if(c32*32+c15*15==nokori){
int temp = c32+c15+hasuu[i];
if(temp<min) min = temp;
}
}
}
}
printf("%d\n", count+min);
}
0559556
2006/01/15(日) 00:45:32うんこ。
0560デフォルトの名無しさん
2006/01/15(日) 00:47:26なぜか�Bだけやってみた。
フィボナッチ数列を再帰で実装しろとかいいだしたら、
コードコンプリートの上巻で指導教官を殴れ。
#include <string>
void convertString(std::string &str) {
for(unsigned i = 0; i < str.size(); ++i)
str[i] = str[i] - 1;
}
int main(int argc, char *argv[])
{
using namespace std;
std::string inputText;
cout << "Input Alphabet(MAX10) >";
cin >> inputText;
if(inputText.size() > 10){
cout << "Input String Size Err!" << endl;
return 0;
}
convertString(inputText);
cout << inputText << endl;
return 0;
}
0561デフォルトの名無しさん
2006/01/15(日) 00:49:570562デフォルトの名無しさん
2006/01/15(日) 00:51:35[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1467.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C のみで
[4] 期限: 20050116まで
[5] その他の制限: 再帰を使う問題です。よろしくお願いします。
0563デフォルトの名無しさん
2006/01/15(日) 00:56:58自分でそのリンクの文書を読み直してみろ。それで伝わると思うか?
0564デフォルトの名無しさん
2006/01/15(日) 00:59:56�Cもやった。
第1引数がシフトする文字列で、第2引数が右シフト数。
void shiftString(std::string &str, unsigned shift_num) {
shift_num = shift_num % str.size();
std::string tempStr;
tempStr.assign(str.begin() + shift_num, str.end());
tempStr.append(str.begin(), str.begin() + shift_num);
std::cout << tempStr << std::endl;
}
0565デフォルトの名無しさん
2006/01/15(日) 01:32:52[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録し、
新しく入力された点数以上の氏名を出力するプログラムを書け。
(必ず、print_student(struct student s)と言う学生一人分の情報を
1行に表示する関数を作成し、それを利用して出力を行うこと。)
< 構造体の例 >
struct student{
char name[50], id[20];
int score;
};
< 実行例 >
Name? Tanaka (fgets と sscanf によって5人分のデータを入力する)
ID? 103
Score? 80
(途中省略)
Passing score? 70
102 Suzuki 90
103 Tanaka 80
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月17日まで
何とぞお手柔らかにお願いします
0566デフォルトの名無しさん
2006/01/15(日) 01:35:22print_student(struct student s)
こんな構造体の値渡しの関数作らせる学校ってどこ?
0567デフォルトの名無しさん
2006/01/15(日) 01:42:57�@http://homepage3.nifty.com/catfood/up/src/up0833.txt
�Aはnが50以上ということだろうか?
不明瞭。
0568デフォルトの名無しさん
2006/01/15(日) 01:44:580569デフォルトの名無しさん
2006/01/15(日) 01:46:19あ、ホントだ・・・orz
疲れているな。
0570デフォルトの名無しさん
2006/01/15(日) 01:54:14ということで
int main(int argc, char *argv[])
{
int fib_n_2 = 0;
int fib_n_1 = 1;
int fibNum = 0;
int n = 2;
while(1) {
fibNum = fib_n_2 + fib_n_1;
printf("%d ", fibNum);
if(fibNum > 50) break;
fib_n_2 = fib_n_1;
fib_n_1 = fibNum;
++n;
}
printf("\nFn>50となる最初のnは%dです\n", n);
}
0571デフォルトの名無しさん
2006/01/15(日) 01:58:25都内の国立大学です・・・
0572565
2006/01/15(日) 02:00:360573デフォルトの名無しさん
2006/01/15(日) 02:41:360574デフォルトの名無しさん
2006/01/15(日) 03:22:57相当な落ちこぼれ
0575デフォルトの名無しさん
2006/01/15(日) 03:31:580576デフォルトの名無しさん
2006/01/15(日) 03:45:11#define NELEMS(a) (sizeof(a)/sizeof(a[0]))
int f(int n) {
int buf[32]; /* 最大の貨幣と同じサイズ */
int table[] = {1, 5, 15, 32}; /* 貨幣の種類 */
int i, j, min;
buf[0] = 0;
for (i = 1; i < NELEMS(buf); i++)
buf[i] = NELEMS(buf);
for (i = 1; i <= n; i++) {
min = buf[(NELEMS(buf) + i - table[0]) % NELEMS(buf)];
for (j = 1; j < NELEMS(table); j++) {
if (min > buf[(NELEMS(buf) + i - table[j]) % NELEMS(buf)])
min = buf[(NELEMS(buf) + i - table[j]) % NELEMS(buf)];
}
buf[i % NELEMS(buf)] = min + 1;
}
return min + 1;
}
int main(int argc, char *argv[]) {
printf("%d\n", f(atoi(argv[1])));
return 0;
}
0577デフォルトの名無しさん
2006/01/15(日) 03:53:26偏差値高い=脳みそ回転速い
は間違い
0578デフォルトの名無しさん
2006/01/15(日) 04:11:32[2] 問題文(含コード&リンク):
1G(=ゴールド), 5G, 10G, 50G, 100G, 500Gの6種類のみの硬貨が存在する国を考える。
ある金額n(0 <= n <= 5000)Gを払うのに、受け取る釣銭も含めて財布の中の硬貨の
枚数が最小になる支払い方法を求めるプログラムpayを作成しなさい。
なお、財布の中身の初期値は6種類の硬貨の枚数をコマンドラインパラメータで与え、
支払い金額の入力に応じて支払い方法を提示後、さらに次の支払い金額の入力させる。
毎回釣銭を表示し、支払い後の6種類の硬貨の残り枚数も表示する。
改行のみ入力で終了。
釣銭として渡される硬貨は常に最小枚数になる組み合わせで支払われるものとする。
0579デフォルトの名無しさん
2006/01/15(日) 04:12:27$ ./pay 4 1 4 1 4 1
input ? 237
支払
1G * 2
5G * 1
10G * 3
100G * 2
釣銭
0
(2 0 1 0 2 1)
input ? 507
支払
1G * 2
50G * 1
500G * 1
釣銭
5G * 1
10G * 4
(1 4 0 0 2 0)
input ?
終了
[3] 環境
[3.1] OS: 問わず
[3.2] コンパイラ: gcc
[3.3] 言語: C/C++
[4] 期限: 2006 1/16 17:00までです。よろしくおねがいします。
0580デフォルトの名無しさん
2006/01/15(日) 04:19:23動作要件
誤 支払い金額の入力に応じて支払い方法を提示後、さらに次の支払い金額の入力させる
正 支払い金額の入力に応じて支払い方法を提示後、さらに次の支払い金額を入力させる。
釣銭の条件
誤 釣銭として渡される硬貨は常に最小枚数になる組み合わせで支払われるものとする。
正 釣銭として渡される硬貨は常に最小枚数になる組み合わせで受け取るものとする。
実行例の初期値
誤 $ ./pay 4 1 4 1 4 1
正 $ ./pay 4 1 4 0 4 1
0581デフォルトの名無しさん
2006/01/15(日) 04:48:55国立大学に入れないほどバカなんですか?w
パソコンとテレビで勉強ほとんどしなかったけど・・・
0582デフォルトの名無しさん
2006/01/15(日) 04:53:380583デフォルトの名無しさん
2006/01/15(日) 04:55:05私立に比べれば授業料安いし。
0584デフォルトの名無しさん
2006/01/15(日) 05:04:26YOUみたいに国立大学をひがんでるやつってホント頭悪いよね
0585デフォルトの名無しさん
2006/01/15(日) 05:10:470586デフォルトの名無しさん
2006/01/15(日) 05:26:19ところで、>>578 1,5,15,32Gのヤツはお気に召したのか?
0587デフォルトの名無しさん
2006/01/15(日) 05:41:17サイフの中のコインの枚数を最小にするには、
1)サイフの中のコインを全部支払う
2)受け取るつり銭は>>537のアルゴリズム
セルフのガソリンスタンドでよく私がやる手法だ。
0588デフォルトの名無しさん
2006/01/15(日) 05:42:18ジュースの自販機にはそれが通用しないやつが多くないか?
0589デフォルトの名無しさん
2006/01/15(日) 06:03:12まあ32Gしかない国で100000000の支払が発生することはないだろうが
0590デフォルトの名無しさん
2006/01/15(日) 06:42:41f(n) = f(n-定数1) + 定数2ってなってればいいんだけどね。
0591デフォルトの名無しさん
2006/01/15(日) 07:48:46[2] 問題文(含コード&リンク):
2つの文字列を入力し、1つの文字列に結合した後、結合した文字列を出力するプログラムを作りなさい。
但し、2つの文字型ポインタs,tを引数として、tの指す文字列(ヌル文字までの文字データ)を
sの指す文字列の最後(ヌル文字の位置)以後に複写する関数(mycat)を作り、main関数では
その関数を呼び出すようにしなさい。
[3] 環境
[3.1] OS:LINUX
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2006.01.16
[5] その他の制限:なるべく平易なコードでお願いします・・。
よろしくおねがいします
0592デフォルトの名無しさん
2006/01/15(日) 08:13:230593デフォルトの名無しさん
2006/01/15(日) 08:19:170594535
2006/01/15(日) 08:25:27578は私ではないです。
>>589
確認はしていませんがリングバッファを利用したDPになっているので正しいでしょう、
最大が100000000GなのでO(n)で十分というかこれより良いオーダーは無いと思います。
0595デフォルトの名無しさん
2006/01/15(日) 08:30:38mainくらい自分で書けるだろ。
関数呼ぶだけなんだから。
0596デフォルトの名無しさん
2006/01/15(日) 08:37:420597デフォルトの名無しさん
2006/01/15(日) 08:44:140598デフォルトの名無しさん
2006/01/15(日) 09:01:57void mycat(char* s,char* t)
{
for(;*s;s++);
for(;*t;t++){
*s=*t;
s++;
}
return;
}
int main(void)
{
char a[80]="abc";
char b[]="def";
mycat(a,b);
printf("%s",a);
return 0;
}
0599535
2006/01/15(日) 09:10:44その方法では
483=32*15+1*3で18枚になりますが、
483=32*14+15*2+5*1の17枚での支払いが存在するので間違いです
0600デフォルトの名無しさん
2006/01/15(日) 09:25:27[2] 問題文、
文字色を変換する方法を用いて、
フランス国旗を「文字の色」で画面に表示するプログラムを作成せよ。
ヒント:
文字の表示色を変えるには以下の関数を用いる。
プロトタイプ宣言を忘れないこと
void color(int n)
{
if(n<0 || 7<n)
return;
printf(“\33[3%dm”,n);
}
☆main() で1行分文字を出力し、適当な回数ループさせる。
[3] 環境
[3.1] OS、Windows98
[3.2] borland C++
[3.3] 言語:C++
[4] 期限:明日まで。
わかる方がいましたらよろしくお願いします。
0601デフォルトの名無しさん
2006/01/15(日) 09:45:16borland C++ のバージョンは?
0602デフォルトの名無しさん
2006/01/15(日) 10:10:370603デフォルトの名無しさん
2006/01/15(日) 10:23:14あのさぁ、どういうプログラムを作るのかぐらいは自分で考えるか他で聞いてからにしろよ
数学とか理科はここでやるんじゃないんだから
0604529
2006/01/15(日) 11:02:210605デフォルトの名無しさん
2006/01/15(日) 11:09:34[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録せよ。
(まだ続くのですが、ここまでをお願いします・・・)
< 構造体の例 >
struct student{
char name[50], id[20];
int score;
};
< 実行例 >
Name? Tanaka (fgets と sscanf によって5人分のデータを入力する)
ID? 103
Score? 80
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月18日まで
どうかお手柔らかにお願いします
0606デフォルトの名無しさん
2006/01/15(日) 11:12:08XPとかのDOS窓ではエスケープシーケンス使えないよ
0607212 ◆mL2ZRk1cK.
2006/01/15(日) 11:25:14足し算はfanction_add(fb_int, fb_int);で定義されて
fnction_add(a,b);でa+bの多倍長型の値が返ってきます。
ビットシフトはfanction_sift(fb_int*, int);で定義されて
fanction_sift(a,b);でaをbビットシフトできます。
bの値が正なら右シフト、負なら左シフトです。
527さんのプログラムについてですが、if(r&1)というのがよくわかりません。
rと1のビット毎の論理積で、1が立っていればif内の処理をやるのだと思うのですが
内部でやってることが理解できてません。
例えばrが1101の場合、1=(0001)との論理積をとると、rの最下位ビットから
見ていく、という考えで合っているでしょうか?。
言葉足らず、稚拙な説明で申し訳ありません。
0609デフォルトの名無しさん
2006/01/15(日) 12:06:39あとは
・定数の設定関数(a=1みたいなことができるやつ)
・論理積を取る関数(a&1)
・乗算(a=b*c)
かな。指数に負の数があることも考えると除算も必要かも。
0610デフォルトの名無しさん
2006/01/15(日) 12:09:190611デフォルトの名無しさん
2006/01/15(日) 12:18:530612デフォルトの名無しさん
2006/01/15(日) 12:24:04面倒だから
多倍長型についての演算子のオーバーロードでもしろよ
+ / * - = のオーバーロードさえ出来きれば何でも出来るだろ
0613212 ◆mL2ZRk1cK.
2006/01/15(日) 12:26:19乗算はfanction_mul(fb_int, fb_int);で定義されて
fanction_mul(a, b);でa×bの値がfb_int型で返ってきます。
論理積を取る関数はよくわからないのですがビット計算に
fanction_bitand(a, b)というのがありました。
多分これだと思います。定義はfanction_bitor(fb_int , fb_int)です。
除算はfanction_div(a, b);です。
0614デフォルトの名無しさん
2006/01/15(日) 12:47:38指数は負では分数になってしまうから、非負だな。
function_iszero()ってのは、こっちの想像で書いている。
値がゼロだったら、真を返す関数があると思うので、それに置き換えてくれ。
(ひょっとしたら、比較するだけのcompare()かもしれんが・・・その辺はてきとーに)
fb_int function_exp(fb_int a, fb_int r)
{
fb_int b = function_set(1);
fb_int mask = function_set(1);
while (function_iszero(r)) {
if (!function_iszero(function_bitand(r, mask))) {
b = function_mul(b, a);
}
a = function_mul(a, a);
}
return b;
}
0615デフォルトの名無しさん
2006/01/15(日) 13:29:15[2] 問題文(含コード&リンク):
次のように、一行に日付とその日の最高気温、最低気温が記録されたファイル(ファイル名:temp.dat)があるとする。
1 10.0 30.0
2 12.1 28.8
3 11.3 25.2
4 10.5 27.4
5 13.1 28.0
このファイルを読み込んでファイルの中での最高気温が最も高い日の日付と最高気温、
同様に最も低い最低気温をその日付を表示するプログラムを表示せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2006年1月17日
[5] その他の制限:なし
よろしくお願いします。
0616デフォルトの名無しさん
2006/01/15(日) 13:40:04#include <stdio.h>
int main(void)
{
int day, mind, maxd;
double min, max, minm, maxm;
if (scanf("%d %lf %lf", &mind, &minm, &maxm) != 3)
exit(1);
maxd = mind;
while (scanf("%d %lf %lf", &day, &min, &max) == 3) {
if (minm > min) {
minm = min;
mind = day;
}
if (maxm < max) {
maxm = max;
maxd = day;
}
}
printf("min %d %f, max %d %f\n", mind, minm, maxd, maxm);
return 0;
}
0617212 ◆mL2ZRk1cK.
2006/01/15(日) 13:55:11みなさんありがとうございます!
これから614さんのプログラムを組み込んで符号付の方を
完成させたいと思います。
また後ほど報告いたします。
0620デフォルトの名無しさん
2006/01/15(日) 14:32:37文字を色付きで出力する手段
エスケープシーケンス
各種方言の関数
コンソールAPI
0621デフォルトの名無しさん
2006/01/15(日) 14:34:51$ a.out <temp.dat
プログラム内でファイルをオープンさせろってんだったら、自分で直してちょ。
fopen(), fclose(), fscanf(), fprintf()っての使えばなんとかなるから。
0622600
2006/01/15(日) 14:40:000623デフォルトの名無しさん
2006/01/15(日) 14:43:510624600
2006/01/15(日) 14:50:38アドバイスありがとうございます、全部は理解できないもののある程度
わかりました、今は自宅のPCですが明日の授業の際にソースファイルを学校に
持って行き学校のPCで実行したいと思います。
肝心の課題自体がわからないので、どなたかわかる方いましたらよろしくお願いします。
0625デフォルトの名無しさん
2006/01/15(日) 15:01:58出力する文字と背景の色を変更するAPI
0626デフォルトの名無しさん
2006/01/15(日) 15:16:58[2] 問題文(含コード&リンク):
ポインタを使って、
配列の中に保存されている整数の最大のものとその要素番号とを
出力するプログラムを作りなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1月16日18:00まで
[5] その他の制限: よろしくおねがいします。
0627デフォルトの名無しさん
2006/01/15(日) 15:20:01>自分で直してちょ。
そこをなんとか。。。
0628デフォルトの名無しさん
2006/01/15(日) 15:20:49long __stdcall SetConsoleTextAttribute(long, long);
long __stdcall SetConsoleCursorPosition(long, long);
typedef enum {
black, dblue, dgreen, dcyan, dred, dmagenta, dyellow, gray,
dgray, blue, green, cyan, red, magenta, yellow, white,
} color;
void cursor(long h, int y, int x)
{
SetConsoleCursorPosition(h, (y << 16) | (x & 0x0000FFFF));
}
void conattr(long h, char bg, char fg)
{
SetConsoleTextAttribute(h, (bg << 4) | (fg & 0x0F));
}
void cls(long h, int t, int b, int l, int r, char c)
{
int i, j;
for(j = t; j < b; j++) for(i = l; i < r; i++) cursor(h, j, i), putch(c);
}
void beep(void)
{
putch('\a');
}
0629621とは別人
2006/01/15(日) 15:23:39>if (scanf("%d %lf %lf", &mind, &minm, &maxm) != 3)
FILE *fp;
fp=fopen("temp.dat", "r");
if (fscanf(fp, "%d %lf %lf", &mind, &minm, &maxm) != 3)
>while (scanf("%d %lf %lf", &day, &min, &max) == 3) {
while (fscanf(fp, "%d %lf %lf", &day, &min, &max) == 3) {
この程度変えればできるはず。
0630デフォルトの名無しさん
2006/01/15(日) 15:27:43#include <stdio.h>
int main(void)
{
int array[] = {1134,14146,2435,123,61,1234,12513,2462};
int n, i, max, maxi;
n = sizeof(array) / sizeof(array[0]); // 要素数。sizeof知らなければn=9みたいに自分で設定しなさい。
max = array[0];
maxi = 0;
for( i = 1 ; i < n ; i++ ) {
if( array[i] > max ) {
max = array[i];
maxi = i;
}
}
printf("array[%d] が最高値 %d を取るナリ\n", maxi, max);
return 0;
}
0631デフォルトの名無しさん
2006/01/15(日) 15:30:14何度もありがとうございました。
0632デフォルトの名無しさん
2006/01/15(日) 15:30:52#include <stdio.h>
void color(int);
int main(){
int i;
for (i = 0; i < 3; i++){
color(4); printf("FR");
color(7); printf("AN");
color(3); printf("CE\n");
}
color(7);
return 0;
}
void color(int n)
{
if(n<0 || 7<n) return;
printf("\33[3%dm",n);
}
0633デフォルトの名無しさん
2006/01/15(日) 15:34:40>[2] 問題文(含コード&リンク):
>ポインタを使って、
0634デフォルトの名無しさん
2006/01/15(日) 15:39:590635デフォルトの名無しさん
2006/01/15(日) 16:07:27[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録せよ。
(まだ続くのですが、ここまでをお願いします・・・)
< 構造体の例 >
struct student{
char name[50], id[20];
int score;
};
< 実行例 >
Name? Tanaka (fgets と sscanf によって5人分のデータを入力する)
ID? 103
Score? 80
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月18日まで
どうかお手柔らかにお願いします
0636529
2006/01/15(日) 16:22:44表の横の駅名の表示すらうまくいきません
0637デフォルトの名無しさん
2006/01/15(日) 17:20:50[2] 問題文(含コード&リンク):
#include<stdio.h>
#include<string.h>
int nagasa(char*);
void main()
{
int n1;
static char moji1[20];
gets(moji1);
n1=nagasa(moji1);
printf("文字列1の文字数=%d\n",n1);
return;
}
int x=0;
while(*retu!='\0')
{printf("文字数列1の文字=%c\n",*retu);
x++;
retu++;}
return x;
で、while(*retu!='\0')の部分が間違っているみたいです。。
3] 環境 [
[3.1] OS:XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2006.01.14
よろしくお願いします。
0638デフォルトの名無しさん
2006/01/15(日) 17:23:17もう期限すぎてるよ。どんまい。
0639デフォルトの名無しさん
2006/01/15(日) 17:24:39whileじゃなくて関数が間違ってる
#include<stdio.h>
#include<string.h>
int nagasa(char*);
void main()
{
int n1;
static char moji1[20];
gets(moji1);
n1=nagasa(moji1);
printf("文字列1の文字数=%d\n",n1);
return;
}
int nagasa(char* retu)
{
int x=0;
while(*retu!='\0') {
printf("文字数列1の文字=%c\n",*retu);
x++;
retu++;
}
return x;
}
0640637
2006/01/15(日) 17:41:590641117
2006/01/15(日) 17:44:22どなたか宜しくお願いします。
0642デフォルトの名無しさん
2006/01/15(日) 18:19:37[2] 問題文:下記の行列の積を求めるプログラムを作れ。
(123)(123)
(456)(456)
(789)
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 分らない
[3.3] 言語: C
[4] 期限: 2006年1月16日まで
[5] その他の制限: 超初心者です。。。
0643デフォルトの名無しさん
2006/01/15(日) 18:21:19http://www.borujoa.org/upload/source/upload4319.c
とりあえず表だけ。でかいのでa.txtとして出力するようにした
0644デフォルトの名無しさん
2006/01/15(日) 18:29:50どうもありがとうございます。
0645デフォルトの名無しさん
2006/01/15(日) 18:36:54(゚Д゚)ノ ァィ
#include<stdio.h>
int main(void){
int mat1[2][3]={{1,2,3},{4,5,6}},mat2[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j,k,s;
for(i=0;i<2;i++){
for(j=0;j<3;j++){
s = 0;
for(k=0;k<3;k++)
s += mat1[i][k]*mat2[k][j];
printf("%d ",s);
}
puts("");
}
return 0;
}
0646デフォルトの名無しさん
2006/01/15(日) 18:46:32#include <stdio.h>
#include <stdlib.h>
#include <string.h>
double avg(const void *p) { double a, b, c; sscanf((char *)
p, "%*s%lf%lf%lf", &a, &b, &c);return (a + b + c) / 3; }
int cmp(const void *a, const void *b) {if (avg(a) < avg(b))
return -1; if (avg(a) == avg(b)) return 0;return 1; }
char data[100][100]; int n; void load(FILE * fp) {for (n = 0;
n < 100 && fgets(data[n], 100, fp); n++) ; } char *chomp(char
s) {size_t len = strlen(s); if (len > 0 && s[len-1] == '\n')
s[len-1] = 0; return s;} void print(void) { int i; printf(
"%s", data[0]);for (i = 1; i < n; i++) printf("%s %f\n"
, chomp(data[i]), avg(data[i])); }int main(void) {load(stdin)
;
qsort(data[1], n - 1, 100, cmp); print(); return 0;}
0647デフォルトの名無しさん
2006/01/15(日) 18:56:02[2] 問題文 ・日本のある都市の東経を入力し、明石市(東経135度)
の標準時間とのずれを計算するプログラムを、関数を用いて作れ
[3] 環境
[3.1] OS: (Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (C++
[4] 期限: 2006年1月16日24h
[5] その他の制限:
できないんでお願いします
0648デフォルトの名無しさん
2006/01/15(日) 19:00:140649デフォルトの名無しさん
2006/01/15(日) 19:03:240650デフォルトの名無しさん
2006/01/15(日) 19:04:560651デフォルトの名無しさん
2006/01/15(日) 19:08:38main() で ぺけぺけ = new ほにゃらら(); ぺけぺけ.関数(); ってする
でいいんじゃねの?
0652デフォルトの名無しさん
2006/01/15(日) 19:11:000653デフォルトの名無しさん
2006/01/15(日) 19:11:03そんなことをしなくてもstd::cinとstd::coutとstd::stringを使えば十分だと思う。
0654デフォルトの名無しさん
2006/01/15(日) 19:13:170655デフォルトの名無しさん
2006/01/15(日) 19:15:07C++はやりづらいんだわ・・・。
#include <iostream>
std::cin >> hogehoge;
#include <iostream>
using namespace std;
cin >> hogehoge;
#iinclude <iostream.h>
cin >> hogehoge;
教科書や授業でどの流儀を使ってるかわからんからなぁ・・・。
STL使っていいものかどうかも悩む。
std::stringなんてつかわんで、自作文字列クラスとか・・
0656デフォルトの名無しさん
2006/01/15(日) 19:21:081番最後は規格外なので逝ってよし。
0657デフォルトの名無しさん
2006/01/15(日) 19:21:180658デフォルトの名無しさん
2006/01/15(日) 19:22:17ボクも作ってみた
プログラムド素人なので間違ってるかも('A`)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1470.txt
0659デフォルトの名無しさん
2006/01/15(日) 19:29:56日本国内の時刻はどこも同じでは
というツッコミはなしですか
0660zoo
2006/01/15(日) 19:30:02既存組織とプロジェクトマネジメントの違いを比較して論じよ。
比較してか。ど素人だから意味不明・・・
0661デフォルトの名無しさん
2006/01/15(日) 19:30:35足し蟹
0662600
2006/01/15(日) 19:34:09ありがとうございます、すごく助かりました^^
XPでエスケープシーケンスを設定?してみようと思うのですが、ググった
サイト等ではいまいちわかりませんでした、環境変数のところでやるのでしょうか?
0663デフォルトの名無しさん
2006/01/15(日) 19:37:36int main(void)
{
float ne;
scanf("%f", &ne);
printf("%f 秒\n", 24 * 3600 * (ne - 135.0) / 360);
return 0;
}
0664デフォルトの名無しさん
2006/01/15(日) 19:38:14>>628
0665600
2006/01/15(日) 19:42:54難しすぎてちょっとわからないのですが^^;
0666デフォルトの名無しさん
2006/01/15(日) 19:45:120667デフォルトの名無しさん
2006/01/15(日) 19:57:12[2] 問題文:ポーランド電卓プログラムで、数値の先頭に「0x」が
あるときだけ16進数として読み取るようにしなさい。
(例: 11 0x11 + = 28)
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:2006年01月16日AM7:00まで
[5] その他の制限:
ポーランド電卓のプログラムはできたのですが、数値の先頭に「0x」が
あるときだけ16進数として読み取る。というのができません。
よろしくお願いします。
0668デフォルトの名無しさん
2006/01/15(日) 19:57:29[2] 問題文:下の3問です
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年1月20日まで
何も解らず、丸投げでスミマセン...どうかよろしくお願いします。
(1) 標準入力から50個の実数を読み込み,降順に整列させた結果を印刷する
プログラムを作成しなさい。
(2) 標準入力から英語の文を読んで,大文字はすべて小文字に直し,
それ以外の文字はそのまま出力するプログラムを作成しなさい。
例:入力=[A Happy New Year!] 出力=[a happy new year!]
(3) 試験の得点(int型)を引数として受け取り,それが「80〜100なら4」を,
「60〜79なら3」を,「40〜59なら2」を,「0〜39なら1」を,
「101以上または0未満なら0を関数の値として返す関数を作成しなさい。
例:shiken(65)->3
0669デフォルトの名無しさん
2006/01/15(日) 20:03:24http://www.borujoa.org/upload/source/upload4322.c
(2)にも対応した
0670デフォルトの名無しさん
2006/01/15(日) 20:14:00#include <stdio.h>
#include <ctype.h>
int main(void){
char str[255], *p = str;
gets(str);
while(*p){
printf("%c", tolower(*p++));
}
return 0;
}
0671デフォルトの名無しさん
2006/01/15(日) 20:16:48→出来た分だけup
0672ごめんなさい
2006/01/15(日) 20:17:24[2] 問題文�@n個のデータを入力して、その最大、
最小、中央値を求めよ。ただしnは100までの数とする。
�A次のフィボナッチ数列Fnを計算し、Fn≧50となるときの第n項を
出力せよ。
Fn=Fn-2+Fn-1 ただし、F0=0、F1=1
�B10文字までの英字を入力して、「入力された英字のそれぞれを
1文字前の英字で表す。」という規則で変換した暗号を出力せよ。
�C任意の文字列を入力して、文字を右に数文字ずらした文字列を作成したい
。例えば、「delicate」を右に3文字ずらすと「atedelic」となる。
任意の10文字の文字列と右へずらす数を入力して、新しい文字列の結果
を出力せよ。
[3] 環境
[3.1] OS: (Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (C
[4] 期限: 2006年1月16日24h
[5] その他の制限:
Cでもお願いします
0673デフォルトの名無しさん
2006/01/15(日) 20:18:27[2] 問題文 ・日本のある都市の東経を入力し、明石市(東経135度)
の標準時間とのずれを計算するプログラムを、関数を用いて作れ
[3] 環境
[3.1] OS: (Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (C
[4] 期限: 2006年1月16日24h
[5] その他の制限:
すんません
0674デフォルトの名無しさん
2006/01/15(日) 20:18:46ありがとうございます。
Tokyo とTokyoを入れたときに距離が0にならないです。
また例えばTokyo Shizuokaと入力したとき
Shizuoka とShizuokaの距離が0にならないんですが・・・
0675デフォルトの名無しさん
2006/01/15(日) 20:20:22(1)
#include<stdio.h>
int main(void){
int num[50],i,j,a;
for(i=0;i<50;i++)
scanf("%d",&num[i]);
for(i=0;i<50;i++)
for(j=0;j<49-i;j++)
if(num[j]<num[j+1]){
a = num[j];
num[j] = num[j+1];
num[j+1] = a;
}
for(i=0;i<50;i++)
printf("%d ",num[i]);
puts("");
return 0;
}
0676デフォルトの名無しさん
2006/01/15(日) 20:20:32言語のネーミングの話とか、興味ないと混同してしまうかもな。
拡張子(といってもワカランかもしれんが)、を「.c」にしても動くものなら、
それはC言語でかかれているので、心配しないように。
0677デフォルトの名無しさん
2006/01/15(日) 20:22:210678デフォルトの名無しさん
2006/01/15(日) 20:25:23(3)
int shiken(int ten){
if(ten<=100&&ten>=80)return 4;
else if(ten<=79&&ten>=60)return 3;
else if(ten<=59&&ten>=40)return 2;
else if(ten<=39&&ten>=0)return 1;
else return 0;
}
0679デフォルトの名無しさん
2006/01/15(日) 20:26:55印刷してください(><)
0680デフォルトの名無しさん
2006/01/15(日) 20:36:410681デフォルトの名無しさん
2006/01/15(日) 20:39:26http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1472.txt
これです。分割してます。
読みにくくてすみません…。
0682デフォルトの名無しさん
2006/01/15(日) 20:40:04�@
#include<stdio.h>
#define n 100
int main(void){
double num[n],a;
int i,j;
for(i=0;i<n;i++)
scanf("%lf",&num[i]);
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
if(num[j]>num[j+1]){
a = num[j];
num[j] = num[j+1];
num[j+1] = a;
}
if(n%2==0)
a = (num[n/2]+num[(n/2)-1])/2;
else
a = num[(n-1)/2];
printf("最大値:%f\n最小値:%f\n中央値:%f\n",num[0],num[n-1],a);
return 0;
}
>>679
あ、ごめん無理
0683デフォルトの名無しさん
2006/01/15(日) 20:45:50�A
#include<stdio.h>
int F(int);
int F(int n){
if(n==0)return 0;
if(n==1)return 1;
return F(n-1)+F(n-2);
}
int main(void){
int i;
for(i=0;F(i)<=50;i++);
printf("第%d項\n",i);
return 0;
}
0684デフォルトの名無しさん
2006/01/15(日) 20:45:54http://www.borujoa.org/upload/source/upload4326.c
ほい、修正
0685デフォルトの名無しさん
2006/01/15(日) 20:50:28�B
#include<stdio.h>
int main(void){
int c,i=0;
while((c=getchar())!='\n'){
if(i>=10)break;
if(c=='a'||c=='A')
c += 'z'-'a';
else
c -= 1;
printf("%c",c);
i++;
}
return 0;
}
0686デフォルトの名無しさん
2006/01/15(日) 20:56:27たびたびすいません。2つともTokyo入れるとバグリます
0687デフォルトの名無しさん
2006/01/15(日) 21:00:54[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録せよ。
(まだ続くのですが、ここまでをお願いします・・・)
< 構造体の例 >
struct student{
char name[50], id[20];
int score;
};
< 実行例 >
Name? Tanaka (fgets と sscanf によって5人分のデータを入力する)
ID? 103
Score? 80
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月18日まで
何とぞお手柔らかにお願いします
0688デフォルトの名無しさん
2006/01/15(日) 21:02:05�A
#include <stdio.h>
int fib(int n) {
int a=1, b=1;
while(--n) b=b+a, a=b-a;
return b;
}
int main(void){
int n;
printf("第何項?\n");
scanf("%d", &n);
printf("Fn=%d", fib);
return 0;
}
0689デフォルトの名無しさん
2006/01/15(日) 21:03:53にかかわらず「あ」と入力するプログラムを作成せよ
です。
学部で習っていたのはC++ですが、去年の院試験の問題ですのでもしかしたら違う言語を
使うのかも。でも俺自身C++が一番理解できるので皆様よろしくおねがいです。
0690デフォルトの名無しさん
2006/01/15(日) 21:07:46�C#include<stdio.h>
#include<string.h>
int main(void){
char str[11],str2[11];
int n,i;
while(1){
printf("文字列入力(10文字):");
scanf("%s",str);
if(strlen(str)==10)break;
}
printf("何文字ずらす?:");
scanf("%d",&n);
for(i=0;i<10;i++){
if(i+n<10)str2[i+n] = str[i];
else str2[(i+n)%10] = str[i];
}
for(i=0;i<10;i++)
printf("%c",str2[i]);
return 0;
}
0691デフォルトの名無しさん
2006/01/15(日) 21:19:01修正前のなら確かにおかしくなるけど修正後は動くと思うのだが(´・ω・`)
0692デフォルトの名無しさん
2006/01/15(日) 21:20:22fgetsってことはファイルあるのか?
それともfgetsを使って標準入力か?
0693デフォルトの名無しさん
2006/01/15(日) 21:23:132つとも同じ駅名にすると距離が7.5534534534534e+276みたいになります
0694668
2006/01/15(日) 21:24:090695デフォルトの名無しさん
2006/01/15(日) 21:24:40標準入力の方だと思います
0697デフォルトの名無しさん
2006/01/15(日) 21:28:250698デフォルトの名無しさん
2006/01/15(日) 21:28:28[2]問題文(含コード&リンク):1から10000までの素数をすべて求め、表示するプログラムを作れ。
[3]環境
[3.1]OS:windows
[3.2]コンパイラ名とバージョン:BCC
[3.3]言語:C
[4]期限:1月17日
[5]その他の制限:なし
お願いします。
0699デフォルトの名無しさん
2006/01/15(日) 21:30:59だから、そういうのはとりあえず素数の求め方は自分で調べるか数学板で聞くかしない?
0700デフォルトの名無しさん
2006/01/15(日) 21:31:53東経が何度だろうが、日本国内であれば時差は0な訳だが。
とか言っていなくなるのもなんだから、
#include <stdio.h>
int main(void) {
double east_longitude, diff;
printf("東経?:"); scanf("%lf", &east_longitude);
diff = (east_longitude - 135) / 15;
printf("%d時間%d分", (int)diff, (int)((diff - (int)diff) * 60));
return 0;
}
0701デフォルトの名無しさん
2006/01/15(日) 21:33:05//同じ駅の場合
printf("\n駅名:%s 距離%f",station2,0);
の所にブレークポイントをして、同じ名前の時来るか調べて。
まさか printf("\n駅名:%s 距離%f",station2,0.);じゃないよなぁ・・
0702デフォルトの名無しさん
2006/01/15(日) 21:34:40そうか
じゃ記録ってどこにするの?
ファイル出力?
だとしたらどんな感じで?
0703デフォルトの名無しさん
2006/01/15(日) 21:34:56ブレークポイントってなんですか?
0704デフォルトの名無しさん
2006/01/15(日) 21:36:35printf("\n駅名:%s 距離%f",station2,0.);にしたらできました
0705デフォルトの名無しさん
2006/01/15(日) 21:38:570706デフォルトの名無しさん
2006/01/15(日) 21:39:380707デフォルトの名無しさん
2006/01/15(日) 21:40:17いろいろありがとうございました。あとは表の表示とか工夫してみます
0708デフォルトの名無しさん
2006/01/15(日) 21:43:24う〜ん、普通の感じで考えていただければいいと思うんですが・・・
入力は、fgets(),sscanf()
出力は、printf()
って感じで。今は、出力はいいので構造体の入力をどういう風にすればいいのかを教えて欲しいです
0709デフォルトの名無しさん
2006/01/15(日) 21:46:53入力ですか・・fgetsとsscanf使えだからこんなんでいいのかなぁ?
#include<stdio.h>
typedef struct{
char name[50],id[20];
int score;
}student;
int main(void){
student stu[5];
char test[10];
int i;
for(i=0;i<5;i++){
printf("Name? ");
fgets(stu[i].name,50,stdin);
printf("ID? ");
fgets(stu[i].id,20,stdin);
printf("Score?" );
fgets(test,10,stdin);
sscanf(test,"%d",&stu[i].score);
}
return 0;
}
0710デフォルトの名無しさん
2006/01/15(日) 21:48:50>>119から引用。総当り。
#include <stdio.h>
int sosu(int n){int i;for(i=2;i<n;i++){if(!(n%i)){return 0;}}return 1;}
int main(){int n,m,cnt;cnt=0;m=10000;for (n=1; n<=m; n++){if (n!=1 && sosu(n)){printf ("%d ", n);cnt++;}};return 0;}
0711710
2006/01/15(日) 21:53:49再うp
#include <stdio.h>
int sosu(int n){int i;for(i=2;i<n;i++){if(!(n%i)){return 0;}}return 1;}
int main(){int n;for(n=2; n<=10000; n++){if(sosu(n)){printf("%d ", n);}}return 0;}
0712デフォルトの名無しさん
2006/01/15(日) 21:54:06どうもありがとうございます。
fgets() のところにそういう風に入れるんですか!
授業のプリントにそこまで書いてなかったんで・・・
0713デフォルトの名無しさん
2006/01/15(日) 21:58:39#include<stdio.h>
int main(void){
int table[10000],i,j,k;
for(i=2;i<=10000;i++)
table[i] = 1;
for(i=2;i<=10000;i++){
if(table[i]!=0)
for(j=i*2;j<=10000;j+=i)
table[j] = 0;
}
for(k=0,i=2;i<=10000;i++){
if(table[i]!=0){
if(k>0&&k%10==0)puts("");
printf("%5d ",i);
k++;
}
}
printf("\n素数の数 %d個\n",k);
return 0;
}
0714デフォルトの名無しさん
2006/01/15(日) 21:59:35>>592
どうもありがとうございます
0715デフォルトの名無しさん
2006/01/15(日) 21:59:51#include <stdio.h>
#define N (10000)
void sieve_of_eratosthenes(int *integers) {
int i, notprime;
for (i = 2; i <= N; i++) integers[i] = 1;
integers[0] = integers[1] = 0;
for (i = 2; i <= N / 2; i++) {
notprime = i;
while ((notprime += i) <= N) integers[notprime] = 0;
}
}
int main(void) {
int i, sieve[N + 1];
sieve_of_eratosthenes(sieve);
for (i = 2; i <= N; i++) if (sieve[i]) printf("%5d", i);
return 0;
}
0716デフォルトの名無しさん
2006/01/15(日) 22:00:33書いてなかったってことはもしかして違うんじゃないかw
0717デフォルトの名無しさん
2006/01/15(日) 22:03:27main()内:atof(s)→strtod(s, NULL)
getop()内:構文チェックが甘くなるけれども、下記を2箇所とも変更
while(isdigit(s[++i] = c = getch()))→while(isalnum(s[++i] = c = getch()))
0718デフォルトの名無しさん
2006/01/15(日) 22:05:13一応問題文はこんな感じなんですが・・・
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録し、
新しく入力された点数以上の氏名を出力するプログラムを書け。
(必ず、print_student(struct student s)と言う学生一人分の情報を
1行に表示する関数を作成し、それを利用して出力を行うこと。)
0719デフォルトの名無しさん
2006/01/15(日) 22:16:28[2] 問題文:問題1〜3まで
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:わかりません><
[3.3] 言語:C
[4] 期限:2006年1月23日まで
[5] 期限:チンプンカンプンな為、親切な方何卒お願い致します・・・
問題1
以下のプログラムのprintf文(1)〜(4)の出力結果を答えなさい。
#include <stdio.h>
int main(void)
{
int f(int);
int i,j;
i=10;
printf("%d\n",i); (1)
j=f(i);
printf("%d\n",j); (2)
printf("%d\n",i); (3)
}
int f(int j)
{
int i,s;
s=0;
for(i=1;i<=j;i=i+2)s+=i;
printf("%d\n",i); (4)
return(s);
}
0720719
2006/01/15(日) 22:17:32以下のプログラムを実行すると5行の出力が得られる。それらの出力
結果を答えなさい。
#include
int main()
{
int n=0;
int taro=5,hana=6;
int sum=taro+hana
printf("%4.1f\n", 3.14159);
printf("%d\n", n++);
printf("%d\n", ++n);
printf("%d\n", sum);
printf("%d\n", sum/n);
0721719
2006/01/15(日) 22:18:30以下のリストのように定義されたint型の関数leap(int)がある。
この関数に以下の(1)〜(5)の引数を与えたときに返される値を答えなさい。
(1) leap(794);
(2) leap(1192);
(3) leap(1600);
(4) leap(2000);
(5) leap(2003);
(6) leap(2004);
-----リスト -----------------------------------------------
int leap(int y)
{
if (y%4 != 0 || y%100 == 0 && y%400 != 0)
return 0;
else
return 1;
if (y > 2000)
return 3;
else if (y > 1000)
return 4;
else
return 5;
}
------------------------------------------------------------
以上です、よろしくお願いします。
0723デフォルトの名無しさん
2006/01/15(日) 22:26:23問題1
(1)10
(2)25
(3)10
(4)11
問題2
そのプログラムじゃコンパイルは通らない
問題3
(1) 0
(2) 1
(3) 1
(4) 1
(5) 0
(6) 1
0724デフォルトの名無しさん
2006/01/15(日) 22:33:58ああ・・・つまり関数は自分で調べろってことだったのでは
ところで構造体の宣言がその教授に習ってないやw
typedef struct{}studentを
struct studentに変えておいて
宣言はstudentからstruct studentに変えておいて
0725デフォルトの名無しさん
2006/01/15(日) 22:37:36最後に"}"くらい追加してあげてください・・・
0726デフォルトの名無しさん
2006/01/15(日) 22:43:02後半の意味がまったく無い。
0727719
2006/01/15(日) 23:09:20ありがとうございます、記入漏れすみませんでした><
問題2
以下のプログラムを実行すると5行の出力が得られる。それらの出力
結果を答えなさい。
#include
int main()
{
int n=0;
int taro=5,hana=6;
int sum=taro+hana
printf("%4.1f\n", 3.14159);
printf("%d\n", n++);
printf("%d\n", ++n);
printf("%d\n", sum);
printf("%d\n", sum/n);
}
0728デフォルトの名無しさん
2006/01/15(日) 23:12:00動くようになるまで、間違いはあと2つだ。ガンガレ!
0729デフォルトの名無しさん
2006/01/15(日) 23:21:07a.c:1:10: #include expects "FILENAME" or <FILENAME>
a.c: In function `main':
a.c:7: error: syntax error before "printf"
a.c:8: warning: implicit declaration of function `printf'
まあ・・・なんだ・・・自分でコンパイル&実行するだけの課題なのだから、自分でやろうや。
0730デフォルトの名無しさん
2006/01/15(日) 23:25:09>int sum=taro+hana ;
>return 0; ?
0732デフォルトの名無しさん
2006/01/15(日) 23:38:49[2] 問題文(含コード&リンク):
速度が64kbpsであるインターネットがある。
この回線を使って、サイズが n MB(n を入力する)のファイルを
ダウンロードするのにかかる時間を表示するプログラムを作成せよ。
[3] 環境
[3.1] OS:Widows XP
[3.2] コンパイラ名とバージョン:すみません。わからないです
[3.3] 言語:C言語
[4] 期限:2006年2月1日
初心者です。どうか宜しくお願いします。
0733デフォルトの名無しさん
2006/01/15(日) 23:49:46return 0;はなくても動く
0734デフォルトの名無しさん
2006/01/15(日) 23:53:31(゚Д゚)ノ ァィ
#include<stdio.h>
int main(void){
double n;
printf("何MのDLをお望みで?:");
scanf("%lf",&n);
printf("%f秒ほどかかるかと\n",n*1024/8.0);
return 0;
}
0735デフォルトの名無しさん
2006/01/16(月) 00:05:03最も基本の符号付2進展開すらできません。
符号付2進展開とは-1,0,1で表される展開のことで
7=-1+(2*2*2)→2進表記で(1 0 0 -1)のようにすることです。
符号付2進展開の定義としてN=N(0)+N(1)*2+N(2)*2^2+・・・・+2^rの展開で
N(i)が0でなければN(i+1)=0を満たすものです。
-1がたったビットでは仮数部の逆数をかけるようにしたいです。
int型でもいいのでよろしくお願いします。
問題文: (a^5)×(b^7)×(c^3)の指数部を符号付2進展開して計算。
a,b,cは任意の数を代入。
その他の制限:今回は指数部だけ展開していただければ結構です。
a^5=a×a×a×a×aです。
できれば以下のような仕様ですと助かります。
先にa×b、a×c、b×c、a×b×cを計算しておいて
指数部を読み込み、
0 1 0 1
1 0 0−1
0 1 0−1
------------
上位ビットから見ていき、縦に(0 0 1)なら×a(0 1 0)なら×b、(1 0 0)なら×c、(1 1 0)なら×abの
ようにして(a^5)×(b^7)×(c^3)を一気に計算できるようにしたいです。何度もすみませんがよろしくお願いします。
0736212 ◆mL2ZRk1cK.
2006/01/16(月) 00:06:010737デフォルトの名無しさん
2006/01/16(月) 00:06:310738デフォルトの名無しさん
2006/01/16(月) 00:07:330739デフォルトの名無しさん
2006/01/16(月) 00:10:34通信の遅延、サーバでかかる時間、クライアントで受け取った後の時間、輻輳といったものは含まれてない。
必要に応じて修正せよ。
#include<stdio.h>
#include<math.h>
/* assuming tcp/ip on ether */
#define PACKET_HEADER_SIZE (22+20+20)
#define PACKET_CONTENT_SIZE 1460
#define K * 1000
#define Mi * 1024*1024
#define BPS / 8
#define BYTE * 1
#define LINESPEED (64 K BPS)
int main( int narg, const char *args[] ){
int megbytes;
long datasize, packets, totalsize;
double time;
if( args[1] == 0 ) return;
megbytes = atoi( args[1] );
if( megbytes < 0 ) return;
datasize = megbytes Mi BYTE;
packets = ceil( datasize / ( double )PACKET_CONTENT_SIZE );
totalsize = datasize + packets * PACKET_HEADER_SIZE;
time = (double)totalsize / LINESPEED;
printf( "%f seconds.\n", time );
}
0740212 ◆mL2ZRk1cK.
2006/01/16(月) 00:11:33環境です。
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
>>735
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C言語
[4] 期限:2006年1月16日
0741739
2006/01/16(月) 00:12:090742デフォルトの名無しさん
2006/01/16(月) 00:22:07また、1の補数やら、2の補数やらの話ではなさそうなので、
符号付2進展開の解説資料をupするなり、webページを教えるなり。
まあ、そういうことで。
0743デフォルトの名無しさん
2006/01/16(月) 00:43:51メ゙ヽ、\ ̄""" ̄--‐ 、 \ /ゝ、\
=─‐\\‐ /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、 / ̄ ̄ ̄ ̄ ̄
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\ | さあ質問を言え
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、 < どんな質問も何度でも
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ, | スルーしてやろう・・・
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、 \_____
二─二二彡彡、゙、三三二==くメゝ/ ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/:: \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、 ,,,,- ゙彡//ヾ、三二= くゝ/:::.... \>∠レ-,-‐ニ二メヽ''ヽ ノ
゙ヽ、,,,-‐//_///,,、゙、三二= ゙、 ""''' ヽ>//レレヽ,,___ /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ. //-ヘヘ,、 レレレレノ
''" ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,// ゙ヽフ/|/| レ'
/ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,-'"、─-,,,,,_  ̄"'ノ
/メ / レ/,''"へへべ''─---- ̄-メヽ"ゝゞゝヽ、 >---''"
/ヘヘ、|//ヘヘヘヘヘヘヘヘ,,-イ ̄ | ̄"'''-ニニニ二-''"
/ヘヘ∧/./フヘヘヘヘヘヘヘ,/イ / / / ゙ノ\、\
/ゝゝ| / /メヘヘヘヘヘヘ/'" | / / / / \\
/ゝ /|‐/ /フヘへヘヘヘ/∧ /-'"-'''"__,,-''" / /、\
//|_| /./へへへヘヘ、// |/ \_,,,,-‐'" / ゙、.゙、
'"/ヽ"/'"へへヘヘヘヘ// ノ \ ,,,,-‐'" ゙、゙、
.ノ //へへヘヘヘヘ//ヽ ./ ゙、''"" ,,/、゙、
/-"へへヘヘヘヘヘ// |‐" \_,,,,,,,,-‐'''" | |
へへへへヘヘヘヘ//ヽ ノ ゙, | |
0744デフォルトの名無しさん
2006/01/16(月) 00:48:58クリリンは六星球じゃないんですか?
0745デフォルトの名無しさん
2006/01/16(月) 01:05:17チチは感度抜群って本当ですか?
0746デフォルトの名無しさん
2006/01/16(月) 01:13:41メ゙ヽ、\ ̄""" ̄--‐ 、 \ /ゝ、\
=─‐\\‐ /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、 / ̄ ̄ ̄ ̄ ̄
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\ |
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、 < スルー
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ, |
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、 \_____
二─二二彡彡、゙、三三二==くメゝ/ ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/:: \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、 ,,,,- ゙彡//ヾ、三二= くゝ/:::.... \>∠レ-,-‐ニ二メヽ''ヽ ノ
゙ヽ、,,,-‐//_///,,、゙、三二= ゙、 ""''' ヽ>//レレヽ,,___ /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ. //-ヘヘ,、 レレレレノ
''" ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,// ゙ヽフ/|/| レ'
/ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,-'"、─-,,,,,_  ̄"'ノ
/メ / レ/,''"へへべ''─---- ̄-メヽ"ゝゞゝヽ、 >---''"
/ヘヘ、|//ヘヘヘヘヘヘヘヘ,,-イ ̄ | ̄"'''-ニニニ二-''"
/ヘヘ∧/./フヘヘヘヘヘヘヘ,/イ / / / ゙ノ\、\
/ゝゝ| / /メヘヘヘヘヘヘ/'" | / / / / \\
/ゝ /|‐/ /フヘへヘヘヘ/∧ /-'"-'''"__,,-''" / /、\
//|_| /./へへへヘヘ、// |/ \_,,,,-‐'" / ゙、.゙、
'"/ヽ"/'"へへヘヘヘヘ// ノ \ ,,,,-‐'" ゙、゙、
.ノ //へへヘヘヘヘ//ヽ ./ ゙、''"" ,,/、゙、
/-"へへヘヘヘヘヘ// |‐" \_,,,,,,,,-‐'''" | |
へへへへヘヘヘヘ//ヽ ノ ゙, | |
0747デフォルトの名無しさん
2006/01/16(月) 01:17:29どうしてプリンセス・メグはNECを止めたんですか?
0748デフォルトの名無しさん
2006/01/16(月) 01:22:13処女のアイドルを教えてください
0749デフォルトの名無しさん
2006/01/16(月) 01:29:32メ゙ヽ、\ ̄""" ̄--‐ 、 \ /ゝ、\
=─‐\\‐ /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、 / ̄ ̄ ̄ ̄ ̄
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\ |
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、 < スルー
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ, |
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、 \_____
二─二二彡彡、゙、三三二==くメゝ/ ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/:: \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、 ,,,,- ゙彡//ヾ、三二= くゝ/:::.... \>∠レ-,-‐ニ二メヽ''ヽ ノ
゙ヽ、,,,-‐//_///,,、゙、三二= ゙、 ""''' ヽ>//レレヽ,,___ /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ. //-ヘヘ,、 レレレレノ
''" ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,// ゙ヽフ/|/| レ'
/ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,-'"、─-,,,,,_  ̄"'ノ
/メ / レ/,''"へへべ''─---- ̄-メヽ"ゝゞゝヽ、 >---''"
/ヘヘ、|//ヘヘヘヘヘヘヘヘ,,-イ ̄ | ̄"'''-ニニニ二-''"
/ヘヘ∧/./フヘヘヘヘヘヘヘ,/イ / / / ゙ノ\、\
/ゝゝ| / /メヘヘヘヘヘヘ/'" | / / / / \\
/ゝ /|‐/ /フヘへヘヘヘ/∧ /-'"-'''"__,,-''" / /、\
//|_| /./へへへヘヘ、// |/ \_,,,,-‐'" / ゙、.゙、
'"/ヽ"/'"へへヘヘヘヘ// ノ \ ,,,,-‐'" ゙、゙、
.ノ //へへヘヘヘヘ//ヽ ./ ゙、''"" ,,/、゙、
/-"へへヘヘヘヘヘ// |‐" \_,,,,,,,,-‐'''" | |
へへへへヘヘヘヘ//ヽ ノ ゙, | |
0750デフォルトの名無しさん
2006/01/16(月) 01:32:55メ゙ヽ、\ ̄""" ̄--‐ 、 \ /ゝ、\
=─‐\\‐ /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、 / ̄ ̄ ̄ ̄ ̄
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\ |
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、 < シースルー
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ, |
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、 \_____
二─二二彡彡、゙、三三二==くメゝ/ ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/:: \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、 ,,,,- ゙彡//ヾ、三二= くゝ/:::.... \>∠レ-,-‐ニ二メヽ''ヽ ノ
゙ヽ、,,,-‐//_///,,、゙、三二= ゙、 ""''' ヽ>//レレヽ,,___ /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ. //-ヘヘ,、 レレレレノ
''" ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,// ゙ヽフ/|/| レ'
/ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,-'"、─-,,,,,_  ̄"'ノ
/メ / レ/,''"へへべ''─---- ̄-メヽ"ゝゞゝヽ、 >---''"
/ヘヘ、|//ヘヘヘヘヘヘヘヘ,,-イ ̄ | ̄"'''-ニニニ二-''"
/ヘヘ∧/./フヘヘヘヘヘヘヘ,/イ / / / ゙ノ\、\
/ゝゝ| / /メヘヘヘヘヘヘ/'" | / / / / \\
/ゝ /|‐/ /フヘへヘヘヘ/∧ /-'"-'''"__,,-''" / /、\
//|_| /./へへへヘヘ、// |/ \_,,,,-‐'" / ゙、.゙、
'"/ヽ"/'"へへヘヘヘヘ// ノ \ ,,,,-‐'" ゙、゙、
.ノ //へへヘヘヘヘ//ヽ ./ ゙、''"" ,,/、゙、
/-"へへヘヘヘヘヘ// |‐" \_,,,,,,,,-‐'''" | |
へへへへヘヘヘヘ//ヽ ノ ゙, | |
0751デフォルトの名無しさん
2006/01/16(月) 01:34:530752デフォルトの名無しさん
2006/01/16(月) 01:48:40符号付2進展開ってコトバははじめて聞きました。
>最も基本の符号付2進展開すらできません。
>符号付2進展開とは-1,0,1で表される展開のことで
>7=-1+(2*2*2)→2進表記で(1 0 0 -1)のようにすることです。
そんな表記は初めてみました。
10進数の7を2進数で表記する場合、普通は111となります。
符号付の数を表記する場合、10進数の-7でしたら、2進数ですと-111となります。
>-1がたったビットでは仮数部の逆数をかけるようにしたいです。
>int型でもいいのでよろしくお願いします。
仮数部というのは、不動小数点数の一部を表すときに使う言葉です。ここで使われている意味がわかりません。
それから、過去ログを読むと、そもそも、多倍長整数を扱っていたのですから、逆数は表現できません。
整数の逆数は分数になります(特別に0の逆数はありません)。
int 型でもいいとのことですが、やはり、int型は整数ですので、逆数は表現できません。
と、ここまで、書けばおわかりのように、説明がまったく意味不明です。
0753デフォルトの名無しさん
2006/01/16(月) 02:13:470754質問者じゃないよ。
2006/01/16(月) 02:20:07> 符号付2進展開ってコトバははじめて聞きました。
>
> >最も基本の符号付2進展開すらできません。
> >符号付2進展開とは-1,0,1で表される展開のことで
> >7=-1+(2*2*2)→2進表記で(1 0 0 -1)のようにすることです。
> そんな表記は初めてみました。
> 10進数の7を2進数で表記する場合、普通は111となります。
> 符号付の数を表記する場合、10進数の-7でしたら、2進数ですと-111となります。
質問者が言ってる表記はあまり知られてないだろうが、有る。
この点に関しては質問者の説明不足が悪いんだが。
> >-1がたったビットでは仮数部の逆数をかけるようにしたいです。
> >int型でもいいのでよろしくお願いします。
> 仮数部というのは、不動小数点数の一部を表すときに使う言葉です。ここで使われている意味がわかりません。
> それから、過去ログを読むと、そもそも、多倍長整数を扱っていたのですから、逆数は表現できません。
> 整数の逆数は分数になります(特別に0の逆数はありません)。
> int 型でもいいとのことですが、やはり、int型は整数ですので、逆数は表現できません。
仮数部→底 って訂正が正しいんだろう。ついでに「浮」動小数。
関数内で計算中の数を割ればいいじゃん。
> と、ここまで、書けばおわかりのように、説明がまったく意味不明です。
そんなことはない。
0755デフォルトの名無しさん
2006/01/16(月) 02:24:18お帰りくださいませ
0756デフォルトの名無しさん
2006/01/16(月) 03:11:420757デフォルトの名無しさん
2006/01/16(月) 03:15:16さて自分の宿題やるか( 'A`)
0758デフォルトの名無しさん
2006/01/16(月) 08:18:33[2] 問題文(含コード&リンク):
時間(0以上23以下)を入力し、以下に示す時間に従った挨拶を出力をするプログラムを作成しなさい。
プログラムは0以上24未満の時間が入力されるまで繰り返しなさい。
0-3:Good night
4-11:Good morning
12-16:Good afternoon
17-20:Good evening
21-23:Good night
但し、メッセージを出力する関数内で、以下の文字型ポインタ配列を宣言して使用しなさい。
char *greeting[4] = {
"Good morning",
"Good aftenoon",
"Good evening",
"Good night",
};
main関数内では、その関数を呼び出すようにしなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2006.01.17です・・・。
[5] その他の制限: お手柔らかにお願いします。
恥ずかしながら丸投げです・・・。
0759デフォルトの名無しさん
2006/01/16(月) 08:40:18static const struct {
int begin;
int end;
char * const str;
} greetings[] = {
{0, 3, "Good night"},
{4, 11, "Good morning"},
{12, 16, "Good afternoon"},
{17, 20, "Good evening"},
{21, 23, "Good night"},
};
int hour;
for (;;) {
if (scanf("%d", & hour) != 1) {
return EXIT_FAILURE;
}
for (int ic = 0; ic < sizeof(greetings); ++ic) {
if (hour >= greetings[ic].begin && hour <= greetings[ic].end) {
printf("%s\n", greetings[ic].str);
return EXIT_SUCCESS;
}
}
}
0760デフォルトの名無しさん
2006/01/16(月) 10:24:40[2] 問題文(含コード&リンク):
list<int> 型の要素全ての和を求める関数 int sumlist(list<int>&) を定義して下さい.
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> lst;
for(int i=0 ; i < 10 ; i++)lst.push_back(i);
cout << "size =" << lst.size() << endl;
for(list<int>::iterator it = lst.begin(); it != lst.end() ; ++it)
cout << *it << ' ';
cout << endl;
for(list<int>::iterator it = lst.begin(); it != lst.end() ;){
if((*it) % 3 == 0){
it = lst.erase(it);
}
else {
++it; } }
for(list<int>::iterator it = lst.begin(); it != lst.end() ; ++it)
cout << *it << ' ';
cout << endl;
return 0;}
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: マイクロソフトビジュアルスタジオ
[3.3] 言語: C++
[4] 期限: 1月23日
[5] その他の制限:
0761デフォルトの名無しさん
2006/01/16(月) 11:34:28int sumlist(std::list<int> &anSrc)
{
std::list<int>::iterator iEnd = anSrc.end();
int nResult = 0;
for (std::list<int>::iterator iProc = anSrc.begin();
iProc != iEnd;
++iProc)
{
nResult += *iProc;
}
return nResult;
}
久しぶりにC++書いたから間違ってても白根
コンパイル環境は脳内g++
0762デフォルトの名無しさん
2006/01/16(月) 11:38:03>-1,0,1で表される展開のことで
ひょっとしてこれのこと?
http://www.google.co.jp/search?complete=1&hl=ja&c2coff=1&q=%E5%B9%B3%E8%A1%A1%E4%B8%89%E9%80%B2%E6%95%B0
まぁ、アレだ「13枚のコインのうち重さが違うのが1枚(ry」に応用されるやつだ。
#include<stdio.h>
int p3n(int,char []);
int main(int argc ,char **argv)
{
int i;char s[40];
for(i=-20;i<20;i++){
p3n(i,s);printf("%s\n",s);
}
return 0;
}
int p3n(int a,char s[])
{
char t,c[]="zpn";/* z-ero p-positive n-egative */
int b,j,i=0;
do{
b=a%3;
s[i++]=c[b+(b<0)*3];
a=a/3+(b==2)-(b==-2);
}while(a);
s[i]=0;b=i--/2;
for(j=0;j<b;j++){
t=s[j];s[j]=s[i-j];s[i-j]=t;
}
return 0;
}
0763212 ◆mL2ZRk1cK.
2006/01/16(月) 12:01:59色々不備があって申し訳ありませんでした。
符号付2進展開についてはこちらも資料が少なくて手間取っています。
手元にある資料によると定義としてN=N(0)+N(1)*2+N(2)*2^2+・・・・+N(r-1)*2^(r-1)+2^rの展開で
N(i)が0でなければN(i+1)=0を満たすものです。 これしか載っていませんでした。
多分係数をー1、0、1にとった三進展開だと思うのですが・・・
仮数部→底、これは恥ずかしい間違いでした。
0764デフォルトの名無しさん
2006/01/16(月) 14:30:26[2] 問題文(含コード&リンク):
文字列を入力し、入力した文字数を出力するプログラムを作りなさい。
ただし、文字列の先頭アドレスを因数として、文字列の長さを返す関数(mylen)をつくり、
main関数ではその関数を呼び出すようにしなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:今日中に提出
[5] その他の制限: この時期にこんなんできないようじゃオ�hルといわれましたorz
おねがいします・・・・。
0765デフォルトの名無しさん
2006/01/16(月) 14:41:57馬鹿な俺にもできたから終わってんな
まぁ、プロが見たらボロ糞言うだろうが、気にするなw
char *mylen(char *str){
int count=0;
while(*str++)count++;
return count;
}
int main(){
〜〜〜〜〜〜〜〜〜
return 0;
}
0766デフォルトの名無しさん
2006/01/16(月) 15:02:11wakarimasen
orz
0767デフォルトの名無しさん
2006/01/16(月) 15:27:53size_t mylen(char String[]) // char *Stringと書いてもいい
{
return strlen(String);// 便利な標準関数だぜ
}
※注
教授にヌッ殺されても責任は取れません
0768デフォルトの名無しさん
2006/01/16(月) 15:33:410769デフォルトの名無しさん
2006/01/16(月) 15:41:14に制限が無い所を見ると>>767はむしろ
忠実かつ見易さ、どちらも大正解だろう
0770デフォルトの名無しさん
2006/01/16(月) 15:47:40char型のポインタを返すのかint型の値を返すのかはっきりしろYO
って言うのは置いとくとしてだ
どこまでポインタ進める気だw
0771デフォルトの名無しさん
2006/01/16(月) 15:57:010772デフォルトの名無しさん
2006/01/16(月) 16:02:59今気づいたし・・・i|l||l|i orz
0773デフォルトの名無しさん
2006/01/16(月) 16:10:31[2] 問題文(含コード&リンク): http://making-gold-princessmaki.hp.infoseek.co.jp/last.htm
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: V.C6.0
[3.3] 言語: C++
[4] 期限: 1週間後ですがテスト期間中なので早めにやってもらえると
嬉しいれす。
0774デフォルトの名無しさん
2006/01/16(月) 16:31:420775デフォルトの名無しさん
2006/01/16(月) 16:33:370776デフォルトの名無しさん
2006/01/16(月) 16:34:20今音速でメールで伝えた
0777774
2006/01/16(月) 16:36:140779デフォルトの名無しさん
2006/01/16(月) 16:45:320780デフォルトの名無しさん
2006/01/16(月) 16:47:070781デフォルトの名無しさん
2006/01/16(月) 16:53:000782デフォルトの名無しさん
2006/01/16(月) 16:54:050783デフォルトの名無しさん
2006/01/16(月) 16:54:06まだ間に合う!
0784デフォルトの名無しさん
2006/01/16(月) 17:08:310785デフォルトの名無しさん
2006/01/16(月) 17:09:08リターン来ちゃった。
でも可愛そうだからそこは無視しておいたよ
0786デフォルトの名無しさん
2006/01/16(月) 17:11:15ここに貼られたソース使わなけりゃ大丈夫じゃね
0787デフォルトの名無しさん
2006/01/16(月) 17:17:26でも課題どうしよ
0789デフォルトの名無しさん
2006/01/16(月) 17:22:130790デフォルトの名無しさん
2006/01/16(月) 17:28:59メアド晒せば誰かがソース送ってくれるかも知れないね。
もしかしたら先生から罠が送られてくるかもしれないが…
0791デフォルトの名無しさん
2006/01/16(月) 17:33:16それは面倒をかけるので無理ですかね??
0792デフォルトの名無しさん
2006/01/16(月) 18:07:00報告&先生へのメールはしていないので安心して下さい。
僕のかわいい嘘ですので・・・。本当に申し訳ない(;´Д`)
0793デフォルトの名無しさん
2006/01/16(月) 18:20:22int main4( void )
{
int n; // number of students
int ko, sy, su, ri, ei;
std::cout << "input number of students > ";
std::cin >> n;
int tokuten[n];
for ( int i = 0; i < n; ++i ) {
std::cout << "--- student (" << i << ") ---" << std::endl;
00050: std::cout << "input kokugo
0794デフォルトの名無しさん
2006/01/16(月) 18:20:510795デフォルトの名無しさん
2006/01/16(月) 18:21:590796デフォルトの名無しさん
2006/01/16(月) 18:28:170797デフォルトの名無しさん
2006/01/16(月) 18:31:37だが断れw
0798797
2006/01/16(月) 18:33:32次スレから「C++ と C の違いが分からない人は C って書きましょう」
みたいなことテンプレに入れようよ。
0799デフォルトの名無しさん
2006/01/16(月) 18:34:37[2] 問題文:
d^2*f/d*x^2 + d^2*f/d*y^2 = 0
境界条件 f(0,y)=10 f(10,y)=5
上記の偏微分方程式を有限要素法により求めるプログラムの作成。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc borland
言語: C
[4] 期限: 明後日まで
[5] その他の制限:特になし
僕にはむずかしいです、よろしくお願いします!!
0800デフォルトの名無しさん
2006/01/16(月) 18:35:47てゆーかなんで俺を名乗ってるんだ??
0801デフォルトの名無しさん
2006/01/16(月) 18:37:39あ、番号一つ間違えた。ごめん。
0802794
2006/01/16(月) 18:49:520803デフォルトの名無しさん
2006/01/16(月) 18:50:200804デフォルトの名無しさん
2006/01/16(月) 18:53:34めんどくさいのはわかっていますが、改めてお願い申し上げまする
0805デフォルトの名無しさん
2006/01/16(月) 18:59:34ん、コンパイラもどきを作れってことか。
字句解析、構文解析、意味解析・・・無理だろw
0806デフォルトの名無しさん
2006/01/16(月) 19:00:08たいそうな口の聞き方だな
と思ったかも
0807デフォルトの名無しさん
2006/01/16(月) 19:01:52するだけだと思う。いや、それでも十分面倒いけどね。
0808デフォルトの名無しさん
2006/01/16(月) 19:20:45[2] 問題文:�@nを入力し,100からnまでの整数のうち15の倍数となる
整数を出力するプログラムをfor文またはwhile文を用いて作成せよ
�A n円を入力した後,画面に「1・ドル 2・ユーロ 3・ウォン」
と表示され,1,2,3のいずれかの番号を入力すると,
その指定した通貨の額にn円を換算するプログラムを作成せよ。
なお,為替レートは,ネットなどで調べること。
�B n人分について国語,社会,数学,理科,英語の5科目の得点を入力し,
n人の平均点の平均を計算した後,その平均より低い平均点を
出力するプログラムを作成せよ。ただし,各科目の変数名を
kok,sya,suu,rik,eigとし,配列名はtokutenとすること。
�C 10文字以内の文字列(英字)を入力し,
子音(a,i,u,e,o以外の文字)
を取り除いた文字列を出力するプログラムを作成せよ。
(例:momotarou → ooaou)
�D 速度が64kbpsであるインターネットがある.この回線を使って,
サイズが n MB(n を入力する)のファイルをダウンロード
するのにかかる時間を表示するプログラムを作成せよ.
[3] 環境
[3.1] OS:xp
[3.2] コンパイラ名とバージョン:わかりません
[3.3] 言語:C
[4] 期限:2006年1月18
[5 お願いします
0809デフォルトの名無しさん
2006/01/16(月) 19:23:55単純に、書き換えるだけでいいんじゃないのか?
std::coutってのはprintf使えってこと
std::cinってのはscanf使えってこと
他に何か難しいことってある?
[2] 問題文(含コード&リンク):
配列{1,3,5,7,9,0,2,4,6,8}があるとき、4番目の要素を削除し、7番めに10を挿入せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC.NET 2003
[3.3] 言語: C
[4] 期限: 明後日まで
[5] その他の制限: Cの基本的なことのみ習っている。
要素の削除、挿入は関数を作って、その関数で行う。
お願いします。
void del(int a[], int x, int result_tmp[]){
int i,y;
for(i=0; i<10 ;i++){
if(i<x){
y=a[i];
result_tmp[i]=y;
}
y=a[i+1];
result_tmp[i]=y;
}
}
//int insert(){
void main() {
int i, result[10], hairetu[10];
hairetu[1,3,5,7,9,0,2,4,6,8];
del(hairetu, 4, result);//削除する数字
//insert(hairetu, 7, 10);//挿入する数字
for(i=0; i<10; i++){
printf("%d\n", result[i]);
}
}
途中までですが、このように書いたのですが、うまくいきません。助言をお願いします。
0812デフォルトの名無しさん
2006/01/16(月) 19:27:58int main()
{
int a[]={1,3,5,9,0,10,4,6,8};
return 0;
}
0813デフォルトの名無しさん
2006/01/16(月) 19:31:07工エエェェ(´д`)ェェエエ工工 ツッコミいっぱい
0814デフォルトの名無しさん
2006/01/16(月) 19:33:07�A以外はこのスレで解答済みだから探して。
�Cは微妙に違うけど大体いっしょのがある。
0815デフォルトの名無しさん
2006/01/16(月) 19:35:17流し読みしたがオーバーフローは起きてるし、y経由させる意味ないし
どうみてもelse抜けてるし、それ以上に無駄だし
書き込み用イテレータと読み込み用イテレータを共有せずに
別々に確保してみれ
ありがとうございます、やってみます。
main関数の方は問題ないですか?
0817デフォルトの名無しさん
2006/01/16(月) 19:41:48mainも問題ありそうだってのもわかってはいたのですが、それよりもdelの方が気になっていて・・・
0819デフォルトの名無しさん
2006/01/16(月) 19:44:48エラー表示通りやれば問題無い。
0820デフォルトの名無しさん
2006/01/16(月) 19:56:36配列のやつ
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26845
0821デフォルトの名無しさん
2006/01/16(月) 20:06:51int *del(int a[], int x, int result_tmp[]){
int i,*y = resulut_tmp;
for(i=0; i<10 ;i++){
*result_tmp = a[i];
if(a[i]++ == 3){;}
*result_tmp = a[i];
}
return *y;
}
delの関数はこれでおkだろ(^ω^;)
あとはここのプロの方々の改良が加われば鬼に金棒。
0822デフォルトの名無しさん
2006/01/16(月) 20:28:20[2] 問題文(含コード&リンク):末尾に記します
[3] 環境
[3.1] OS: TurboLinux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2006年01月17日22:00まで]
[5] その他の制限: 違うグラフでも動くようにせよ。
ヒント:通った辺と通っていない辺を区別する配列、再帰関数を使う
問題文
次のグラフを一筆書きするプログラムを書け。
{
{ 0, 1, 1, 0, 1},
{ 1, 0, 1, 1, 1},
{ 1, 1, 0, 1, 1},
{ 0, 1, 1, 0, 0},
{ 1, 1, 1, 0, 0},
}
出力は以下の様に表示せよ
4 -> 3 -> 2 ->・・・
単位が危ういので、どうか助けて欲しいです。
0823デフォルトの名無しさん
2006/01/16(月) 20:34:48ヒントはあくまでヒントだから無視するとして
全てのノードが繋がってると仮定しても
高々5!通りしか無いんだから、それを一つずつ
そのグラフに適合するか見ていけばいいんじゃね?
0824デフォルトの名無しさん
2006/01/16(月) 20:35:17どなたか教えてください。
0825デフォルトの名無しさん
2006/01/16(月) 20:37:44すれ違いということだ!
0826824
2006/01/16(月) 20:38:410827ZEX#
2006/01/16(月) 20:39:38[2] 問題文:半径8cm、高さ15cm、円周率3.1415926
上記を用いて円柱、円錐、球の体積を求めよ
[3] 環境
[3.1] OS: winXP
[3.2] ちょっと分りません
[3.3] c/c++コンソールアプリケーション
[4] 期限: 2006年01月30日
[5] その他の制限:特に無し
お願いします。。。
0828ZEX#
2006/01/16(月) 20:40:510829デフォルトの名無しさん
2006/01/16(月) 20:51:400830魚チョコ
2006/01/16(月) 20:53:25#include <stdio.h>
int main(){
double r=8.0;
double h=15.0;
double pi=3.1415926;
printf("円柱の体積(cc)=%lf\n",pi*r*r*h);
printf("円錐の体積(cc)=%lf\n",(1.0/3.0)*pi*r*r*h);
printf("球の体積(cc)=%lf\n",(4.0/3.0)*pi*r*r*r);
return 0;
}
0831デフォルトの名無しさん
2006/01/16(月) 20:53:41言おうと思ったこと先に >>829 に言われたからプログラムの方書く
#include <stdio.h>
#define PI 3.1415926
double get_cylinder_volume( double height, double radius )
{
return radius * radius * PI * height;
}
double get_cone_volume( double height, double radius )
{
return get_cylinder_volume( height, radius ) / 3;
}
double get_sphere_volume( double radius )
{
return radius * radius * radius * PI * 3 / 4;
}
int main( void )
{
double height = 15;
double radius = 8;
printf( "円柱\t%lf cm3\n", get_cylinder_volume( height, radius ) );
printf( "円錐\t%lf cm3\n", get_cone_volume( height, radius ) );
printf( "球\t%lf cm3\n", get_sphere_volume( radius ) );
return 0;
}
0832デフォルトの名無しさん
2006/01/16(月) 20:54:53空要素の定義がないから適当だお。
#include <stdio.h>
int del(int a[], int size, int idx)
{
int i;
if(idx < 0 || idx >= num) return -1;
for(i = idx+1; i < num; i++) a[i-1] = a[i];
return 0;
}
int ins(int a[], int size, int idx, int data)
{
int i;
if(idx < 0 || idx >= num) return -1;
for(i = idx+1; i < num; i++) a[i] = a[i-1];
a[idx] = data;
return 0;
}
int main(int argc, char **argv)
{
int a[] = {1,3,5,7,9,0,2,4,6,8};
del(a, sizeof(a)/sizeof(a[0]), 3); /* 配列aの4番目の要素を削除 */
ins(a, sizeof(a)/sizeof(a[0]), 6, 10); /* 配列aの7番目に10を挿入 */
return 0;
}
0833ZEX#
2006/01/16(月) 20:58:090834832
2006/01/16(月) 20:59:55○ num
これだから脳内コンパイラは…
0836デフォルトの名無しさん
2006/01/16(月) 21:17:33[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1475.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C のみで
[4] 期限: 20050117まで
[5] その他の制限: 再帰を使う問題です。よろしくお願いします。
0837デフォルトの名無しさん
2006/01/16(月) 21:42:15安心しろ。
0838デフォルトの名無しさん
2006/01/16(月) 21:54:21[2] 問題文:
d^2*f/d*x^2 + d^2*f/d*y^2 = 0
境界条件 f(0,y)=10 f(10,y)=5
上記の偏微分方程式を有限要素法により求めるプログラムの作成。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc borland
言語: C
[4] 期限: 明後日まで
[5] その他の制限:特になし
0839デフォルトの名無しさん
2006/01/16(月) 22:00:55有限要素法とやらの参考ページを付けろ
それがない限りおそらくスルーされる
0840デフォルトの名無しさん
2006/01/16(月) 22:13:31http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1476.txt
0841デフォルトの名無しさん
2006/01/16(月) 22:17:56賞味期限1年前か。
それはさておき、おもしろそうなんじゃが、今日は○×時代(>>377出題)のように熱くなれる時間が無い…
今回はおとなしくROMっておきます。
★ ┌ ┐
└ ─ ┐ │ │
└ ┘ ☆
蛇足だけど、今はものすごく、この部分の表示を作りたい。
0842デフォルトの名無しさん
2006/01/16(月) 22:23:28馬鹿ばっかってことか
0843808
2006/01/16(月) 22:34:170844デフォルトの名無しさん
2006/01/16(月) 22:39:52何ができないのかワカメ。
0845840
2006/01/16(月) 22:53:19やってみました。840のprint関数を置き換えます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1477.txt
0846デフォルトの名無しさん
2006/01/16(月) 23:04:53#include<stdio.h>
int main(void){
double y,d,e,w,p;
int c;
char *s[]={"円","ダラ","ユロ","ヲン"};
d=360.0;
e=130.0;
w=0.001;
scanf("%lf",&y);
printf("「1・ドル 2・ユーロ 3・ウォン」");
scanf("%d",&c);
switch(c){
case 1:p=d;break;
case 2:p=e;break;
case 3:p=w;break;
default:p=1.0;c=0;
}
if(c)printf("%.0f円は%.2f%sです。",y,y/p,s[c]);
return 0;
}
http://quote.yahoo.co.jp/q?d=t&s=USDJPY=X
http://quote.yahoo.co.jp/q?d=t&s=EURJPY=X
http://quote.yahoo.co.jp/q?d=t&s=KRWJPY=X
使わない部分があるが気にしないでくれ
0848デフォルトの名無しさん
2006/01/16(月) 23:53:01[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1478.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:gcc
言語: C
[4] 期限: 1/18まで
[5] その他の制限:例にならった形で
0849デフォルトの名無しさん
2006/01/17(火) 00:08:110850デフォルトの名無しさん
2006/01/17(火) 00:09:18またお前か
その課題作った奴の名前とお前の学校教えろ
0851デフォルトの名無しさん
2006/01/17(火) 00:17:49悪いが俺にそのソースは読めない
0852デフォルトの名無しさん
2006/01/17(火) 00:18:37とりあえずキリのいい所まで、今日はもう寝るぽ。後は自分でやってもいいし。
0853デフォルトの名無しさん
2006/01/17(火) 00:18:56またってことは前に出てたのでしょうか?
とりあえずこのスレだけで過去スレ読んでなかったので読んでみます
0854デフォルトの名無しさん
2006/01/17(火) 00:25:31例にならった形なら16進こんな感じかな?(8進は自明)
一応エラーメッセージは同じだし、2個所直すと11桁目(intが32bitの場合)からバグるのも同じ。
バグり方は違うけど、そこは勘弁して。
#include<stdio.h>
main()
{
int dec, bit, coef=0;
char hex[11]={0}, endchar;
do{
scanf("%d%c",&dec,&endchar);
printf("%3d\t",dec);
while(dec ! = 0) {
bit = dec % 16;
dec \ = 16;
hex[coef] = "0123456789ABCDEF"[bit];
++coef;
}
printf("%10s\n", hex);
} while(endchar != '*');
}
0855デフォルトの名無しさん
2006/01/17(火) 00:29:33#include <stdio.h>
char *get_binary_expression( int n )
{
static char buf[ 1024 ];
char *end = buf + sizeof(buf) - 1;
*end-- = '\0';
while ( buf != end ) {
*end = '0' + n%2;
if ( n < 2 ) break;
n /= 2; --end;
}
return end;
}
static void print_result( int n )
{
printf( " %d\t%s\t%o\t%X\n", n, get_binary_expression( n ), n, n );
}
int main( void )
{
char buf[32];
int a;
while (1) {
fgets( buf, sizeof(buf), stdin );
if ( buf[0] == 'q' ) break;
sscanf( buf, "%d", &a );
print_result( a );
}
}
0856N
2006/01/17(火) 00:45:29c:\a.txt の場所にtextファイルがあります.
このtextファイルを読み込んで配列に格納したいのですがうまくいきません.
a.txtファイルには
1 1 1 12 15
1 1 2 13 14
1 1 3 24 36
のように一行に五つの数字があります.
これを
a[1],b[1],c[1],d[1],e[1]
a[2],b[2],c[2],d[2],e[2]
a[3],b[3],c[3],d[3],e[3]
の配列に格納していきたいのですがどのようなアルゴリズムを組めばいいのか教えてください.
c++で,MFCを使うのですが…
CFile file("c:\\a.txt", CFile::modeRead );
CArchive ar(&file, CArchive ::load);
…
…
このやり方を誰か教えてください.
0857デフォルトの名無しさん
2006/01/17(火) 00:55:140858お助けを
2006/01/17(火) 01:28:04です。お願いします
0859デフォルトの名無しさん
2006/01/17(火) 01:31:12なんだこの分かりにくい例は
ビット演算の方が遥かに分かりやすいわ
0860デフォルトの名無しさん
2006/01/17(火) 05:48:530861デフォルトの名無しさん
2006/01/17(火) 05:58:08[2] 問題文(含コード&リンク):
#include <stdio.h>
int ch;
void getch0(void) {
ch = getchar();
}
int expression(void);
int factor(void) {
int val;
if(ch >= '0' && ch <= '9') {
val = ch-'0';
getch0();
}
else if(ch == '(') {
getch0();
val = expression();
getch0();
}
return val;
}
int term(void) {
int val;
val = factor();
while(ch == '*') {
getch0();
val = val * factor();
}
return val;
}
0862デフォルトの名無しさん
2006/01/17(火) 05:58:53int val;
val = term();
while(ch == '+') {
getch0();
val = val + term();
}
return val;
}
int main(void) {
printf("expression? ");
getch0();
printf("value=%d\n", expression());
}
この計算プログラムにおいて,2*(3+(4+5)*6) を計算するとき,
どういう順番で,expression, term, factorを呼び出して計算がなされて,
最終的な答えに行き着くのかを説明しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月20日まで
何とぞお手柔らかにお願いします!
0863デフォルトの名無しさん
2006/01/17(火) 06:00:220864お助けを
2006/01/17(火) 06:10:21[2] 問題文(含コード&リンク): http://www.mm.ics.saitama-u.ac.jp/~kawasaki/ensyu2005/ex13/ex13.html
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1月17日
なにとぞお願いします
0865デフォルトの名無しさん
2006/01/17(火) 06:15:20今日までじゃん。
せめて夜に頼めばよかったのに。
0866デフォルトの名無しさん
2006/01/17(火) 09:38:17[1] 授業単元: 応用数学
[2] 問題文(含コード&リンク): http://next1.cc.it-hiroshima.ac.jp/LectureNote/CPP/Exercise4.html
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:bcc
[3.3] 言語:C++
[4] 期限: 2006年01月19日am:9:00まで] または [無期限] のいずれか)
[5] その他の制限:http://next1.cc.it-hiroshima.ac.jp/LectureNote/CPP/LectureNote.html
お願いします
0867デフォルトの名無しさん
2006/01/17(火) 10:45:10[2] 問題文(含コード&リンク):
list<int> 型の要素全ての和を求める関数 int sumlist(list<int>&) を定義して下さい.
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> lst;
for(int i=0 ; i < 10 ; i++)lst.push_back(i);
cout << "size =" << lst.size() << endl;
for(list<int>::iterator it = lst.begin(); it != lst.end() ; ++it)
cout << *it << ' ';
cout << endl;
for(list<int>::iterator it = lst.begin(); it != lst.end() ;){
if((*it) % 3 == 0){
it = lst.erase(it);
}
else {
++it; } }
for(list<int>::iterator it = lst.begin(); it != lst.end() ; ++it)
cout << *it << ' ';
cout << endl;
return 0; }
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン:Microsoft Visuaal Studio
[3.3] 言語: C++
[4] 期限: 1月23日
[5] その他の制限: >>761ではだめだったのでもう一度お願いします
0868デフォルトの名無しさん
2006/01/17(火) 11:03:48>>855
どうもありがとうございました
0869デフォルトの名無しさん
2006/01/17(火) 11:16:07ありがとうございます。いろいろありましたが、今後ともよろしくお願いします。
0870RE:856
2006/01/17(火) 11:20:42[2] 問題文:下に書いてある通りです。
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン: VC++ 6.0
[3.3] 言語:C++
[4] 期限:1月19日
[5] その他の制限: なし、できればよいので。
c:\a.txt の場所にtextファイルがあります.
このtextファイルを読み込んで配列に格納したいのですがうまくいきません.
a.txtファイルには
1 1 1 12 15
1 1 2 13 14
1 1 3 24 36
のように一行に五つの数字があります.
これを
a[1],b[1],c[1],d[1],e[1]
a[2],b[2],c[2],d[2],e[2]
a[3],b[3],c[3],d[3],e[3]
の配列に格納していきたいのですがどのようなアルゴリズムを組めばいいのか教えてください.
c++で,MFCを使うのですが…
CFile file("c:\\a.txt", CFile::modeRead );
CArchive ar(&file, CArchive ::load);
…
…
このやり方を誰か教えてください.
0871デフォルトの名無しさん
2006/01/17(火) 11:44:000872822
2006/01/17(火) 11:51:39返答ありがとうございます
ただ、どのようなプログラムになるのか
全く想像がつかないのです
そんなわけで、
プログラムの雛形を提示していただけると助かるのですが
どうか助けてください。
0873デフォルトの名無しさん
2006/01/17(火) 12:16:01そのa.txtとやらの仕様を詳しく記述せよ
0874お助けを
2006/01/17(火) 12:22:27[2] 問題文(含コード&リンク): http://www.mm.ics.saitama-u.ac.jp/~kawasaki/ensyu2005/ex13/ex13.html
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1月18日 正確には12;00までです
なにとぞお願いします
0876デフォルトの名無しさん
2006/01/17(火) 13:01:01[2] 問題文(含コード&リンク):下記参照
[3] 環境
[3.1] OS:(Windowsxp)
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C/C++
[4] 期限: 2006年1月18日(明日)まで
[5] その他の制限: 特になし
0と1を使用した32桁の文字列を入力
0が1つの場合1と置く 0が2つ連続すると2と置く 0が3つ連続すると3と置く
0が4連続=4 0が5連続=5 0が6連続=6 0が7連続=7 0が8連続=8 0が9連続=9
1が1連続=a 1が2連続=b 1が3連続=c 1が4連続=d 1が5連続=e
1が6連続=f 1が7連続=g 1が8連続=h 1が9連続=i
上のように変換した文字列を表示する
(0や1が10個以上連続した場合下の例のように置き換える
{例}1が12個連続→1が9連続のiと1が3連続のcに置き換える
)
最後に最初に入力した0と1を使用した32桁の文字列を表示
全体的の例
11111001100000000000000111111110 ・・・(1)
e2b95h1 ・・・(2)
11111001100000000000000111111110 ・・・(3)
条件の付けたし{(2)で出力した文字列を用いて(1)と同じ文字列を(3)に出力してください}
前スレの>>540ですが、上の条件を満たしてつくらなければいけないことを言われたのでよろしくお願いします。
なんどもなんどもすみません。
0877デフォルトの名無しさん
2006/01/17(火) 13:03:55・・・(1)
・・・(2)
・・・(3)
は出力に必要ないです。
0878N
2006/01/17(火) 13:04:59これを列ごとにそれぞれの配列に上から番号順(0〜)に入れていくのですが,どのようにしたらいいのか教えてください.
1 1 1 416 228
1 1 2 403 229
1 1 3 388 229
1 1 4 374 229
1 1 5 360 229
1 2 1 417 214
1 2 2 403 213
1 2 3 390 214
1 2 4 375 214
1 2 5 361 214
1 2 6 346 215
0879デフォルトの名無しさん
2006/01/17(火) 13:27:18C標準、C++標準なら回答できたものを
0880デフォルトの名無しさん
2006/01/17(火) 13:57:21前スレの回答のどこが不満なのかわからない。
>条件の付けたし{(2)で出力した文字列を用いて(1)と同じ文字列を(3)に出力してください}
このへんは満たしてるし。
0881デフォルトの名無しさん
2006/01/17(火) 14:18:43#include <stdio.h>
#include <string.h>
int main(){
int i,l;
char ins[256],outs[256];
scanf("%s",ins);
l = strlen(ins);
for(i=0; i < l;++i){
outs[l-i-1] = ins[i];
}
outs[l] = 0;
printf("%s",outs);
return 0;
}
0882デフォルトの名無しさん
2006/01/17(火) 14:48:10そうなんですか?わかりました。
どうも迷惑かけました。
0883デフォルトの名無しさん
2006/01/17(火) 15:02:08[2] 問題文(含コード&リンク):
配列の中に保存されている整数の最大のものとその要素番号とを
出力するプログラムを作りなさい。
ただし、ポインタを使うこと。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年1月18日18:00まで
[5] その他の制限: すいませんがよろしくおねがいします。
0884魚チョコ
2006/01/17(火) 16:34:35#include <stdio.h>
#include <limits.h>
int SearchMax(int *p, int num)
{
int i, max, loc;
max=INT_MIN;
for ( loc=i=0; i<num; i++, p++ ) {
if ( *p > max ) {
max=*p;
loc=i;
}
}
return loc;
}
int main()
{
int p[5]={-666,666,-666,666,-666};
int max;
max=SearchMax(p,5);
printf("max: p[%d] = %d\n",max,*(p+max));
return 0;
}
0885デフォルトの名無しさん
2006/01/17(火) 17:06:13[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1480.txt
[3] 環境
[3.1] OS:Windows XP
[3.2] VC++ 6.0
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:1月20日
[5] その他の制限:特になし
0886デフォルトの名無しさん
2006/01/17(火) 17:18:230887デフォルトの名無しさん
2006/01/17(火) 17:43:22[1] 授業単元: 応用数学
[2] 問題文(含コード&リンク): http://next1.cc.it-hiroshima.ac.jp/LectureNote/CPP/Exercise4.html
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:bcc
[3.3] 言語:C++
[4] 期限: 2006年01月19日am:9:00まで
[5] その他の制限:http://next1.cc.it-hiroshima.ac.jp/LectureNote/CPP/LectureNote.html
お願いします
0888デフォルトの名無しさん
2006/01/17(火) 17:58:510889デフォルトの名無しさん
2006/01/17(火) 18:00:09なんで言っちゃうかなぁ(;´Д`)
0890デフォルトの名無しさん
2006/01/17(火) 18:03:500891デフォルトの名無しさん
2006/01/17(火) 18:07:130892デフォルトの名無しさん
2006/01/17(火) 18:18:33やりたくなるような宿題を持ってこい。退屈するだろう。
0893デフォルトの名無しさん
2006/01/17(火) 18:32:130894デフォルトの名無しさん
2006/01/17(火) 18:32:560895デフォルトの名無しさん
2006/01/17(火) 18:43:12一カ所にまとめて全部書きなおせ
・Studentクラスが保持しなければならないデータメンバとインターフェース
・入力データ
・何処まで使っていいのか(STL/boost/etc...)
0896デフォルトの名無しさん
2006/01/17(火) 18:44:16まあ,俺のでる幕がないということか
0897デフォルトの名無しさん
2006/01/17(火) 18:48:38さんくすw
0898デフォルトの名無しさん
2006/01/17(火) 18:50:35いやいや、見てる感じ答えてるほうも口だけが多いじゃん。
簡単なのにしか教えてねーし。
有限要素法ぐらいしっとけ。
0899デフォルトの名無しさん
2006/01/17(火) 18:52:59つーか,ここに常駐してる人間はふつー有限要素法なんか習わんと思うぞ
0900デフォルトの名無しさん
2006/01/17(火) 18:53:410901デフォルトの名無しさん
2006/01/17(火) 18:55:210902デフォルトの名無しさん
2006/01/17(火) 19:02:09いきなり何とかの定理で計算とか言われても分からん。
0903デフォルトの名無しさん
2006/01/17(火) 19:23:19俺がやってやろうか?
0904デフォルトの名無しさん
2006/01/17(火) 19:29:49>有限要素法は、計算機により構造物の変形や応力を解析するための近似解析手法
材物板住人でなければ物理板の住人でも無いんだから知るかよ
0905デフォルトの名無しさん
2006/01/17(火) 19:29:540906yu- ◆gR613BN6BY
2006/01/17(火) 19:50:28[2] 問題文(含コード&リンク):ポーカーゲームを作れ(仕様書も
[3] 環境
[3.1] OS: windows2000
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限: ([2006年1月20日23:59
[5] その他の制限:「相手との勝負」があればきわめて単純でかまわない。ワンペア、ツーペア、スリーカード程度までの単純な役があればよい
よろしくお願いします
0907デフォルトの名無しさん
2006/01/17(火) 20:08:070908デフォルトの名無しさん
2006/01/17(火) 20:29:10if(a==0)puts("ワンペア");
0909デフォルトの名無しさん
2006/01/17(火) 20:42:050910デフォルトの名無しさん
2006/01/17(火) 20:42:08[2] 問題文:文字列s[]から変数cに入力した文字を全て取り除く関数DelCh(s,c)を作りなさい。
c = 'a'としたとき
<実行例>
Input String:C-language
Output string:C=lnguge
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 17日の23:59分まで
[5] その他の制限:表示させるのはmain関数でお願いします。ポインタを使用してでお願いします。
0911デフォルトの名無しさん
2006/01/17(火) 20:43:210912デフォルトの名無しさん
2006/01/17(火) 21:34:07[2] 問題文(含コード&リンク):
正方形の一辺の長さn(n>0)を入力して,その大きさを持つ正方形を文字AとCを使用して出力するプログラムを書け。
例えばnの値が5であるときは,次のように出力されるはずである。
AAAAA
ACCCA
ACCCA
ACCCA
AAAAA
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:VC6.0
[3.3] 言語:C++
[4] 期限: 一月下旬
[5] その他の制限:特になし。よろしくお願いします。
0913デフォルトの名無しさん
2006/01/17(火) 21:44:35あほ
0914デフォルトの名無しさん
2006/01/17(火) 21:48:03#include <stdio.h>
void draw_rectangle(int n)
{
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (i == 0 || i == n-1 || j == 0 || j == n-1)
putchar('A');
else
putchar('C');
}
putchar('\n');
}
}
int main()
{
int n;
printf("正数を入力してください: ");
scanf("%d", &n);
draw_rectangle(n);
return 0;
}
0915915
2006/01/17(火) 21:56:34[2] 問題文(含コード&リンク):
#include <stdio.h>
int ch;
void getch0(void) {
ch = getchar();
}
int expression(void);
int factor(void) {
int val;
if(ch >= '0' && ch <= '9') {
val = ch-'0';
getch0();
}
else if(ch == '(') {
getch0();
val = expression();
getch0();
}
return val;
}
int term(void) {
int val;
val = factor();
while(ch == '*') {
getch0();
val = val * factor();
}
return val;
}
0916915
2006/01/17(火) 21:57:25int val;
val = term();
while(ch == '+') {
getch0();
val = val + term();
}
return val;
}
int main(void) {
printf("expression? ");
getch0();
printf("value=%d\n", expression());
}
この計算プログラムにおいて,2*(3+(4+5)*6) を計算するとき,
どういう順番で,expression, term, factorを呼び出して計算がなされて,
最終的な答えに行き着くのかを説明しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年1月20日まで
何とぞお手柔らかにお願いします!
0917デフォルトの名無しさん
2006/01/17(火) 22:07:48#include <stdio.h>
void DelCh(char *s, char c){
char *p, *q;
p = q = s;
while(*p != '\0'){
if(*p != c){
*q = *p;
q++;
}
p++;
}
*q = '\0';
}
int main(void){
char s[32], c, *r;
printf("Input String:");
gets(s);
printf("Input Char:");
scanf("%c", &c);
DelCh(s, c);
printf("Output String:%s", s);
return 0;
}
0918デフォルトの名無しさん
2006/01/17(火) 22:21:07一回以下のプログラムで実行してみる。
#include <stdio.h>
int ch;
void getch0(void) {
ch = getchar();
}
int expression(void);
int factor(void) {
int val;
printf("factor\n");
if(ch >= '0' && ch <= '9') {
val = ch-'0';
getch0();
}
else if(ch == '(') {
getch0();
val = expression();
getch0();
}
return val;
}
int term(void) {
int val;
printf("term\n");
val = factor();
while(ch == '*') {
getch0();
val = val * factor();
}
return val;
}
0919デフォルトの名無しさん
2006/01/17(火) 22:22:15int val;
printf("expression");
val = term();
while(ch == '+') {
getch0();
val = val + term();
}
return val;
}
int main(void) {
printf("expression? ");
getch0();
printf("value=%d\n", expression());
}
わからなければ、実際に計算している前後でも出力してみる(valなど)。
0920デフォルトの名無しさん
2006/01/17(火) 22:23:18[2] 問題文 タブ区切りで10個の数字が並んでいるtxtファイル
21 34 4 145 … こんな感じで一行です。桁はまちまち
が5つありそこから、10行 5列にひとまとめにして、csvで出力しなさいというのです
[3] 環境
[3.1] OS:Windows XP
[3.2] VC++ 6.0
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:1月20日
[5] その他の制限:特になし
おながいします…
0921デフォルトの名無しさん
2006/01/17(火) 22:25:05いや、言語わかんないし
10個の数字を10*5のcsvにしろってのもよく分らないし
0922918,919
2006/01/17(火) 22:28:12>printf("expression\n");
0923920
2006/01/17(火) 22:32:43言語はCでおながいします
10個の数字が書いてあるファイルが5つあって
それをひとまとめにして一つのファイルにしてくださいという感じです
[1] 授業単元:情報処理
[2] 問題文 タブ区切りで10個の数字が並んでいるtxtファイル
21 34 4 145 … こんな感じで一行です。桁はまちまち
が5つありそこから、10行 5列にひとまとめにして、csvで出力しなさいというのです
[3] 環境
[3.1] OS:Windows XP
[3.2] VC++ 6.0
[3.3] 言語: C
[4] 期限:1月20日
[5] その他の制限:特になし
0924デフォルトの名無しさん
2006/01/17(火) 22:33:30ファイル名は?
0925デフォルトの名無しさん
2006/01/17(火) 22:34:01ゴメン2つ目のは俺がちゃんと読んでないだけだった
0926920
2006/01/17(火) 22:37:22入力ファイルはdata1.txt data2〜data5という感じで連番になっています
出力のファイル名は多分なんでも大丈夫です
>>925
いえいえとんでもないです、文が分かりにくくて申し訳ないです
0927デフォルトの名無しさん
2006/01/17(火) 22:39:29[1] 授業単元:プログラミング1
[2] 問題文(含コード&リンク):
任意の文字列を読み込んで、中央の文字を堺に、その前後を入れ替えるプログラムを作成せよ。
文字列の最大長さは255文字とせよ。もし、文字列の長さが奇数の場合は、中央の文字は、移動させずにそのままとすること。
入力した文字の長さが、最初に偶数か奇数か判断すると良い。
[3] 環境
[3.1] os:Windows xp
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C言語
[4] 期限: 2007年1月23日10時まで
[5] その他の制限:
本当に基本でpritfやscanfやfor文とかやりました。
あと、文字と文字列、配列、剰余演算子、strlen関数、for文を理解すること
と書いてあります。
途中まであります。
#include 〈stdio.h )
main()
{
int i,j,k,1;
char ins[256],outs[256];
printf(“input string:“) ;
scanf(“%s”,ins) ;
1=strlen(ins) ;
おねがいします!
0928デフォルトの名無しさん
2006/01/17(火) 22:47:40int a[5], n;
FILE *fp;
while ((n = fscanf(fp, "%d%d%d%d%d", &a[0], &a[1], &a[2], &a[3], &a[4])) == 5) {
printf("%d,%d,%d,%d,%d\n", a[0], a[1], a[2], a[3], a[4]);
}
0929ひよこ
2006/01/17(火) 22:52:290930ひよこ
2006/01/17(火) 22:55:050931デフォルトの名無しさん
2006/01/17(火) 22:59:28しばらくは手をつけなくても良さそうだね
0932デフォルトの名無しさん
2006/01/17(火) 23:03:02てか1年間もあるとそのまま忘れられそう
0933デフォルトの名無しさん
2006/01/17(火) 23:05:21やってみたけど駄目だぁ
入れ替えはできるけど位置が間違ってるw
0934デフォルトの名無しさん
2006/01/17(火) 23:07:25#include <stdio.h>
#include <string.h>
int main()
{
char s[256];
int len;
int i;
char tmp;
printf(" input string: ");
scanf("%s",s);
len = strlen(s);
for (i = 0; i < len/2; ++i) {
tmp = s[i];
s[i] = s[len-1-i];
s[len-1-i] = tmp;
}
printf("output string: %s\n", s);
return 0;
}
別に奇偶判定の必要なかったが
0935デフォルトの名無しさん
2006/01/17(火) 23:13:27そうゆう意味だったのかぁ、
漏れはてっきり前後一文字だけかと思ったwwww(⊃Д`)恥ずかしぃ
0936デフォルトの名無しさん
2006/01/17(火) 23:18:20これ見ながらもう一度考え直しますノシ
0938デフォルトの名無しさん
2006/01/17(火) 23:22:20言語 C++と書いてあったので、
喜び勇んでSTLだらけなコードを書いたら拒絶された。
0939デフォルトの名無しさん
2006/01/17(火) 23:25:28>>934修正
for (i = 0; i < len/2; ++i) {
tmp = s[i];
s[i]=s[(len-1)/2+(len-1)%2+i];
s[(len-1)/2+(len-1)%2+i] = tmp;
}
0940デフォルトの名無しさん
2006/01/17(火) 23:26:32あ、前後1文字ってことか?よくわからん。
それならこっち
#include <stdio.h>
#include <string.h>
int main()
{
char s[256];
int len;
int i;
char tmp;
printf(" input string: ");
scanf("%s",s);
len = strlen(s);
if (len%2 == 0) {
tmp = s[len/2];
s[len/2] = s[len/2-1];
s[len/2-1] = tmp;
}
printf("output string: %s\n", s);
return 0;
}
0941915
2006/01/17(火) 23:29:45お願いします。どのコマンドで数字を読み込むのかも分からなくて・・・
0942デフォルトの名無しさん
2006/01/17(火) 23:33:100943デフォルトの名無しさん
2006/01/17(火) 23:34:11勉強になるから問題に気づいたら考えては見るが
そもそも問題自体がそんなになくね?
0944デフォルトの名無しさん
2006/01/17(火) 23:34:30このスレでの話なら、その通り。私も何度も書き直した回答者の1人。
C++をbetter Cとしてしか使わない質問者や出題者があまりにも多い。
0946デフォルトの名無しさん
2006/01/17(火) 23:39:490947デフォルトの名無しさん
2006/01/17(火) 23:44:27そういう意味だったのか。
でも、それだと真ん中も変わっちゃう
for (i = 0; i < len/2; ++i) {
tmp = s[i];
s[i]=s[(len+1)/2+i];
s[(len+1)/2+i] = tmp;
}
0948デフォルトの名無しさん
2006/01/17(火) 23:44:37そこらへんのC++の入門書らしきものはみんな
まずテンプレートが後回しで、それに引きずられてSTLも後のほうに回される。
iostreamがクラステンプレートだという話も滅多に出てこない。
まして学校の授業でそこまで到達するわけがないというところだろう。
#全然関係はないけれどC++のiostreamは仮想継承の説明にもってこいだと思うんだけどな。
0949デフォルトの名無しさん
2006/01/17(火) 23:48:40これじゃだめ?
#include <stdio.h>
int main(void) {
int i, c;
char filename[16];
FILE* srcfp, *destfp = fopen("data.csv", "w");
for (i = 0; i < 5; i++) {
sprintf(filename, "data%d.txt", i + 1);
srcfp = fopen(filename, "r");
for (; ; ) {
if ((c = fgetc(srcfp)) == EOF) break;
if (c == '\t') fputc(',', destfp);
fputc(c, destfp);
}
fclose(srcfp);
}
fclose(destfp);
return 0;
}
0950デフォルトの名無しさん
2006/01/17(火) 23:49:28はじめて言語ふれる人が90時間くらいじゃそんなもんでしょ。classまで行かん気もするが。
0951デフォルトの名無しさん
2006/01/17(火) 23:51:23もう教科書はAccelerated C++にすりゃいいんじゃね
憂鬱本→独習C++だとただ何となく面白そうという印象しかなかったが
その後にAccelerated読んで世界が変わったな
0952デフォルトの名無しさん
2006/01/17(火) 23:53:33まず配列としてstd::vector<>を使う、みたいなことしてもいいと
思うんだが。たしかAccelerated C++とかそうじゃなかったっけ?
あれ初心者が読むのは無理ではあるが。
0953デフォルトの名無しさん
2006/01/18(水) 00:20:05完成形の形になってる!!!!!111
ほんとありがとうございます、すぐに試してみます有り難うございます!
0954デフォルトの名無しさん
2006/01/18(水) 00:31:57アセりすぎ
0955デフォルトの名無しさん
2006/01/18(水) 00:44:17[2] 問題文含: スロットマシーンを作成せよ
[3] 環境
[3.1] OS:windows
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:
[5] 習い始めたばかりです。この問題を3日前に提出しろといわれて、
今日が期限になってしまいました。藁にもすがる思いです。どうかお願いします。
0956デフォルトの名無しさん
2006/01/18(水) 00:57:24[2] ヒープソートによって昇順にソートするプログラムを作る
[3] 環境
[3.1] OS:windowsXP
[3.2] VC++ 6.0
[3.3] C
[4] 期限: とくに無しです
[5] 関数呼び出し、while文、if文、for文などのできるだけ簡単なのを使って欲しい。
ソートするのは、配列data[]の中身{7,5,9,1,2,8,3,6,4}で。
0957デフォルトの名無しさん
2006/01/18(水) 00:57:28「習った範囲」もしくは「習っていなくても本人が理解している」という前提がつくからかと。
習っていないSTLを理解できる人間は、こんなところで質問しませんわね。
0958デフォルトの名無しさん
2006/01/18(水) 00:59:50それなに?GUIで作れってことか?
てか始めたはかりにしてはその課題うざいな
0959デフォルトの名無しさん
2006/01/18(水) 01:01:32知らんけど
0960デフォルトの名無しさん
2006/01/18(水) 01:01:360961955
2006/01/18(水) 01:03:28[3.2] VC++
でした。
>>958 GUIという言葉ググって初めて知りました(笑)
はい。グラフィックを使って作成しなくちゃならないんです・・・
0962デフォルトの名無しさん
2006/01/18(水) 01:11:290963デフォルトの名無しさん
2006/01/18(水) 01:16:510964デフォルトの名無しさん
2006/01/18(水) 01:19:39#include <stdio.h>
void heapsort(int arr[], unsigned int N) {
unsigned int n = N, i = n / 2, parent, child;
int t;
for (; ; ) {
if (i > 0)
t = arr[--i];
else {
if (--n == 0) return;
t = arr[n]; arr[n] = arr[0];
}
parent = i; child = i * 2 + 1;
while (child < n) {
if (child + 1 < n && arr[child + 1] > arr[child]) child++;
if (arr[child] > t) {
arr[parent] = arr[child];
parent = child; child = parent * 2 + 1;
} else break;
}
arr[parent] = t;
}
}
int main(void) {
int a[] = {5, 1, 4, 2, 3}, i;
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) printf("%d ", a[i]);
printf("\n");
heapsort(a, sizeof(a) / sizeof(a[0]));
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) printf("%d ", a[i]);
return 0;
}
0965デフォルトの名無しさん
2006/01/18(水) 01:20:00ソースを持っている人に頼む
0967デフォルトの名無しさん
2006/01/18(水) 01:22:40『CやC++のソースファイルとして』という意味ならば、>>965以外にない。
アセンブリを読んで自分でCに書き下すのも一手。ただし、非常に手間と
時間がかかる。
0968デフォルトの名無しさん
2006/01/18(水) 01:23:12ダイアログボックスベースのプログラムで、
スロットの数字表示にボタンコントロール3つ。
タイマーでボタンのテキストを変更。
ボタンを押されたらボタンを無効化
とか、そんなもんだろ。
0969デフォルトの名無しさん
2006/01/18(水) 01:27:26[2] 問題文(含コード&リンク):
自分の好きな野球チームの選手名、背番号、ポインタの入る構造体を
9つ作り打順通りのリニアリストを作れ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限: 2006/1/24/
[5] その他の制限: リニアリストがよくわからないのでお願いします
0970デフォルトの名無しさん
2006/01/18(水) 01:40:47/* 好きなチームがないのでリストを作れません */
"itiban san", "12", &linerlist[1];
"niban san", "34", &linerlist[2];
/* 略 */
"ku san", "1001", NULL];
};
0971デフォルトの名無しさん
2006/01/18(水) 01:48:070972デフォルトの名無しさん
2006/01/18(水) 01:50:410973デフォルトの名無しさん
2006/01/18(水) 01:58:09ついでに、Linearだし、{}が足りないし、]になってる。
0974デフォルトの名無しさん
2006/01/18(水) 02:07:560975デフォルトの名無しさん
2006/01/18(水) 02:11:360976デフォルトの名無しさん
2006/01/18(水) 02:27:52金払ってもらわないとやる気しないよ。普通に。
0977デフォルトの名無しさん
2006/01/18(水) 02:35:030978デフォルトの名無しさん
2006/01/18(水) 02:39:340979デフォルトの名無しさん
2006/01/18(水) 02:40:550980デフォルトの名無しさん
2006/01/18(水) 02:41:020981デフォルトの名無しさん
2006/01/18(水) 02:44:27なんでこんなギリギリに来たんだ
0982デフォルトの名無しさん
2006/01/18(水) 02:50:59全然お手上げ状態で(悲)
0983デフォルトの名無しさん
2006/01/18(水) 02:55:02ランダムに数字三つ出して、そろったらおめでとう!って表示する
みたいなんでいいんじゃないのか?
あるいは、Java アプレットの宿題じゃないのか?
勉強始めたばかりのやつにそんな課題出すヤツいないだろ。
0984デフォルトの名無しさん
2006/01/18(水) 02:56:29それにしても入門じゃないな
てかCで習いはじめでGUIとかありえん
0985デフォルトの名無しさん
2006/01/18(水) 03:01:06「スロットマシーンを作成せよ」だけだったので
多分それでいいのだと思います。window上にそれを出すのは
できますか?
0986デフォルトの名無しさん
2006/01/18(水) 03:08:39なんでお前はウィンドウ上に出したがるんだ。
普通初心者に課題を出すときそんなこと要求しないから。
コンソール (コマンドプロンプト) に表示するだけでいいんだろ、たぶん。
0987デフォルトの名無しさん
2006/01/18(水) 03:09:20#include <stdlib.h>
int main(void) {system("start http://ehagon.com/JavaScript/Slot/"); return 0;}
0988デフォルトの名無しさん
2006/01/18(水) 03:11:30今まで授業で何を習ったかおおまかに言ってみ?
0989デフォルトの名無しさん
2006/01/18(水) 03:21:45その後動くボールだとかアニメーションをやってました。
0990デフォルトの名無しさん
2006/01/18(水) 03:26:130991デフォルトの名無しさん
2006/01/18(水) 03:26:32>>989 次のことをして欲しい
・習った、作った、資料として渡されたプログラムのソースをup
・次スレを立てる
余談だが、コンソールならconio.h読んで、_kbhit()、_getch()を使う。
0992デフォルトの名無しさん
2006/01/18(水) 03:29:290993デフォルトの名無しさん
2006/01/18(水) 03:32:34http://gamdev.org/up/img/4404.zip
とりあえずドラム1個回転させておいたぜ
0994デフォルトの名無しさん
2006/01/18(水) 03:37:50>>993 それC++じゃないですか?
http://pc8.2ch.net/test/read.cgi/tech/1137522945/
0995デフォルトの名無しさん
2006/01/18(水) 03:38:570996デフォルトの名無しさん
2006/01/18(水) 03:46:420997デフォルトの名無しさん
2006/01/18(水) 03:52:18http://up.nm78.com/data/up045769.c
これでどうでしょう?
0998デフォルトの名無しさん
2006/01/18(水) 04:02:540999デフォルトの名無しさん
2006/01/18(水) 04:03:48WinMainとか、WinProcとか無いのはいいんだけど、
Windowsにべったりやんけ。
んで、当たり前だけど、そのC言語グラフィックス教材専用のライブラリが無いと、組めませんぜ?
1000デフォルトの名無しさん
2006/01/18(水) 04:05:1010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。