C/C++の宿題片付けます 132代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/11/14(土) 09:22:52【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 131代目
http://pc12.2ch.net/test/read.cgi/tech/1255709298/
0002デフォルトの名無しさん
2009/11/14(土) 20:54:42[1] 授業単元:
アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10082.txt
プログラムに使用するデータファイル↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10071.txt
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
11月17日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません
0003デフォルトの名無しさん
2009/11/14(土) 20:55:42ポインタがある時点でJavaよりCのがキツイだろ
C++に至っては苦行だ
0004デフォルトの名無しさん
2009/11/14(土) 20:57:40BASICが出来てパソコン大学小学生
Cが出来て中学生
C++が出来て高校生
Javaが出来て大学生
0005デフォルトの名無しさん
2009/11/14(土) 21:03:19人が多いのと同じ。しかし、ポインタが使えない言語の難しさは
すぐにはわからないだけ
0006デフォルトの名無しさん
2009/11/14(土) 21:16:050007デフォルトの名無しさん
2009/11/14(土) 21:27:370008デフォルトの名無しさん
2009/11/14(土) 21:29:200009デフォルトの名無しさん
2009/11/14(土) 23:06:19初等的と呼ぶほうが良いかも
初等的が簡単というのは嘘。初等的なもののほうが高等なもの
に較べて難しいことが多い。負の数の概念を知らない小学生
が鶴亀算に苦労することでわかる。
じゃ高等的なものが易しいのかと言えばこれも嘘。まったく
別の次元の難しさがあるだけ。
0010デフォルトの名無しさん
2009/11/14(土) 23:14:560011デフォルトの名無しさん
2009/11/14(土) 23:27:31ハードウェアにソフトウェアが相当に組み込まれている現在
古いハードウェアに近い記述が出来ること=低級じゃないだろ?
ハードウェアと切り離されて一人歩きしつつあるのがプログラ
ミング言語
0012デフォルトの名無しさん
2009/11/15(日) 00:56:010013デフォルトの名無しさん
2009/11/15(日) 01:18:57が多い
0014デフォルトの名無しさん
2009/11/15(日) 01:30:21CPU の構造をってことね。
0015デフォルトの名無しさん
2009/11/15(日) 02:23:44既にある
LISPマシンとかJavaネイティブマシンとか
0016デフォルトの名無しさん
2009/11/15(日) 02:27:23高級言語が出来る→ OSが発達してプログラマに言語派閥が出来るW
→ CPUメーカーも言語に合わせた便宜を計る
→CPUが巨大化してハードとソフトの境界線が曖昧になる
→ソフトウェア技術者が居なくなってOSがハードが主体になる
→衰退
この歴史の繰り返しだろw
0017前959
2009/11/15(日) 02:58:51>>前988
printf("1ドル=%fポンド, (float)doll/pond);
printf("1ドル=%fポンド, (float)pond/doll);
の、どっちかしか無いだろ。
0018デフォルトの名無しさん
2009/11/15(日) 03:07:510019前959
2009/11/15(日) 03:31:35#include <stdio.h>
int main(void) {
int doll=90, pond=149;
printf("1米ドルと1英ポンドの値を入力してください > ");
scanf("%d%d", &doll, &pond);
printf("1ドル=%d円, 1ポンド=%d円\n", doll, pond);
printf("1ドル=%fポンド\n", (float)doll/pond );
printf("1ポンド=%fドル\n", (float)pond/doll );
return 0;
}
0020デフォルトの名無しさん
2009/11/15(日) 03:43:22正しい日本語で・・・
0021デフォルトの名無しさん
2009/11/15(日) 05:12:11その例えに反対する人の考えが異常とは言えないけど
それぞれの言語には長所も短所もあるし、オールマイティー
な言語は無いと考るのは正しいと思う
0022デフォルトの名無しさん
2009/11/15(日) 08:30:11Intel系とC言語とは、互いに相手に合わせてるけどな。
0023デフォルトの名無しさん
2009/11/15(日) 09:22:10[3.1]windows上のvmware 実際はlinux
[3.2]gcc
[3.3] c
[4]091116まで
サーバー ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10116.c
クライアント ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10117.c
コンパイルのオプションは-lsocket -lnsl -lresolv -lcurses -lrt
クライアント側がconnectに失敗して通信できなくて困ってる
修正したコードは載せなくていいので悪そうな点を教えてください。書き方が汚い点はご愛嬌でどうかよろしくお願いします
0024デフォルトの名無しさん
2009/11/15(日) 12:30:17[1] C言語(初心者)
[2] http://www-it.sci.waseda.ac.jp/CPR1/class12/20091026-submit.pdf
の下の方のページにある大レポート
[3] 環境
[3.3] 言語:C言語
[4] 期限: 11月16日
[5] その他の制限:数学関数、配列は使用不可、ページに詳細あり
何度やっても上手くいきません。解答お願いします。
0025デフォルトの名無しさん
2009/11/15(日) 12:39:10どこまで出来たか>>1のアップローダーに上げてみたら
それに、レポートに2chのURL載せることになるんじゃないの・・・
0026デフォルトの名無しさん
2009/11/15(日) 13:05:28int main(void)
{
int i, flg = 1;
double pi = 0.0, a = 1.0/2, b = 1.0/3;
for(i=0; i<=100; i++, a/=4, b/=9, flg*=-1) pi += flg * 4 * (a + b) / (2 * i + 1);
printf("%.8f\n", pi);
return 0;
}
パイだけ。
自分が作った物をあげました。設問1のパイを求める所で正しい数値が出らず
先へ進めなくてこまっています。私初心者でなぜ間違っているか分からない状態です。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10119.txt
Nが奇数の時に値が正常にでなくて困っております。
短いコードですがよろしくお願いします。
0028デフォルトの名無しさん
2009/11/15(日) 13:11:271.0にするとか(double)でキャストするとかしないと
解答ありがとうございます。
しかし、問題のページにあるように"flg"というものはまだ習っていなくて
使ってはいけないことになっています。
そのため問題のページ21以降のヒントに書いてあるやり方でなくてはならないようです
どうぞよろしくお願いします。
0030デフォルトの名無しさん
2009/11/15(日) 13:15:41if(i%2) pi -= 4 * (a + b) / (2 * i + 1);
else pi += 4 * (a + b) / (2 * i + 1);
}
0032デフォルトの名無しさん
2009/11/15(日) 13:36:34-1とjはint
0033デフォルトの名無しさん
2009/11/15(日) 13:44:24これ
ありがとうございます解決することができました。
0035アク禁中につきレス代行中
2009/11/15(日) 18:35:08echo_server.c:93
初期化されていないport
port = PORT;とかport = atoi(argv[1]);とかやるんじゃないのか
ERRが既にdefineされている
一般的にはif ( foo() == ERR )ではなく、if ( foo() < 0 )が使われる
0036デフォルトの名無しさん
2009/11/15(日) 19:50:03[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10045.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VS2008
[3.3] 言語: C++
[4] 期限: 2009/11/15 24時まで
本日の24時までなので、宜しくお願い致します。
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10121.txt
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio2008
[3.3] 言語:C
[4] 期限:[2009年11月17日23:59まで]
[5] その他の制限:問題文を書き換えるだけ
お願いします。
0038デフォルトの名無しさん
2009/11/15(日) 20:38:39画像フォーマットのサンプル画像をうpしました。
問題の方もメモとして同梱しました。
ご指導よろしくお願いします。
ttp://www.boxloader.net/small/
ファイル名:sb12623.zip
ダウンロードキー:969
0039デフォルトの名無しさん
2009/11/15(日) 20:46:25#include <iostream>
#include <string>
class Human{
public:
std::string name;
double height, weight;
Human(std::string, double, double);
};
Human::Human(std::string name, double height, double weight){
this->name = name;
this->height = height;
this->weight = weight;
}
int main(){
Human member("田中太郎", 170.5, 68.4);
std::cout<<member.name<<"さんの身長は、"<<member.height<<"cmで、体重は、"<<member.weight<<"kgです。"<<std::endl;
return 0;
}
0040デフォルトの名無しさん
2009/11/15(日) 21:13:36>printf("%d個の整数を昇順に入力してください。\n", nx);
printf("%d個の整数を降順に入力してください。\n", nx);
>while(x[i]<=x[i-1]);
while(x[i]>=x[i-1]);
>else if(a[pc] < key)
else if(a[pc] > key)
迅速な対応に感謝します。
ありがとうございました。
0042デフォルトの名無しさん
2009/11/15(日) 22:57:19[2] 問題文(含コード&リンク):
下記の文字列を2次元配列に入力する。
LISP
C++
Ada
次に配列の2列の文字
S+a
を表示する。
[3] 環境
[3.1] OS:Windows XP
[3.3] 言語C++
[4] 期限:明日まで
[5] その他の制限:特にないです。
お願いします
0043デフォルトの名無しさん
2009/11/15(日) 23:11:12[2] 問題文(含コード&リンク):
問題1
整数型の変数x, y, z を用意し,それぞれに1 ,2, 3 を代入せよ.その後,整数型の変数ans に合計を代
入せよ.その値をprintf で表示せよ.
問題2
半径r = 5 の円の演習L,面積S を求めるプログラムを作成せよ.ただし円周率は3.14 とする.
問題3
整数型変数a=255,b=16 としたとき,a+b, a-b, a*b, a/b を求めprintf で表示せよ.適切な形式で結果
が表示されるようにすること.
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visual studio2008
[3.3] 言語:C
[4] 期限:[2009年11月17日まで]
[5] その他の制限:問題数多いですが、お願いします。
0044デフォルトの名無しさん
2009/11/15(日) 23:18:50これでいい?完璧に動くようになったよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10122.c
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10123.c
0045デフォルトの名無しさん
2009/11/15(日) 23:26:32問題1
#include <stdio.h>
int main(void)
{
int x, y, z, ans;
x = 1;
y = 2;
z = 3;
ans = x + y + z;
printf("%d", ans);
return 0;
}
問題2
#include <stdio.h>
int main(void)
{
int r = 5;
printf("L=%f S=%f", 2 * r * 3.14, r * r * 3.14);
return 0;
}
問題3
#include <stdio.h>
int main(void)
{
int a = 255, b = 16;
printf("a + b = %d\n", a + b);
printf("a - b = %d\n", a - b);
printf("a * b = %d\n", a * b);
printf("a / b = %d\n", a / b);
return 0;
}
0046デフォルトの名無しさん
2009/11/16(月) 00:25:32係数を『初期化』を使って配列に入力する
キーボードから入力する
形
a00x+a01y+a02z=α
a10x+a11y+a12z=β
a20x+a21y+a22z=γ
#include <iostream>
using namespace std;
int main() {
return 0;
}
って感じでお願いできませんか?本当に分からないんです
0047デフォルトの名無しさん
2009/11/16(月) 00:27:09/ // /| ト--ミ、、_:::::::::::::`:"'':―┼――――l / /
/ / | ト--ミ、、_:::::::::::::::`:"'':―┼――――l
`'ー-‐''" ヽ、_ .,ト--ミ、、_:::::::::::::::::`:"'':―┼――――l
/ /ミミ三三ミ'ー‐-- 、、_:::::::|:::::::::::::::::::::::j
か っ .テ | .{ミミミ三三、 、ー=、`'┴―――fミ', //
ァ て ン. | ミミミミミ三シ . . . . `―'ノ l ii l (ヲ lミil
| 約 .プ ヽ!ミミミミf'" _,,.,,_:.:.:.:,. _j_ .:.:.:. lミリ /
| 束 レ >!ミミO 。',ィでiンミ、:.:.、__, -,ィも=、',l:l′
| し 守 /,ヾミミ' o ,,゜, ̄`゙`ラ .:. 三 f"´ ̄゜o O
| た ら |.へ}ミミ `二ニノ ,、 jl ',` ―''" ,l!
| じ ず |二ノミ' u ,ィ'" ト、 ,!
ッ .ゃ .に |fソ!'ミ / `^ヽ,_ノi " ,' /
! ! な 質 ',{i,ミ' / _,,...,_,,..,、l /. /
い 問 ヽN, / ,ィiTTTTTト, ,} ,/ // / /
で は ./. / ,/⌒'ー'‐'‐'‐',リ l /. /
す し /'、ヽ .l {,ゝ、‐r‐'ン-i/ ,/ , イレ、、/ /
な 〈 ヽ丶 丶 ヾくZェェェシ' ノ ,i'lヽ、 `ヾー--、_
い '⌒ヽ´ヽ 丶、 ` ` ‐ -- ‐'".,/ノ,l \ \ ヽ
0048デフォルトの名無しさん
2009/11/16(月) 00:29:33問題3最後のprintfって型変換すべき?
004946
2009/11/16(月) 00:41:35[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
3元3列の連立方程式の係数を格納し、格納された結果を表示するプログラムを作成せよ。ただし次の2つのパターンでプログラムせよ。
係数を『初期化』を使って配列に入力する
キーボードから入力する
[3] 環境
[3.1] OS:xubuntu
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:[2009年11月17日まで]
[5] その他の制限:配列を使ってやるっていうのと、cout→出力、cin→入力って感じですね。あと、上にも書いた始まりと終わりを46に書いた、あの様にしてくれると(もしかしたらcmathは入るかもしれませんが)ありがたいです。
0050デフォルトの名無しさん
2009/11/16(月) 00:49:16[2] 問題文(含コード&リンク):
1.数値の入力されたテキストファイルを引数から読み込み、合計を求めるプログラムを作れ。
各行を2次元配列に格納する。何も入力されてない行か、0のみの行があれば読み込み終了。その後計算を行う。
〜入力ファイル例〜
908
29
3095
5968
のように改行で終わるか、
9824
2554
4869
0
で終了
2.テキストファイルを引数から読み込み、中のデータの順を入れ替えて出力。
〜入力例〜
あいう
えお
〜出力例〜
おえ
ういあ
コマンドプロンプト上に出力し、さらに「入力ファイル名-out.txt」の形でファイル出力も行え
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン: BCC
[3.3] 言語: C言語
[4] 期限: 11月20日正午
0051デフォルトの名無しさん
2009/11/16(月) 00:49:40#include <iostream>
int main()
{
char array[][5] = {"LISP","C++","Ada"};
for (int i = 0; i < 3; i++) {
std::cout << array[i][2];
}
std::cout << std::endl;
return 0;
}
0052デフォルトの名無しさん
2009/11/16(月) 00:50:43整数変数同士の/の結果は整数なのがC言語の規格。
型変換をしたら問題に反することになる。
0053デフォルトの名無しさん
2009/11/16(月) 01:15:511.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10125.cpp
0054デフォルトの名無しさん
2009/11/16(月) 01:43:592.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10126.cpp
0055デフォルトの名無しさん
2009/11/16(月) 02:22:41[2] 問題文(含コード&リンク):配列[ysize][xsize]内にある値を順番に符号化してゆく
[3] 環境
[3.1] OS:windows xp
[3.2] コンパイラ名とバージョン: Microsoft Visual C++
[3.3] 言語: C++
[4] 期限: 2009年11月19日23:59まで
画像圧縮に詳しい方お願いします。
研究課題の一つでjpeg圧縮の符号化部分についてです。
今の段階はレベルシフト、DCT、量子化を終えた後で、8x8=64ブロックの量子化データを
ジグザグスキャンし配列q[64]に格納しています。(現段階ではDC成分とAC成分は混同しています。)
その後、各値に対しハフマン符号を割り当てるまでは思いつくのですが、実際に符号化し、ファイルに出力
するまでの流れが分かりません。
お願いします。
0056アク禁中につきレス代行中
2009/11/16(月) 06:55:56JPEG―概念からC++での実装まで-橋本-晋之介
http://www.amazon.co.jp/dp/4797330457
をお薦めする
しかしながら、Amazonではもう取り扱ってないみたい
大抵の大学の図書館には置いてあると思う
[2] 問題文(含コード&リンク):ttp://www-it.sci.waseda.ac.jp/CPR1/class12/20091026-submit.pdf
"17ページ"に問題。17ページ以降に解答の手法の制限などの記述あり。
[3] 環境
[3.3] 言語:C言語
[4] 期限:11月16日
[5] その他の制限: 配列はまだ習っていない程度の知識、手法を用いて
昨日も質問した者ですが、"問題2"で詰まってしまいました。自分が書いたソースは
htp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10124.txt です
短いコードですが、どこの箇所で間違ってしまったのかご指摘お願いします。
0058デフォルトの名無しさん
2009/11/16(月) 10:32:14[2] 問題文(含コード&リンク):
問題
キーボードから3つの整数を入力し,その合計と平均を求めて表示しなさい.
問題
キーボードから3つの数値をfloat 型変数に読み込み,その合計と平均を求めて表示しなさい.
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visual studio2008
[3.3] 言語:C
[4] 期限:[2009年11月17日まで]
[5] その他の制限:
0059デフォルトの名無しさん
2009/11/16(月) 10:46:12int main(void)
〔
float n1,n2,n3,sum,ave;
puts("3つ数字いれろ");
printf();scanf();
printf();scanf();
printf();scanf();
sum
ave
printf();
return(0);
}
携帯からだからこれが限界
0060デフォルトの名無しさん
2009/11/16(月) 10:48:38[2] 問題文(含コード&リンク):
問題1
長方形の面積を求めるプログラムを作成しなさい。
問題2
5人分の体重をキーボードから入力し、平均を求めるプログラムを作成しなさい。
問題3
平成の年を入力し,西暦に変換するプログラムを作成しなさい。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年11月18日まで]
[5] その他の制限: 特になし。
よろしくお願いします。
0061デフォルトの名無しさん
2009/11/16(月) 11:16:15[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10087.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:出来るだけ早めに
よろしくお願いします
0062デフォルトの名無しさん
2009/11/16(月) 12:20:38[2] 問題文(含コード&リンク):
問1:キーボードから身長を入力し、170cm以上なら「高い」と表示し、
そうでなければ「低い」と表示するプログラムを作成しなさい。
問2:キーボードから身長を入力し、
180cm以上なら「高い」、
150cm以上、180cm未満なら「普通」、
150cm未満なら「低い」と表示するプログラムを作成しなさい。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年11月18日まで]
[5] その他の制限:
お願いします。
006349
2009/11/16(月) 12:24:310064デフォルトの名無しさん
2009/11/16(月) 12:44:36[2] 問題文(含コード&リンク):
問題
キーボードから10人分の身長を入力し、
180cm以上なら「高い」、
150cm以上、180cm未満なら「普通」、
150cm未満なら「低い」と表示するプログラムを作成しなさい。
問題
キーボードから10人分の身長を入力し、
合計と平均を計算し、表するプログラムを作成示しなさい。
(なお小数点以下は無視して下さい。)
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年11月18日まで]
[5] その他の制限:
0065デフォルトの名無しさん
2009/11/16(月) 12:48:14>for(k=1;k>1;k++){
これじゃループ実行されない
>l++;
lってどこから出てきたの?
0066デフォルトの名無しさん
2009/11/16(月) 12:48:49http://www.google.co.jp/search?hl=ja&q=170%EF%BD%83%EF%BD%8D%E4%BB%A5%E4%B8%8A%E3%81%AA%E3%82%89%E3%80%8C%E9%AB%98%E3%81%84%E3%80%8D%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%97&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
googleで「170cm以上なら「高い」と表示し」を検索しました。
0067デフォルトの名無しさん
2009/11/16(月) 12:56:13[2] 問題文(含コード&リンク):
1から100までの数の合計を計算し、表示するプログラムを作成しなさい。
キーボードから10人分の身長を順次、配列に記録し、全部を入力してから、10人の身長を表示しなさい。さらに合計と平均を計算して表示するプログラムを作成しなさい。
※配列を使う問題
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年11月18日まで]
[5] その他の制限:
0068デフォルトの名無しさん
2009/11/16(月) 13:04:13[2] 問題文(含コード&リンク):
あなたのマシンのIPアドレスを表示しなさい
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: どちらでも可
[4] 期限: 11/17
[5] その他の制限: 特になし ライブラリも好きなものを用いて良い。 ただし出来る限り簡潔に書くこと
よろしくお願いします
0069デフォルトの名無しさん
2009/11/16(月) 13:12:44puts("127.0.0.1");
0070デフォルトの名無しさん
2009/11/16(月) 13:49:52[2] 1から100,000,000までの数を列挙する。
nまで書き終わった時点でそれぞれの数字dがtimes[d] (0<=d<=9)回使われていたとする。
times[d]が小さい順にdを並べて順列を作る。(同じ回数の場合dが大きいほうが後)この順列が最初累積何回変わったか
nが1000の倍数毎の表にして出力(100000まで)
回数と順位を要素とする構造体配列を使うこと
[3] Windows vista/Visual studio 2008/C言語
[4]本日中
ポインタは習っていません
急いでます。苦しいです。よろしくです。
0071デフォルトの名無しさん
2009/11/16(月) 14:14:09自分のIPは203から始まるのに
127から始まるIPが表示されました
何かおかしいのではないでしょうか?
0072デフォルトの名無しさん
2009/11/16(月) 14:15:33[2] 1から100000までの数を列挙する。
nまで書き終わった時点でそれぞれの数字dがtimes[d] (0<=d<=9)回使われていたとする。
times[d]が小さい順にdを並べて順列を作る。(同じ回数の場合dが大きいほうが後)この順列が最初からそれまでに累積何回変わったか
nが1000の倍数毎に表にして出力(100000まで)
回数と順位を要素とする構造体配列を使うこと
[3] Windows vista/Visual studio 2008/C言語
[4]本日中
ポインタは習っていません
急いでます。苦しいです。よろしくです。
0073デフォルトの名無しさん
2009/11/16(月) 14:38:20int main(void)
{
int i, j, k, times[10] = {0}, num[10], flg, cnt = 0;
for(i=0; i<10; i++) num[i] = i;
for(i=1; i<=100000000; i++) {
for(j=i; j; j/=10) times[j%10]++;
for(j=9,flg=0; j>0; j--) {
for(k=0; k<j; k++) {
if((times[num[k]] > times[num[k+1]]) ||
(times[num[k]] == times[num[k+1]] && num[k] > num[k+1])) {
int temp = num[k];
num[k] = num[k+1];
num[k+1] = temp;
flg = 1;
}
}
}
if(flg) cnt++;
if(i%1000 == 0) printf("%d:%d\n", i, cnt);
}
return 0;
}
0074デフォルトの名無しさん
2009/11/16(月) 14:55:22[2] 問題文(含コード&リンク):
問題1
二次元配列に九九の表をいったん格納する(初期化で代入することは禁じる)。その後、それらの値のルートをとった結果を表形式で出力するプログラムを作れ。
問題2
キーボードから50文字までの文字列(アルファベット、数字、記号の半角)を5つ入力する。入力がすべて終了したら、最後に入力した文字列から順番に出力するプログラムを
作成せよ。文字列は2次元配列に格納すること。
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年11月18日まで]
[5] その他の制限:
007572
2009/11/16(月) 15:17:03大変助かりました。
ありがとうございます。恐縮です。ついでな質問で
申し訳ございませんが、codepadで実行を確認しました
が表示が多少変でした。timeoutは仕方がないと思ってます。
実行確認ページ http://codepad.org/9lwH5O5S
どこを直せばいいですか?あと構造体配列はtimesだと
書いて大丈夫ですよね
0076デフォルトの名無しさん
2009/11/16(月) 15:51:15[2] 問題文(含コード&リンク):
問題1
次の文章をプログラム中に文字列として与える.
The metropolitan government and the Tokyo 2016 Bid Committee had a budget of 15 billion yen to campaign to host the Games, of which 10 billion yen was shouldered by the metropolitan government.
アルファベット(ピリオド含む,大文字,小文字は区別しない),数字がそれぞれ何回出現したかをカウントして出力するプログラムを作成せよ
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年11月18日まで]
[5] その他の制限:
0077デフォルトの名無しさん
2009/11/16(月) 17:07:47解決しました
0078デフォルトの名無しさん
2009/11/16(月) 17:30:02#include<stdio.h>
//#define scanf scanf_s
#define pi 3.14159265
int main(void) {
double pi6pi = pi*pi/6;
double z=0, w=0, y=0; // z,w,yの詳細は以下で説明
int k;
printf("Input the volume of error:");
scanf("%lf", &z); // zは実行の際自分で設定する誤差
for(k=1; ; k++) {
w += 1.0/(k*k); // wはシグマの値
y = pi6pi - w; // yは評価の式の左辺の値
if(y < z) break; // ループを抜ける条件
}
printf("The smallest integer is %d.", k);
return 0;
}
0080デフォルトの名無しさん
2009/11/16(月) 19:32:02pus("fusianasan");
0081デフォルトの名無しさん
2009/11/16(月) 20:24:46[2] 問題文(含コード&リンク):公開鍵と秘密鍵を作り、これらを使い暗号化と復号化を行うプログラムを書け。(RSA暗号)
[3] 環境
[3.1] OS: Windows/vista
[3.2] コンパイラ名とバージョン:VS2008
[3.3] 言語: C++
[4] 期限: 2009/11/17朝まで
暗号化と復号化の手順は
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10129.txt
C言語が苦手なもので・・よろしくお願いします。
0082デフォルトの名無しさん
2009/11/16(月) 20:33:56テキストの一番下切れてない?
0083デフォルトの名無しさん
2009/11/16(月) 20:40:33「This is Anser
」をつけ忘れてしまいましたw特に問題はないと思います。。
0084デフォルトの名無しさん
2009/11/16(月) 22:21:251.係数を『初期化』を使って配列に入力する
2.キーボードから入力する
聞いてみたら問題に、そうは書いてあるけど、連立方程式は考えないでよくて、下の1.2をやるみたいなんですが、どうやるか分かる人いますか?
a00x+a01y+a02z=α
a10x+a11y+a12z=β
a20x+a21y+a22z=γ
0085デフォルトの名無しさん
2009/11/16(月) 22:23:37#include <iostream>
using namespace std;
int main() {
int i,j;
double a00,a01,a02,a10,a11,a12,a20,a21,a22;
double a[3][3]={{a00,a01,a02},{a10,a11,a12},{a20,a21,a22}};
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
cout("%9f",a[i][j]);
} cout << '\n';
} cout << '\n';
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
cout << "a[%d][%d] = i,j\n";
cin >> "%lf",&a[i][j];
}
}
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
cout << "%9f",a[i][j];
} cout << "\n";
} cout << "\n";
return 0;
}
多分、%9fとか書いてる所が違うんですよね
0086デフォルトの名無しさん
2009/11/16(月) 22:51:20レスありがとうございます。
その本は軽く目を通したのですが詳しすぎて理解出来ませんでした。
c++の知識はポインタまでをさらっと習った程度なので・・・
専門分野過ぎましたね。
0087デフォルトの名無しさん
2009/11/16(月) 23:27:41ttp://codepad.org/hLN4NkP1
0088デフォルトの名無しさん
2009/11/16(月) 23:42:16[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10130.txt
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 11月23日(月)まで
[5] その他の制限:リンクにある演習E5(1)を参考に
よろしくお願いします。
0089http://pc12.2ch.net/test/read.cgi/tech/1255709298/654
2009/11/16(月) 23:45:33http://codepad.org/WHr1H5tv
結果は 11 くらいになりました。しっかりと結果を検証したわけではないので‥‥‥お友達の結果と比較してくださいね。
0090デフォルトの名無しさん
2009/11/17(火) 00:42:45ごめんなさい。ありがとうございます。何か連立方程式を解くって言うのを抜いて考えるらしくて、
普通に行列を2つの問の様に作るようなんです…
0091デフォルトの名無しさん
2009/11/17(火) 00:45:17ありがとうございます
0092デフォルトの名無しさん
2009/11/17(火) 00:48:24ありがとうございます!
0093デフォルトの名無しさん
2009/11/17(火) 03:56:47[2] 問題文(含コード&リンク):入力した文字列中のアルファベットについて、大文字なら小文字、小文字なら大文字に変換するプログラムを作成せよ。
また、アルファベット以外の入力は全て'*'に置き換えるようにすること。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限: 2009/11/18まで
[5] その他の制限:特にありません
0094デフォルトの名無しさん
2009/11/17(火) 04:29:23#include <stdio.h>
#include <ctype.h>
#define BUFF_SIZE 512
int main()
{
int i;
char buff[BUFF_SIZE];
printf("アルファベットを入力してください\n> ");
fgets(buff, BUFF_SIZE, stdin);
for (i = 0; (buff[i] != '\0') && (buff[i] != '\n'); i++) {
if (islower(buff[i]))
buff[i] = toupper(buff[i]);
else if (isupper(buff[i]))
buff[i] = tolower(buff[i]);
else
buff[i] = '*';
}
printf("変換後の文字列: %s\n", buff);
return 0;
}
0095デフォルトの名無しさん
2009/11/17(火) 04:37:06#include<stdio.h>
int main(void)
{
char c = 'y'; /* 名前の先頭のローマ字 */
char abc[] = "abcdefghijklmnopqrstuvwxyz!";
int i = 0;
while(abc[i] != c && abc[i] != '\0')
i++;
printf("%c\n", abc[i + 1]);
return 0;
}
0096デフォルトの名無しさん
2009/11/17(火) 05:24:40http://codepad.org/XVZvXGz0
0097デフォルトの名無しさん
2009/11/17(火) 06:42:59みたいな構造体でmeibo_t[]にループでどんどんデータを入れて生きたいのですがどうすれば良いですか?
int a= 0; meibo[a]=みたいにするとエラーがでますし、何か[0]にどんどん数字が足されてるような気がします
};
0098デフォルトの名無しさん
2009/11/17(火) 10:22:50http://pc12.2ch.net/test/read.cgi/tech/1256818218/l5
#include <stdio.h>
int main(void) {
struct meibo {char name[20];int eigo; int kokugo;};
struct meibo meibo_t[10], meibo_s={"aaa", 60, 90};
int a;
for(a=0; a<10; a++) {
meibo_s.eigo = 60+a;
meibo_s.kokugo = 90+a;
meibo_t[a] = meibo_s;
}
return 0;
};
0099デフォルトの名無しさん
2009/11/17(火) 11:18:410100デフォルトの名無しさん
2009/11/17(火) 15:02:28レポート課題ってやつを誰か教えてください
0101デフォルトの名無しさん
2009/11/17(火) 15:05:110102デフォルトの名無しさん
2009/11/17(火) 15:11:360103100
2009/11/17(火) 15:48:21main()
{
double pai,k,N,x,y,z;
pai=3.14159;
k=1.0;
x=(pai*pai)/6.0;
y=0;
z=0;
z=x-y;
while(z<0.01)
{
while(k<=N)
{
y+=1.0/(k*k);
}
}
printf("最小のNは,%dです.\n",N);
}
で合ってますか?
0104デフォルトの名無しさん
2009/11/17(火) 16:29:150105100
2009/11/17(火) 16:30:250106デフォルトの名無しさん
2009/11/17(火) 17:32:26[2] 問題文(含コード&リンク):
ベクトルの加減、ベクトルの内積、2つのベクトルのなす角度cosθ
2つのベクトルを適当に初期化して行う事
[3] 環境
[3.1] OS:xubuntu
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:[2009年11月20日まで]
[5] その他の制限:cout→出力、cin→入力、配列を使う事、
#include <iostream>
using namespace std;
int main() {で始めて
return 0;
}で終わるようにする。もしかしたらcmathとかくらい入るかも知れませんがこんな感じです
0107106
2009/11/17(火) 17:34:14あと、配列は一次元配列(もしかしたら二次元配列も使わないとできないかも)使います。
0108デフォルトの名無しさん
2009/11/17(火) 18:36:58ありがとうございます!
0109デフォルトの名無しさん
2009/11/17(火) 19:04:11#include <stdio.h>
main()
{
double pai,x,y,z;
int k;
pai=3.14159;
k=0;
x=(pai*pai)/6.0;
y=0;
z=x-y;
while(z>0.01)
{
k++;
y+=1.0/(k*k);
z=x-y;
}
printf("最小の k は %d です.\n", k);
}
0110デフォルトの名無しさん
2009/11/17(火) 21:11:29[2] A1...Anさん(n>1)とN枚(N>1のカードがある。A1..Anさんは次の操作を
交代交代で平等な機会のもとに行う。
操作: カードをM枚(M<N)ランダム(予約済みを除く)に選択し
カードが白紙状態なら鉛筆で自分の名前を書き、自分の経験値に1を足す
カードに自分の名前が書いてあるならばそれを消しゴムで消して、
経験値に1を足す。
カードに他人の名前が書いてあるならばそれに関してはなにもし
ないが、そのカードに関してはもういちど引くことが予約される。
経験値は各自最初は0とする。この操作が繰り返されていくとやがて
誰も経験値が増えない状態になることがある。nとNとMを適当に選んで
どの位で(各自の経験値の平均が指標)そういう状態になるか多数回行って
統計的にそれを調査するプログラムを作ってください。
[3]Linux/gcc4.0/C言語
[4] 11/23まで
よくわかってません。問題文写し間違いかもしれないのでよろしくです
0111110
2009/11/17(火) 21:27:12カードも初期状態では白紙とする
0112デフォルトの名無しさん
2009/11/17(火) 21:31:07がよくわからないのですが。
0113デフォルトの名無しさん
2009/11/17(火) 21:40:53例えばM=3として、1番と5番と10番のカードを引いて、1番と10番に
関しては名前を書いたり消したりすることができたが、5番には既に
他人の名前が書いてあったとする。この時、次の番にはもう一度5番を
引かなければならない
という意味じゃないかと
0114デフォルトの名無しさん
2009/11/17(火) 21:49:58で、その5番は、また、次の時にも引いてこなければならないわけですか?
0115デフォルトの名無しさん
2009/11/17(火) 22:02:05>>826-829
今更ですがありがとうございました
0116デフォルトの名無しさん
2009/11/17(火) 22:02:20名前を書く、消す、次回回しにする
これらの操作は一つのカードに関して一回の機会で排他的に1回だけ
と解釈するしかなさそうだけどそれでもおkかどうかだな
011723
2009/11/17(火) 22:05:11今日それをコンパイルして動かしてみたんだけどもクライアント側を移動させた場合
なぜか7回以上のキー入力を受け付けなくなってストップする
exitされたわけでもなくただフリーズした状態っぽい
あとクライアントの入力に対してちゃんとwriteもしくはサーバでreadできてないらしくて
サーバ側の画面に入力が反映されない。サーバ→クライアントはクライアントで7回入力するまでは問題無しでした
しっかりconnectできてました。ありがとう
0118デフォルトの名無しさん
2009/11/17(火) 22:12:11[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10132.txt
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 明日までっす
すみませんよろしくお願いします
0119デフォルトの名無しさん
2009/11/17(火) 22:18:340120デフォルトの名無しさん
2009/11/17(火) 22:20:35#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, n, ans;
srand(time(NULL));
ans = rand() % 100;
for(i=1;;i++) {
printf("%d回目です。いくつだと思いますか?", i);
scanf("%d", &n);
if(ans > n) printf("もっと大きいです\n");
else if(ans < n) printf("もっと小さいです\n");
else break;
}
printf("当たりです\n");
return 0;
}
0121デフォルトの名無しさん
2009/11/17(火) 22:50:22早っ!
ありがとうございます!
0122デフォルトの名無しさん
2009/11/17(火) 23:07:46#include <time.h>っていらないんですか?
0123デフォルトの名無しさん
2009/11/17(火) 23:25:04[2] 問題文(含コード&リンク):
文字列GHIJKLMABCDERSTUVWFNOPQXYZに対して入力した文字列の第1文字目と第2文字目の間にある文字列を表示するプログラムを作る。
例:入力文字列がCQであったときCDERSTUVWFNOPQを表示する。
[3] 環境
[3.1] OS:Windows XP
[3.3] 言語C++
[4] 期限:19日まで
0124デフォルトの名無しさん
2009/11/17(火) 23:36:46>>120だけならstdlib.hだけで十分
0125デフォルトの名無しさん
2009/11/17(火) 23:38:58#include<string>
#include<iostream>
int main(void)
{
std::string str="GHIJKLMABCDERSTUVWFNOPQXYZ";
int first, second;
char first_char, second_char;
first_char='C';
second_char='Q';
std::cin >> first_char;
std::cin >> second_char;
if((first=str.find(first_char))==std::string::npos) return 1;
if((second=str.find(second_char))==std::string::npos) return 1;
for(int i=first;i<=second;i++) std::cout << str[i];
for(int i=second;i<=first;i++) std::cout << str[i];
return 0;
}
0126125
2009/11/17(火) 23:41:44#include<string>
#include<iostream>
int main(void)
{
std::string str="GHIJKLMABCDERSTUVWFNOPQXYZ";
int first, second;
char first_char, second_char;
std::cin >> first_char;
std::cin >> second_char;
if((first=str.find(first_char))==std::string::npos) return 1;
if((second=str.find(second_char))==std::string::npos) return 1;
for(int i=first;i<=second;i++) std::cout << str[i];
for(int i=second;i<first;i++) std::cout << str[i];
return 0;
}
0127デフォルトの名無しさん
2009/11/17(火) 23:45:59http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/30
0128デフォルトの名無しさん
2009/11/17(火) 23:55:01速いレス、ありがとうございます。
0129デフォルトの名無しさん
2009/11/18(水) 00:05:510130125
2009/11/18(水) 00:11:01for(int i=second;i<first;i++) std::cout << str[i];
↓
if(first!=second) for(int i=second;i<=first;i++) std::cout << str[i];
もうダメだ寝る
0131デフォルトの名無しさん
2009/11/18(水) 00:11:200132 ◆DOp/dR22WY
2009/11/18(水) 05:48:04[2] 問題文(含コード&リンク):txtファイルを複製するGUIプログラムを作りなさい
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:borland
[3.3] 言語:どちらでも可
[4] 期限:11月18日10時まで(無茶な期限で申し訳ありません)
[5] その他の制限:要望なのですが、OKボタンを押すとコピーができるようなものになっているとありがたいです。
[2] 問題文(含コード&リンク):txtファイルを複製し、新たなtxtファイルを作るGUIプログラムを作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:borland
[3.3] 言語:どちらでも
[4] 期限:11月18日朝10時(無茶ですが、よろしくお願いします)
[5] その他の制限:要望なのですが、起動するとコピーするか否かを問われ、OKボタンを押すとコピーするようなものだとありがたいです。細かいニュアンスはこちらで変えられます。
0135デフォルトの名無しさん
2009/11/18(水) 09:29:45[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10133.txt
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C
[4] 期限:11月18日朝10時30分
[5] その他の制限:特になし
よろしくお願いします
0136デフォルトの名無しさん
2009/11/18(水) 10:31:50期限:11月20日朝10時30分 でした
0137137
2009/11/18(水) 10:33:17#include<stdio.h>
main(){
int a,b,min,k;
scanf("%d", &a);
min = a;
k=0;
do{
scanf("%d", &b);
// if(min > b)
if(min < b)
min = b;
k++;
}
//while(k<2);
while(k<4);
printf("%d\n", min);
}
// for文を用いて書き換えよ。
#include<stdio.h>
main(){
int a,b,min;
scanf("%d", &a);
min = a;
for(;;){
scanf("%d", &b);
if(b <= 0) break;
if(min > b) min = b;
}
printf("%d\n", min);
}
0138デフォルトの名無しさん
2009/11/18(水) 10:36:11ありがとうございます
0139デフォルトの名無しさん
2009/11/18(水) 10:37:32ありがとうございます
0140デフォルトの名無しさん
2009/11/18(水) 10:59:35多重繰り返し文を使って,z=1-(x2+y2)とz=0平面とで 囲まれる領域の体積の近似値を求めよ.
です。よろしくおねがいします。
0141デフォルトの名無しさん
2009/11/18(水) 11:09:23[2] 問題文:
整数値として入力された数を素因数分解するプログラムを作成せよ。
表示は、612 = 2^2*3^2*17のようにする、これは2の2乗×3の2乗×17という意味である
[3] 環境
[3.1] OS:WindowsXP
[3.2]visual studio2008
[3.3] 言語:C
[4] 期限:11月18日20時、無理な期限ですいません
普通に全部×で表示するものはできたんですが、612 = 2^2*3^2*17と^をつかい、〜の何乗と表現するやり方がわかりませんでした。
よろしくおねがいします。
0143デフォルトの名無しさん
2009/11/18(水) 11:27:13#include <stdio.h>
int main(void)
{
int i, j, n;
scanf("%d", &n);
printf("%d = ", n);
for(i=2;;i++) {
for(j=0;n%i==0; j++) n/=i;
if(j) {
if(j==1) printf("%d ", i);
else printf("%d ^ %d ", i, j);
if(n==1) break;
printf("* ");
}
}
return 0;
}
0144デフォルトの名無しさん
2009/11/18(水) 11:29:33x2 y2 って何ですか?
0145デフォルトの名無しさん
2009/11/18(水) 11:33:39x^2 y^2ってことだと思います
0146デフォルトの名無しさん
2009/11/18(水) 11:37:54ありがとうございます
0147デフォルトの名無しさん
2009/11/18(水) 11:39:24ありがとうございました
0148水羽
2009/11/18(水) 13:31:250149デフォルトの名無しさん
2009/11/18(水) 14:30:58opencvのテンプレートマッチングのテンプレート画像を4つにして
4つの画像で比較したうち
一番近い一致度を表示するプログラム
[3] 環境
[3.1] OS:WindowsXP
[3.2]visual studio2005
[3.3] 言語:C++
[4] 期限:11月21日
お願いします。
0150デフォルトの名無しさん
2009/11/18(水) 16:44:34[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10134.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] visual studio2008
[3.3] 言語: C
[4] 期限: 11月19日 午前7時
よろしくおねがいします
0151106
2009/11/18(水) 21:22:440152デフォルトの名無しさん
2009/11/18(水) 23:26:33#include <stdio.h>
int main( )
{
char name[16];
char m[] = "hoge";
char n[] = "fuga";
memset( name, 0, sizeof( name ) );
sprintf( name, "%s%s", m, n );
printf( "name=\"%s\"\n", name ) );
return 0;
}
0153デフォルトの名無しさん
2009/11/18(水) 23:28:24#include <stdio.h>
#include <string.h>
int main( )
{
char name[16];
char m[] = "hoge";
char n[] = "fuga";
memset( name, 0, sizeof( name ) );
sprintf( name, "%s%s", m, n );
printf( "name=\"%s\"\n", name ) );
return 0;
}
0154デフォルトの名無しさん
2009/11/18(水) 23:44:310155デフォルトの名無しさん
2009/11/19(木) 00:36:042、3まででも構いませんので、どなたかよろしくお願いします。
[1] 画像処理プログラム
[2]
1 画像を読み込む
2 1の任意の箇所の隣接した同系色を範囲選択
3 読み込んだ画像の任意の箇所から色を抽出
4 2で選択した範囲を3の色で塗りつぶす
5 結果を出力する
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語: どちらでも可
[4] 期限: 09/11/30
[5] その他の制限: 制限なし
0156デフォルトの名無しさん
2009/11/19(木) 09:22:08[2] 問題文(含コード&リンク):分数クラス
分数を扱うクラスを作成する。クラス名前はBunsu。データメンバはint型でbunshiとbunboでprivateとする。
コンストラクタにより初期化をおこなう。初期値が指定されなかったときはデフォルトコンストラクタでbunshi,bunboとも1で初期化すること。
またBunsuクラスの振る舞いをテストする適切なmain関数も作成すること。1ファイルで作成してください。
作成するメンバ関数
・コンストラクタ
・デフォルトコンストラクタ
・bunboを返すGetbunbo
・bunshiを返すGetbunshi
・bunboに代入するSetbunbo
・bunshiに代入するSetbunshi
・分数を加算する Addbunsu
加算した結果を約分してbunshi,bunboに設定する。
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C++
[4] 期限:[2009年11月22日23:00まで]
[5] その他の制限:特にありません。
よろしくお願いします。
0157デフォルトの名無しさん
2009/11/19(木) 11:41:03[2] 問題文(含コード&リンク):売掛表がcsvファイルで作られています。
各行の情報は、
顧客名,前月繰越高,当月入金高,当月売上高,締め日付
であり、締め日付で昇順に整列していて、見出し等冗長部分はありません。
今回は問題を単純化するため、一人の顧客分しか扱わないことにします。
さて更新プログラムのバグから、或る月の前月繰越高が
その前月の 前月繰越高-当月入金高+当月売上高 と不整合になってしまいました。
不整合になった以降の情報が正しく、
それ以前の情報の当月入金高、当月売上高、締め日付については誤りがないとして、
1) 不整合部分を探し
2) それ以前のすべての前月繰越高を全体が整合するように書き換えなさい。
ファイルは一旦別のファイル(例えば/tmp/xxxxxx)に正しいものをつくり、
その後、元のcsvファイルに書き戻しなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 期限はありません
[5] その他の制限: 日付などの持ち方は自由に工夫してよい。
0158デフォルトの名無しさん
2009/11/19(木) 12:31:02[2] 問題文(含コード&リンク):
整数nを読み込み、最外周の長さnの数字のとぐろをまいた図を出力するプログラムを作りなさい。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今月の30日まで
[5] その他の制限: 特にありません
よろしくお願いします
0159デフォルトの名無しさん
2009/11/19(木) 12:35:54例 n=22の時
1111111111111111111111
2
45555555555555555555 2
4 6 2
4 8999999999999999 6 2
4 8 0 6 2
4 8 233333333333 0 6 2
4 8 2 4 0 6 2
4 8 2 67777777 4 0 6 2
4 8 2 6 8 4 0 6 2
4 8 2 6 0111 8 4 0 6 2
4 8 2 6 0 2 8 4 0 6 2
4 8 2 6 0 8 4 0 6 2
4 8 2 6 999998 4 0 6 2
4 8 2 6 4 0 6 2
4 8 2 5555555554 0 6 2
4 8 2 0 6 2
4 8 11111111111110 6 2
4 8 6 2
4 777777777777777776 2
4 2
3333333333333333333332
はこんな感じになります
0160デフォルトの名無しさん
2009/11/19(木) 13:02:41_________|_______ ________|__________
______|_______ ______|______ _______|_______ ______|_______
| | | | | | | |
川 ヒ 猪 小 三 カ 桜 健
田 ク 木 川 沢 レ 庭 介
ソ 直 リ
ン 也 ン
補欠 橋本
中西
秋山
神取
さて!!!この結果どうなる???
選手は好きに使っていいよ!!
0161デフォルトの名無しさん
2009/11/19(木) 14:11:01[2] 問題文(含コード&リンク):
次の式を積分するプログラムを作りなさい。積分範囲は考慮せず、無限に積分するプログラムを作成しなさい。
r = a*b+c*d
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン: visual studio2005
[3.3] 言語: C言語
[4] 期限: 今年の11月23日
[5] その他の制限: 特になし
0162デフォルトの名無しさん
2009/11/19(木) 14:13:08http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10135.txt
0163デフォルトの名無しさん
2009/11/19(木) 17:03:01早い回答ありがとうございます。
助かりました。
0164デフォルトの名無しさん
2009/11/19(木) 17:49:53#include<stdio.h>
#include<stdlib.h>
#define N_MAX 40
#define WRITE(x, y, v) ((x)>=0 && (x)<(n) && (y)>=0 && (y)<(n) && buf[y][x]==0 && (buf[y][x]=(v)))
int main(int argc, char *argv[])
{
char buf[N_MAX][N_MAX+1]={{0}};
int i, n, x=-1, y=0;
int vx[]={1,0,-1,0}, vy[]={0,1,0,-1};
n=22;
if(argc==2) n=atoi(argv[1]);
if(n>N_MAX) n=N_MAX;
for(i=0;i<n;i++)
{
while(WRITE(x+vx[i%4], y+vy[i%4], '0'+(i+1)%10))
{
WRITE(x+vx[(i+1)%4],y+vy[(i+1)%4],' ');
x+=vx[i%4];
y+=vy[i%4];
}
}
for(i=0;i<n;i++) puts(buf[i]);
return 0;
}
0165デフォルトの名無しさん
2009/11/19(木) 18:01:34http://codepad.org/
に貼付けてからカキコしてね
0166デフォルトの名無しさん
2009/11/19(木) 19:05:31#include<iostream> は、まだ習ってないので
#include<iostream> を使わずに
printfでお願いしたいです
0167デフォルトの名無しさん
2009/11/19(木) 20:49:56http://codepad.org/bD0kHquN
理論値とあわないので、なにか勘違いしているかも。
0168デフォルトの名無しさん
2009/11/19(木) 22:48:18[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10137.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明日までに
急ですがよろしくお願いします
0169106
2009/11/19(木) 22:50:360170デフォルトの名無しさん
2009/11/19(木) 23:28:59[2] 問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10136.txt
スタックの内容を表示する関数print_stack_mtrxは分割してあります。
stdinを使って読み込むようにしてありますが、これを変更してfopen()とgetc()をつかって
ファイルを読み込む仕様に変更してください。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:特になし
0171デフォルトの名無しさん
2009/11/19(木) 23:45:40[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10138.txt
2次元配列を利用して、2進数を入力。
10進数、16進数に変換する。
2進数→10進数まで出来たけどそれ以降が・・・
何を2次元配列にするかもわからないです。
Cの標準関数とかはわかりません。習ってないです。
[3] 環境
[3.1] OS:Windows
[3.2] BCPad使ってます
[4] 期限:21日土曜日までに
どなたか、よろしくお願いします。
0172デフォルトの名無しさん
2009/11/20(金) 01:13:4795年「ここ数年で一番出来が良い」
96年「10年に1度の逸品」
97年「1976年以来の品質」
98年「10年に1度の当たり年」
99年「品質は昨年より良い」
00年「出来は上々で申し分の無い仕上がり」
01年「ここ10年で最高」
02年「過去10年で最高と言われた01年を上回る出来栄え」「1995年以来の出来」
03年「100年に1度の出来」「近年にない良い出来」
04年「香りが強く中々の出来栄え」
05年「ここ数年で最高」
06年「昨年同様良い出来栄え」
07年「柔らかく果実味が豊かで上質な味わい」
08年「豊かな果実味と程よい酸味が調和した味
09年「50年に1度の出来栄え」
です
0173デフォルトの名無しさん
2009/11/20(金) 01:50:07ボージョレ・ヌーボー
0174デフォルトの名無しさん
2009/11/20(金) 01:56:020175デフォルトの名無しさん
2009/11/20(金) 02:36:50要するに「どれも五十歩百歩」と言いたいわけだよな
誰も去年の謳い文句まで覚えてない事を逆手に取ってる
0176デフォルトの名無しさん
2009/11/20(金) 11:10:35誰かお願いします。。
0177デフォルトの名無しさん
2009/11/20(金) 11:47:41課題1-1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10140.txt
課題1-2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10141.txt
0178デフォルトの名無しさん
2009/11/20(金) 11:49:43ありがとうございます!!
0179デフォルトの名無しさん
2009/11/20(金) 11:50:08課題1-2をちょっと修正した
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10142.txt
0180デフォルトの名無しさん
2009/11/20(金) 11:57:53ごめん
課題1-2がまだバグってた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10143.txt
0181デフォルトの名無しさん
2009/11/20(金) 13:55:44[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10144.txt
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 11月27日(fri)まで
[5] その他の制限: 今習っているプログラム:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10145.txt
よろしくお願いします。
0182デフォルトの名無しさん
2009/11/20(金) 14:01:29[2] 問題文(含コード&リンク):1〜10までの数値の1乗〜5乗を計算し配列に格納し、一覧として表示するプログラムを作成せよ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名: visual studio2005
[3.3] 言語:C言語
[4] 期限:11月21日
[5] その他の制限:戻り値と数学関数は使えません。
横に1の○乗、縦に○の1乗という感じで表示させるようにしたいです。
よろしくお願いします。
0183デフォルトの名無しさん
2009/11/20(金) 15:27:45#include <stdio.h>
int main(void)
{
int a[10][5], i, j;
for(i=0; i<10; i++) {
a[i][0] = i + 1;
for(j=1; j<5; j++) a[i][j] = a[i][j-1] * (i + 1);
}
for(i=0; i<10; i++) {
for(j=0; j<5; j++) printf("%d ", a[i][j]);
putchar('\n');
}
return 0;
}
0184デフォルトの名無しさん
2009/11/20(金) 15:36:37#include <stdio.h>
double fukaishisuu(double t, double h)
{
return 0.81* t + 0.01 * h * (0.99 * t - 14.3) + 46.3;
}
int main(void)
{
double t, h, f;
printf("気温を入力:");
scanf("%lf", &t);
printf("湿度を入力:");
scanf("%lf", &h);
f = fukaishisuu(t, h);
if(f < 60) printf("cold\n");
else if(f < 75) printf("comfort\n");
else printf("discomfort\n");
return 0;
}
0185149
2009/11/20(金) 16:19:420186デフォルトの名無しさん
2009/11/20(金) 17:42:19エラーでないようにするにはどこを弄ればいいのでしょう・・
#include <stdio.h>
int main(void){
char a = "hello";
printf("a" , a);
}
0187デフォルトの名無しさん
2009/11/20(金) 18:16:530188デフォルトの名無しさん
2009/11/20(金) 18:24:11有難うございますm(__)m
恐縮ですがもう少々・・
#include <stdio.h>
int main(void){
char *a = "hello";
printf("%s " , *a);
}
これではやはりhelloと表示されないです。どこがおかしいのでしょうか?
0189デフォルトの名無しさん
2009/11/20(金) 18:26:240190デフォルトの名無しさん
2009/11/20(金) 18:30:54有難うございました!
m(__)m
0191デフォルトの名無しさん
2009/11/20(金) 19:05:56#include <stdio.h>
int aa(char *a){
printf("%s " , a);
return 0;
}
int main(void){
char *a = "hello";
int aa( *a );
}
0192デフォルトの名無しさん
2009/11/20(金) 19:09:34から
aa(a);
0193デフォルトの名無しさん
2009/11/20(金) 19:19:50お答え有難うございましたm(__)m
ヒントを手がかりに色々考えてみます。
0194106
2009/11/20(金) 21:06:200195デフォルトの名無しさん
2009/11/20(金) 21:13:130196デフォルトの名無しさん
2009/11/20(金) 21:55:24勝手に二次元で作ったよ
三次元以上も要領は同じ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10146.txt
0197デフォルトの名無しさん
2009/11/20(金) 22:37:250198デフォルトの名無しさん
2009/11/20(金) 23:07:110199デフォルトの名無しさん
2009/11/20(金) 23:18:25*(int *)&f = 0x〜
0200デフォルトの名無しさん
2009/11/21(土) 00:23:35[2] 問題文(含コード&リンク):
以下の仕様を満たすもぐらたたきゲームを作成する。
・一度に一つ以上の文字を画面上に表示する
一定時間以内に表示された文字と同じキーが押されたら得点
とする
キー入力を受け付ける一定時間が過ぎたら文字を消去する
以上の処理を一定回数繰り返す
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: mipsel
[3.3] 言語: C/C++/どちらでも可
[4] 期限: 2009年11月24日09:00まで
よろしくお願いします。
0201デフォルトの名無しさん
2009/11/21(土) 01:21:34[2] 手入力したい数列の数をまず入力し、その数だけ数列を手入力します。
その中に連続数がある場合、その連続数の個数を初めに入力した数から引いた結果を表示。
[3] 環境
[3.1] OS: Linux
[3.3] 言語:C
[4] 期限: 特になし
よろしくお願いします。
0202106
2009/11/21(土) 02:07:59どうもありがとうございます。例としては、下の内積プログラムがあるんですが、こんな感じだし、難し過ぎないかなと思ったんですが…classとかはまだやっていないし。
おもにやっているのはfor if continue while くらいなんですよね。配列(一次元配列と二次元配列)は今やっていますが。
#include <iostream>
using namespace std;
int main() {
float w[] = {1.2,2.3,3.4,4.5,5.6};
float x[] = {4.8,2.6,1.3,9.1,8.7};
float u = 0.0;
int i;
for(i=0;i<5;i=i++) {
u += w[i] * x[i];
}
cout << "u=" << u << "です\n";
return 0;
}
0203デフォルトの名無しさん
2009/11/21(土) 02:16:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10147.c
0204デフォルトの名無しさん
2009/11/21(土) 02:19:05一部の古い処理系ではNULLは定数ではなくmalloc書き込み専用変数
だった。(一般は参照のみ可)
古い話なんで細かいことは省略するが、プログラムのモジュール通信
の為だけに特権的な値を設定することなど貴重なアドレス空間の無駄
遣いでタブーという時代の要請としておく
freeはNULLを参照しないで機械的にブロック解放を行うので
間違った値を与えると確実にヒープを壊しプログラムは早晩落ちた。
0205デフォルトの名無しさん
2009/11/21(土) 02:21:050206デフォルトの名無しさん
2009/11/21(土) 03:45:03>>196にあるよ
0208デフォルトの名無しさん
2009/11/21(土) 16:10:22その環境を教えていただけるでしょうか。
0209デフォルトの名無しさん
2009/11/21(土) 16:30:370210デフォルトの名無しさん
2009/11/21(土) 17:00:450211デフォルトの名無しさん
2009/11/21(土) 17:31:08[2] 問題文:
#include <stdio.h>
int main(void)
{
int t = 6;
if(t >= 6 && t < 12){
printf("%d時です。おはようございます。\n",t);
}else if (t >= 12 && t < 18) {
printf("%d時です。こんにちは。\n",t);
}else if (t >= 18 && t < 24) || (t >= 0 &&t < 6)){
printf("%d時です。こんばんは。\n",t);
}else {
printf("%d時は時刻の範囲外です。\n",t);
}
return 0;
}
これのswitch文で書き換えたプログラムを作成しなさい。
ただし、case文の使用は4回を上限とする。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11月23日まで
どなたかお願いします
0212デフォルトの名無しさん
2009/11/21(土) 18:21:08[2] 問題文:
3行3列の実数行列A=[a_ij]とB[b_ij]の積ABを計算せよ。
ただし、乗算結果の行列を[c_ij]として次の計算を行うものとする。
行列の要素への入力は、代入文あるいは初期化子をもちいること。
c_ij=Σa_ik×b_kj (Σはk=0で、2までです)
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11月23日まで
どなたかお願いします
0213デフォルトの名無しさん
2009/11/21(土) 18:23:57#include <stdio.h>
int main(int argc, char* argv[])
{
int t = 6;
/* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 */
int hour[24] = {3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3};
t = atoi(argv[1]);
if(t<0 || t>23)
printf("%d時は時刻の範囲外です。\n",t);
else
switch(hour[t]) {
case 1:
// if(t >= 6 && t < 12){
printf("%d時です。おはようございます。\n",t);
break;
case 2:
// }else if (t >= 12 && t < 18) {
printf("%d時です。こんにちは。\n",t);
break;
case 3:
// }else if ((t >= 18 && t < 24) || (t >= 0 &&t < 6)){
printf("%d時です。こんばんは。\n",t);
break;
// default:
// }else {
// printf("%d時は時刻の範囲外です。\n",t);
}
return 0;
}
0214デフォルトの名無しさん
2009/11/21(土) 18:29:20if、switch、do文、while文、for文、配列しかならっていません。
できれば配列とfor文でお願いします。
0215デフォルトの名無しさん
2009/11/21(土) 18:35:15switch((t & 0x1f) / 6) {
case 1:
break;
case 2:
break;
case 0:
case 3:
break;
default:
break;
}
肝の部分だけ。汎用性はない。
0216デフォルトの名無しさん
2009/11/21(土) 19:17:04ありがとうございます。参考になりました。
0217106
2009/11/21(土) 19:28:21そうなんですが、こんなに複雑じゃないと無理でしょうか…?
習ってない表現も沢山あるので…(print.aとかclassなどなど)
0218デフォルトの名無しさん
2009/11/21(土) 20:04:43ありがとうございました!
0219デフォルトの名無しさん
2009/11/21(土) 20:51:56[2] 問題文(含コード&リソク):
すぐに運用可能なMMORGPゲ一ムを作成してください。
キャラクタ、マップ、イベントを編集可能なエディタを含めること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: 任意
[3.3] 言語: C+-+-
[4] 期限: 1970年1月1日00:00まで
[5] その他の制限: すべてGPLライセンスにすること。
0220デフォルトの名無しさん
2009/11/21(土) 21:29:00面白そうだね
0221デフォルトの名無しさん
2009/11/22(日) 00:46:26[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10149.txt
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: visual studio 2003
[3.3] 言語: C
[4] 期限: 2009/11/26まで
どうかよろしくお願いします。
0222デフォルトの名無しさん
2009/11/22(日) 01:25:16これ放物線になる?
単なる連立一次方程式(直線)に見えるんだが・・・
0223デフォルトの名無しさん
2009/11/22(日) 02:02:18ttp://codepad.org/JWL1J1gA
0224デフォルトの名無しさん
2009/11/22(日) 03:06:44#include <iostream>
using namespace std;
int main() {
return 0;
}
入力→cin 出力→cout
配列とforでお願いします。
0225デフォルトの名無しさん
2009/11/22(日) 03:07:31int [2]={2,4};とか
こんな感じのとか二次元配列しかやってないです
0226デフォルトの名無しさん
2009/11/22(日) 06:27:56早い対応ありがとうございます。
0227デフォルトの名無しさん
2009/11/22(日) 08:17:210229デフォルトの名無しさん
2009/11/22(日) 12:49:35C++習ってるなら普通真っ先に<iostream>を使うと思うんだが。
逆に<string>は使ってもいいわけ?
0230デフォルトの名無しさん
2009/11/22(日) 13:05:590231デフォルトの名無しさん
2009/11/22(日) 14:51:330232デフォルトの名無しさん
2009/11/22(日) 14:55:130233デフォルトの名無しさん
2009/11/22(日) 16:05:04>>112が書いているように問題の一部が意味不明
だから誰も答えられなかったのではないかと。
0234デフォルトの名無しさん
2009/11/22(日) 16:59:140235124
2009/11/22(日) 17:00:430236デフォルトの名無しさん
2009/11/22(日) 18:47:57[2] 標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換するプログラム
(コマンドラインに 2 4 2 4 を与えた場合タブを入力したら3 7 10 17 20 27...が桁位置に
なるようスペースを挿入する)
入力は半角文字に限って良い。またコマンドラインからは正の整数を表すものが
与えられるとして良い
[3] Windows vista/Borland C++ 5.5/C言語でコード
制限:fgetsを使う。
[4] できるだけ早く
0237デフォルトの名無しさん
2009/11/22(日) 19:00:17#include<stdio.h>
#include<stdlib.h>
int main(int argc,char**argv){
int tabstop = argc > 1 ? atoi(argv[1]) : 4,pos=0,c;
while((c=getchar())!=EOF)
switch(c){
case '\t':
do putchar(' ');while(++pos%tabstop);
break;
case '\r':case '\n':
putchar(c);
pos = 0;
break;
default:
putchar(c);
++pos;
break;
}
return 0;
}
0238デフォルトの名無しさん
2009/11/22(日) 19:14:260239デフォルトの名無しさん
2009/11/22(日) 19:29:430240デフォルトの名無しさん
2009/11/22(日) 20:04:27[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10150.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: dev c++
[3.3] 言語: C++
[4] 期限: 11月23日15:00まで
[5] その他の制限: 特になしです。
問2(1)を書きました。添削・解説お願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10151.txt
0241デフォルトの名無しさん
2009/11/22(日) 20:21:22#include <stdio.h>
int main(void)
{
int a[3][3], b[3][3], c[3][3], i, j, k;
for(i=0; i<3; i++) for(j=0; j<3; j++) scanf("%d", &a[i][j]);
for(i=0; i<3; i++) for(j=0; j<3; j++) scanf("%d", &b[i][j]);
for(i=0; i<3; i++) for(j=0; j<3; j++) for(c[i][j]=k=0; k<3; k++) c[i][j] += a[i][k] * b[k][j];
return 0;
}
0242デフォルトの名無しさん
2009/11/22(日) 21:18:27// 問1
#include <stdio.h>
main()
{
int i;
float rate, sum;
rate = 20./100000;
sum = 100000;
for(i=1; i<=30; i++){
sum *= 1 + rate;
}
printf("元利合計 = %d,%03d 円\n", (int)(sum/1000), (int)sum%1000);
}
// 問2
#include <stdio.h>
main()
{
int i;
float rate, sum, gankin;
rate = 0.04;
sum = gankin = 100000;
for(i=1; i<=10; i++){
sum *= 1 + rate;
printf("%2d:%d\n", i, (int)(sum-gankin) );
gankin = sum;
}
printf("元利合計 = %d,%03d 円\n", (int)(sum/1000), (int)sum%1000);
}
0243デフォルトの名無しさん
2009/11/22(日) 21:24:30ためしてみたらエラーでできなかったんですが
0244デフォルトの名無しさん
2009/11/22(日) 21:35:050245デフォルトの名無しさん
2009/11/22(日) 21:39:400246デフォルトの名無しさん
2009/11/22(日) 21:41:48問題文は計算せよであって、計算結果の表示は求められてないから。
0247デフォルトの名無しさん
2009/11/22(日) 21:43:45for(i=0; i<3; i++) {
for(j=0; j<3; j++) printf("%3d ", c[i][j]);
puts("");
}
return 0;
0248106
2009/11/22(日) 23:19:28#include <iostream>
using namespace std;
int main() {
float w[] = {1.2,2.3,3.4,4.5,5.6};
float x[] = {4.8,2.6,1.3,9.1,8.7};
float u = 0.0;
int i;
for(i=0;i<5;i=i++) {
u += w[i] * x[i];
}
cout << "u=" << u << "です\n";
return 0;
}
レベル的にはこんなもんなはずなんです
0249デフォルトの名無しさん
2009/11/22(日) 23:46:17すいません
<string>もまだ、習っていませんでした
0250デフォルトの名無しさん
2009/11/23(月) 00:54:01Cで適当に組んだ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10153.txt
0251デフォルトの名無しさん
2009/11/23(月) 01:17:33ベクトルの定義方法の指定が曖昧すぎてどうにも出来ん。
0252デフォルトの名無しさん
2009/11/23(月) 01:20:32>>196じゃだめなん?
だめならどこがだめなのかはっきり言ってくれ
レスが付かない事には直しようがない
0253デフォルトの名無しさん
2009/11/23(月) 01:21:20○>>248
>>196をお願いだから見てくれ
これでもだめなら理由を説明してくれ
0254デフォルトの名無しさん
2009/11/23(月) 01:23:34指摘面倒なんで適当に修正してください
0255デフォルトの名無しさん
2009/11/23(月) 01:25:36>>106
>>196
これでどうだ
0256デフォルトの名無しさん
2009/11/23(月) 01:36:55ああああああ
0257デフォルトの名無しさん
2009/11/23(月) 01:52:010258デフォルトの名無しさん
2009/11/23(月) 02:29:08ttp://codepad.org/Hvu8mvhu
0259106
2009/11/23(月) 02:42:19絶対、この例文レベルより難しいですよね…何か、1次元配列2つで終了するって言ってたので
#include <iostream>
using namespace std;
int main() {
float w[] = {1.2,2.3,3.4,4.5,5.6};
float x[] = {4.8,2.6,1.3,9.1,8.7};
float u = 0.0;
int i;
for(i=0;i<5;i=i++) {
u += w[i] * x[i];
}
cout << "u=" << u << "です\n";
return 0;
}
0260106
2009/11/23(月) 02:46:230261デフォルトの名無しさん
2009/11/23(月) 02:48:04→ →
a ・ b = 0って事だろ
0262106
2009/11/23(月) 03:02:07ありがとうございます。直行するベクトルを適当に何か入力してみようと思うんですが、
(4,-3)(3,4)とすると、
和が(7,1) 差が(1,-7) はいいんですが、内積とcosθが0になりました。こういう事ですよね
0263デフォルトの名無しさん
2009/11/23(月) 03:10:04自分で方眼紙にベクトル描画してみな?
0264106
2009/11/23(月) 03:56:27ありがとうございました。
0265デフォルトの名無しさん
2009/11/23(月) 04:00:29[2] 問題文(含コード&リンク):
行列の足し算(A+B)を行うプログラムを作成せよ(A,Bを適当に初期化して、3*3行列で行う事)
行列の足し算(A*B)を行うプログラムを作成せよ(A,Bを適当に初期化して、3*3行列で行う事)
[3] 環境
[3.1] OS:xubuntu
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:[2009年11月20日まで]
[5] その他の制限:cout→出力、cin→入力、配列を使う事、
#include <iostream>
using namespace std;
int main() {で始めて
return 0;
}で終わるようにする。もしかしたらcmathとかくらい入るかも知れませんがこんな感じです
また課題が来てしまいました。あと、あまり複雑すぎずお願いします。
0266デフォルトの名無しさん
2009/11/23(月) 10:29:44http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10154.cpp
0267デフォルトの名無しさん
2009/11/23(月) 13:07:53相似図形として似ていることを調べるにはどうすればいいですか。
0268デフォルトの名無しさん
2009/11/23(月) 13:09:164点与えた4角形に限定して良いです。
0269267
2009/11/23(月) 13:22:01つながっているとは限らない4線分の配置位置の類似検出を知りたいです
0270デフォルトの名無しさん
2009/11/23(月) 14:04:20cin使用
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10155.txt
簡単な構文が希望なら、[5]にそう書いた方がいいと思うよ。
〜を習ったばかり程度の構文レベルでお願いします、とか。
関数とかクラスにした方がまとまったり汎用性が出たりするから
ココにいるような人達は特に指定がなければそっちにしてしまうと思う
0272デフォルトの名無しさん
2009/11/23(月) 15:28:25適当に0とか入れといてくだしあ
0273271
2009/11/23(月) 15:29:11ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10155.txt
どちらも初期化(上は2つのベクトルを適当に初期化、下はA,Bを適当に初期化)しないといけないんですが、どうしたらいいですか?
0274271
2009/11/23(月) 15:31:13書いてるうちに返信が来てましたすみません。
A[3][3]={}, B[3][3]={}ですか?
0275デフォルトの名無しさん
2009/11/23(月) 16:03:240276デフォルトの名無しさん
2009/11/23(月) 16:21:34system("cls")でコンソールクリアはWindowsだけだったよな?
0277271
2009/11/23(月) 16:36:10#include<iostream>
using namespace std;
int main() {
double A[3][3]={{1,1,6},{5,3,2},{2,2,2}};
double B[3][3]={{4,1,3},{2,4,3},{5,9,2}};
double temp;
int i,j,k;
for(i=0;i<3;i++){
for(k=0;k<3;k++){
}
}
for(i=0;i<3;i++){
for(k=0;k<3;k++){
}
}
cout<<"和:A+B="<< '\n';
for(i=0;i<3;i++){
cout<<" { ";
for(j=0;j<3;j++){
cout<< (A[i][j]+B[i][j]);
if(j!=2)
cout<<" , ";
}
cout<< " }" << '\n';
}
cout<< '\n';
0278271
2009/11/23(月) 16:37:13for(i=0;i<3;i++){
cout<<" { ";
for(j=0;j<3;j++){
temp=0.0;
for(k=0;k<3;k++)
temp += A[i][k]*B[k][j];
cout<< temp;
if(j!=2)
cout<< " , ";
}
cout<< " }" << '\n';
}
return 0;
}
続き
0279271
2009/11/23(月) 16:46:26#include <iostream>
#include <cmath>
using namespace std;
int main() {
static const int N = 2;
double va[N]={3,-4};
double vb[N]={4,3};
double a,b;
double p;
for (int i = 0; i < N; ++i) {
for (int i = 0; i < N; ++i) {
}
}
cout << "va + vb = (" ;
for (int i = 0; i < N; ++i) {
cout << va[i] + vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';
0280デフォルトの名無しさん
2009/11/23(月) 16:47:00[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10157.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11月24日まで
お願いします
0281271
2009/11/23(月) 16:47:49for (int i = 0; i < N; ++i) {
cout << va[i] - vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';
p = 0;
for (int i = 0; i < N; ++i) {
p += va[i] * vb[i];
}
cout << "va・vb = " << p << '\n';
a = 0;
for (int i = 0; i < N; ++i) {
a += va[i] * va[i];
}
a = sqrt(a);
b = 0;
for (int i = 0; i < N; ++i) {
b += vb[i] * vb[i];
}
b = sqrt(b);
if (a * b != 0) {
cout << "cosθ = " << p / (a * b) << '\n';
}
return 0;
}
ですかね?初期化というと
0282デフォルトの名無しさん
2009/11/23(月) 17:12:03#include <stdio.h>
int main(void)
{
int i, j, k = 2 * 16;
printf(" |0 1 2 3 4 5 6 7 8 9 A B C D E F\n");
printf("---+--------------------------------\n");
for(i=2; i<8; i++) {
printf(" %d |", i);
for(j=0; j<16; j++) {
if(k==0x7f) continue;
printf("%c ", k++);
}
putchar('\n');
}
return 0;
}
0283デフォルトの名無しさん
2009/11/23(月) 18:18:20[2] 問題文(含コード&リンク): 以下の掛け算の表示プログラムを作成しなさい。
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
・
・
・
10・・・ 100
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語:C言語
[4] 期限: 11月27日 17時
どなたかよろしくお願いします。
0284デフォルトの名無しさん
2009/11/23(月) 18:24:30int main(void)
{
int i, j;
for(i=1; i<=10; i++) {
for(j=1; j<=10; j++) printf("%3d", i * j);
puts("");
}
return 0;
}
0285デフォルトの名無しさん
2009/11/23(月) 18:41:00ありがとうございます
0286デフォルトの名無しさん
2009/11/23(月) 18:43:55ありがとうございます。助かりました。
0287デフォルトの名無しさん
2009/11/23(月) 18:49:32ttp://wisdom.sakura.ne.jp/programming/c/c18.html
変数を宣言した時に値も代入するのが初期化
長いソースを直接書くと見にくいからろだ等使って
0288271
2009/11/23(月) 18:50:25ありがとうございます
0289271
2009/11/23(月) 18:53:11例えば,106の答えのttp://codepad.org/Hvu8mvhuなら、
変数宣言をいじって、{}をつければいいだけですよね?しかし、あまり変わらないないですか?
0290271
2009/11/23(月) 19:12:00[2] 問題文(含コード&リンク):
行列とベクトルの掛け算
y=Ax (A(3*3行列以上)とxを適当に初期化)
[3] 環境
[3.1] OS:xubuntu
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:[2009年11月20日まで]
[5] その他の制限:cout→出力、cin→入力、配列を使う事、
#include <iostream>
using namespace std;
int main() {で始めて
return 0;
}で終わるようにする。もしかしたらcmathとかくらい入るかも知れませんがこんな感じです
あとなるべく優しいレベルで作ってください。
多分これで今回の課題はラスト問題です
0291デフォルトの名無しさん
2009/11/23(月) 19:13:38配列では値を代入するのが初期化。
double A[3][3]={ };
とやっても何も代入してないから初期化ではない
0292デフォルトの名無しさん
2009/11/23(月) 19:27:33コンパイル通らないだろw
0293デフォルトの名無しさん
2009/11/23(月) 19:31:02[2] 問題文(含コード&リンク):
問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10161.txt
ソース:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10158.c
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10159.c
[3] 環境
[3.1] OS: Linux
[3.2]
[3.3] 言語: C
[4] 期限: 11月26日まで
[5] その他の制限: なし
お願いします
0294デフォルトの名無しさん
2009/11/23(月) 19:37:48double
i++
n-1
Power
2.421230
0295デフォルトの名無しさん
2009/11/23(月) 19:42:14省略すると0が入るよ
0296デフォルトの名無しさん
2009/11/23(月) 19:59:070297デフォルトの名無しさん
2009/11/23(月) 19:59:51レス使いすぎなんだよ
0298デフォルトの名無しさん
2009/11/23(月) 20:16:27ここまでヒント出てる問題は自力でやってほしいなぁ
0299デフォルトの名無しさん
2009/11/23(月) 20:20:420300デフォルトの名無しさん
2009/11/23(月) 20:24:560302271
2009/11/23(月) 21:39:01double vb[N]={};
こんな感じなんですが
0303271
2009/11/23(月) 21:40:24#include <iostream>
#include <cmath>
using namespace std;
int main() {
static const int N = 2;
double va[N]={3,-4};
double vb[N]={4,3};
double a,b;
double p;
for (int i = 0; i < N; ++i) {
for (int i = 0; i < N; ++i) {
}
}
0304271
2009/11/23(月) 21:41:59for (int i = 0; i < N; ++i) {
cout << va[i] + vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';
cout << "va - vb = (" ;
for (int i = 0; i < N; ++i) {
cout << va[i] - vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';
p = 0;
for (int i = 0; i < N; ++i) {
p += va[i] * vb[i];
}
cout << "va・vb = " << p << '\n';
a = 0;
for (int i = 0; i < N; ++i) {
a += va[i] * va[i];
}
0305271
2009/11/23(月) 21:42:42b = 0;
for (int i = 0; i < N; ++i) {
b += vb[i] * vb[i];
}
b = sqrt(b);
if (a * b != 0) {
cout << "cosθ = " << p / (a * b) << '\n';
}
return 0;
}
3つは続きです
0306290
2009/11/23(月) 23:08:420307デフォルトの名無しさん
2009/11/23(月) 23:15:440308デフォルトの名無しさん
2009/11/24(火) 14:50:27任意の0でない自然数nをキーボードで入力し、入力した数字が奇数の場合、その数字に3を掛けと1を足します。入力した数字が偶数の場合、その数字を2で割ります。
0309308の続き
2009/11/24(火) 14:52:04以上のプログラムが複雑でつくれません。どうか教えてもらえないでしょうか。
0310デフォルトの名無しさん
2009/11/24(火) 15:17:19int main(void)
{
int i, n, max;
scanf("%d", &n);
for(i=0, max=n; n!=1; i++) {
if(n % 2) n = n * 3 + 1;
else n /= 2;
if(n > max) max = n;
}
printf("%d回 最大値%d\n", i, max);
return 0;
}
0311デフォルトの名無しさん
2009/11/24(火) 15:28:46[2] 問題文(含コード&リンク):
ベクトルの加減、ベクトルの内積、2つのベクトルのなす角度cosθ
2つのベクトルを適当に初期化して行う事
[3] 環境
[3.1] OS:xubuntu
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:[2009年11月20日まで]
[5] その他の制限:cout→出力、cin→入力、配列を使う事、
#include <iostream>
using namespace std;
int main() {で始めて
return 0;
}で終わるようにする。
あと、文中に
#difine N 3
int main() {
double inp=0.0,normx=0.0,cos;
double x[]={};
double y[]={};
for(int i = 0;i<N;i++) {
inp += x[i] * y[i];
normx += x[i] * x[i];
normy += y[i] * y[i];
}
normx=sqrt(normx);
normy=sqrt(normy);
cos = inp / ( norm * normy);
これを含めてほしいんですが
0312デフォルトの名無しさん
2009/11/24(火) 15:41:26プログラム自体は
#include <iostream>
using namespace std;
int main() {
int m=48,n=36,t,i;
for(i=0;;i++) {
cout << "m" << i << " " << m << " n" << i << " " << n << '\n';
if(!(t=m%n))
break;
m=n;
n=t;
}
cout << "n" << i << "=" << n << '\n';
return 0;
}
できてるんですが、フローチャートが書けません。誰か分かる人いませんか?フローチャート質問コーナーは無いのでここに書きました…
0313デフォルトの名無しさん
2009/11/24(火) 16:00:42[2]サンプルプログラムを改良し、ピボット数が小さくなっても停止せずに、
行を入れ替えることでプログラムが最後まで計算を続けることができるようにせよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10163.txt
[3.1] WindowsXP
[3.2] turbo CかBorland C++
[3.3] C++
[4] 今週木曜日まで
[5] おねがいします。
0314デフォルトの名無しさん
2009/11/24(火) 16:30:28[2] 問題文(含コード&リンク):
遺伝的アルゴリズムを基にTSP(巡回セールスマン問題)の近似解法のプログラムを書け。
ただし都市数の数は5〜6個程度で、都市間の距離は自由に決めてよいとする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio2008
[3.3] 言語: C++
[4] 期限: [2009年11月30日まで]
[5] その他の制限:特にありませんが、分かりやすくお願いします
C初心者です、遺伝的アルゴリズムの概念を理解するだけで正直精一杯でした…
宜しくお願いします
0315デフォルトの名無しさん
2009/11/24(火) 16:56:21ありがとうございます。
0316デフォルトの名無しさん
2009/11/24(火) 17:36:55[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10165.txt
[3] 環境
[3.1] OS: Windous Vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:明日までです・・・
すみません問題が二つあるのですがよろしくお願いします
0317デフォルトの名無しさん
2009/11/24(火) 17:55:23#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, j, temp, a[10];
srand(time(NULL));
for(i=0; i<10; i++) {
a[i] = rand() / (RAND_MAX + 1.0) * 1000;
printf("%d%c", a[i], i==9 ? '\n' : ',');
}
for(i=9; i>0; i--) {
for(j=0; j<i; j++) {
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0; i<10; i++) printf("%d%c", a[i], i==9 ? '\n' : ',');
return 0;
}
0318デフォルトの名無しさん
2009/11/24(火) 17:59:01#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, j, a[10] = {0};
srand(time(NULL));
for(i=0; i<100; i++) a[rand()%10]++;
for(i=0; i<10; i++) {
printf("%d:", i);
for(j=0; j<a[i]; j++) putchar('*');
putchar('\n');
}
return 0;
}
0319デフォルトの名無しさん
2009/11/24(火) 18:02:53[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10170.txt
:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10171.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: (11/26)
[5] 一つ目のURLが問題、2つ目が問題のプログラム例です
宜しくお願いします。
0320デフォルトの名無しさん
2009/11/24(火) 18:09:39流石です!
ありがとうございます
0321デフォルトの名無しさん
2009/11/24(火) 18:11:33[2] 問題文(含コード&リンク):
2つの文字列をS1とS2の配列に読み、S1の文字列の最初からn個目にS2の文字列を挿入する。
例えば、文字列が12345とABでn=3の場合、123AB45となる。
(1) 配列を用いて作る。
(2)関数とポインターを用いて作る。
[3] 環境
windows xp
言語:C
[4] 期限: 26日
よろしくお願いします
0322デフォルトの名無しさん
2009/11/24(火) 18:57:490323デフォルトの名無しさん
2009/11/24(火) 19:52:40#include <stdio.h>
#define LEN 100
int main(void) {
char data1[LEN+1], data2[LEN+1], data3[LEN*2+1];
int n, len;
printf("S1="); fgets(data1, LEN+1, stdin); len = strlen(data1)-1; data1[len] = '\0';
printf("S2="); fgets(data2, LEN+1, stdin); data2[strlen(data2)-1] = '\0';
printf("n="); scanf("%d", &n);
if(len < n) n = len;
strncpy(data3, data1, n);
data3[n] = '\0';
strcat(data3, data2);
strcat(data3, &data1[n]);
puts(data3);
return 0;
}
0324デフォルトの名無しさん
2009/11/24(火) 21:51:37当方の環境は cygwin/Windows XP, 処理系は gcc 3.4.4 です。
http://codepad.org/rqMERblh
部分ピポット選択としています。大概はこれでOKだと思います。
>>322
他に言うことはないのでしょうか。
0325324
2009/11/24(火) 22:26:48訂正します。
http://codepad.org/vNlQ4hMb
0326デフォルトの名無しさん
2009/11/24(火) 23:47:16提出期限が30までになっていましたが先生の都合で今週末までに変更になってしまいました。
どなたかお願いいたします。
[1] 授業単元: 画像処理プログラム
[2] 問題文(含コード&リンク): 自動選択ツール(魔法の杖)を作成せよ
画像フォーマットに関しては特に制限なし
[[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語: どちらでも可
[4] 期限: 09/11/27
[5] その他の制限: 制限なし
0327デフォルトの名無しさん
2009/11/25(水) 00:10:09こんなもん即興で作れるレベルじゃない
とっかかりも何もなしに丸投げされても作る人はいないと思われ
0328デフォルトの名無しさん
2009/11/25(水) 00:22:46[2]プログラムの製造とライフサイクルについてC言語アプリ開発の実際を踏まえて
論ぜよ 自作Cコードを含めること。
[3] Linux/Gcc/C言語 (Mozzilaプロジェクト)が授業で取り上げられました
[4] なるべく早めに
意味がよくわかりません。指針だけでもよろしくです。
0329デフォルトの名無しさん
2009/11/25(水) 00:28:32ですよねえ・・・もう今回のはスルーすることにします。
色々レス下さった方々ありがとうございました。
0330デフォルトの名無しさん
2009/11/25(水) 02:16:03[2]問題文
次の要領でテストの点数を入力し、それぞれの点数代の人数が何人いるか求めるプログラム
1.テストの点数を入力するガイダンスを用いて次のように出力 :点数の入力 終了条件:eあるいはE
2.fgets()を用いて、テストの点数を文字列として入力
3.2で入力した文字列が'e'または'E'ならば処理2〜5の処理を終了して6の処理を行う
4.文字列で入力した点数をint型変数に変換(atoiを使用する)
5.4で変換したint型の点数が0点以上100点以下なら、それぞれの点数代の人数を数える。
6.5の結果の表示
[3]
[3.1]XP
[3.2]Visual C++ 2008
[3.3] C言語
[4]2009年11月30日まで
[5]関数、文字列の復習問題です
0331デフォルトの名無しさん
2009/11/25(水) 03:04:11#include <stdio.h>
#define SIZE 100
char *ins(char *s1, int n, char *s2)
{
static char dst[SIZE*2];
if(strlen(s1)>n){
strcpy(dst, s1); dst[n]='\0';
strcat(dst, s2);
strcat(dst, s1+n);
}else{
sprintf(dst, "%s%s", s1, s2);
}
return dst;
}
int main(int argc, char *argv[])
{
char S1[SIZE*2], S2[SIZE];
int n;
sscanf(argv[2], "%d", &n);
sprintf(S1, "%s", argv[1]);
sprintf(S2, "%s", argv[3]);
sprintf(S1, "%s", ins(S1, n, S2)); printf("[%s]\n", S1);
return 0;
}
コマンドラインで>実行.exe S1の文字列 n S2の文字列[Enter]
0332323
2009/11/25(水) 04:39:48#include <stdio.h>
#include <string.h>
#define LEN 100
void concat(char *s1, char *s2, char *s3, int n) {
strcpy(s3, s1); s1[n] = '\0';
strcat(s1, s2);
strcat(s1, &s3[n]);
}
int main(void) {
char S1[LEN+1], S2[LEN+1], work[LEN+1];
int n, len;
printf("S1="); fgets(S1, LEN+1, stdin); len = strlen(S1)-1; S1[len] = '\0';
printf("S2="); fgets(S2, LEN+1, stdin); S2[strlen(S2)-1] = '\0';
printf("n="); scanf("%d", &n);
if(len < n) n = len;
concat(S1, S2, work, n);
puts(S1);
return 0;
}
0333デフォルトの名無しさん
2009/11/25(水) 06:56:38[2]問題文
簡単に金が稼げるプログラムを作れ!
[3]
[3.1] OS全般(特に問わない)
[3.2] gcc
[3.3] C言語
[4] 今すぐニダ
[5] 最低でも1億円は稼ぐこと
0334デフォルトの名無しさん
2009/11/25(水) 06:57:56種銭を10億円出せ
0335デフォルトの名無しさん
2009/11/25(水) 07:17:34的外れかもしれないけど、
まず、ライフサイクルがどこを指してるのかがよくわからん。
プログラムそのものを指してるのか、プログラムの製造過程(?)を指してるのか。
前者ならプログラム内でどの関数からスタート(エントリポイント)して
どの関数を経由して最終的にどの関数で終了するのか、
後者ならPDCAサイクルみたいなのを書けばいいんじゃないかな、とか思った。
とはいえ「C言語アプリ開発の実際」が意味不明だからよくわからん。
0336デフォルトの名無しさん
2009/11/25(水) 08:39:35http://codepad.org/zfUPBSKr
0337デフォルトの名無しさん
2009/11/25(水) 10:03:29[2] 問題文:
二つの値xとyの大きい方の値を返す関数形式マクロは以下のように
定義できる
#define max(x,y) ((x) > (y) ? (x) : (y))
このマクロを利用して、四つの値a,b,c,dの値の最大値を求める
max(max(a,b), max(c,d))
および
max(max(max(a,b), c), d)
がどのように展開されるかを示すし、考察を加えよ。
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: bcc32
[3.3] 言語: c言語
[4] 期限: ありません
[5] その他の制限: このプログラムを作ってほしいと思います。
if,for,関数,関数形式マクロは勉強しました。
C言語初心者ですよろしくお願いします。
0338デフォルトの名無しさん
2009/11/25(水) 10:03:52[2] 問題文(含コード&リンク):5つの整数データ入力に対する合計計算アルゴリズム
1.変数 s に 0 を設定する。
2.変数 k に 0 を設定する。
3.もし k < 5 でなければ、7.へ行く。
4.整数の入力を変数 a に格納する。
5.変数 s に 変数 a を加えて、変数 s に 代入する。
6.変数 k の内容を 1 だけ増やし、3.にもどる。
7.変数 s を出力表示する。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C
[4] 期限:11月25日朝10時20分
[5] その他の制限:特になし
よろしくお願いします
0339デフォルトの名無しさん
2009/11/25(水) 10:41:13[2] 問題文(含コード&リンク):5人の学生の3教科(国・数・英)の点数を
読み込んで、2次元配列を用いて以下の条件を満たすプログラムを作成せよ。
(1)科目別の最高点を求める。
(2)各学年の3教科の平均を求める。
これらを表にして表示する。
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: bcc32
[3.3] 言語: C言語
[4] 期限: ありません
[5] その他の制限: if,for、配列を習いました。
c言語は初心者です。よろしくお願いします。
0340デフォルトの名無しさん
2009/11/25(水) 10:51:50http://codepad.org/AfWR2E4p
0341デフォルトの名無しさん
2009/11/25(水) 10:54:02http://codepad.org/3LmIHTLc
0342デフォルトの名無しさん
2009/11/25(水) 11:32:09プログラミングをする問題ではないな
1カ所だけ埋めてみるので、後は同じように変換してみて。
#define max(x,y) ((x) > (y) ? (x) : (y))
max(max(a,b), max(c,d))
↓
max(((a) > (b) ? (a) : (b)), max(c,d))
0343デフォルトの名無しさん
2009/11/25(水) 12:14:43どこからデータを読み込んでどういった表にするのかも詳しく
0344デフォルトの名無しさん
2009/11/25(水) 12:24:00[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10172.zip
上記のグラデーション画像(濃淡画像、サイズ256×256)
の画素値を計算で求めるプログラムによって作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:11月25日17:00
[5] その他の制限:特にありません。
プログラミング初心者です。
画像のダウンロード等お手数をおかけしますが、
分かる方いましたらお願いしたいです。
0345デフォルトの名無しさん
2009/11/25(水) 12:30:44#include<stdio.h>
int main()
{
int s=0, k=0, a;
for (k = 0;k < 5;k++)
{
printf("整数を入力してください:");
scanf("%d", &a);
s += a;
}
printf("変数sの値は%dです。", s);
return 0;
}
もう時間過ぎてるし意味ないかw
0346デフォルトの名無しさん
2009/11/25(水) 12:55:18上からx(0から開始)ピクセル目の画素値=[x, x, x](RGB)
※横方向は全て同じなので省略
ってだけじゃないの?
0347デフォルトの名無しさん
2009/11/25(水) 13:27:5132階調のようだ
0348デフォルトの名無しさん
2009/11/25(水) 14:30:171.以下の内容を例えば、tect.cに保存
#define max(x,y) ((x) > (y) ? (x) : (y))
max(max(a,b), max(c,d))
2.gcc -E test.c を実行すると、以下の結果を得られる。
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "test.c"
((((a) > (b) ? (a) : (b))) > (((c) > (d) ? (c) : (d))) ? (((a) > (b) ? (a) : (b))) : (((c) > (d) ? (c) : (d))));
0349デフォルトの名無しさん
2009/11/25(水) 14:30:46拡張子がJPGになってるけど、ファイル形式が正確にはPNGみたい
0350デフォルトの名無しさん
2009/11/25(水) 16:11:48画像を作成するのをどのように書けばいいのか見当がつかなくて…
拡張子JPGにしてしまったのですが、元画像はPNGでした。
紛らわしいことをして申し訳ありません!
0351デフォルトの名無しさん
2009/11/25(水) 16:25:13データはキーボードから点数を入力で。
表は、
番号| 国語 数学 英語 |最高 |最低 |平均
1 | | | |
2 | | | |
(中 略)
5 | | | |
――――――――――――――――――――――――――――――
最高 |
最低 |
平均 |
表はこんな感じで。
最低点の表示もお願いします。
よろしくお願いします。
0352デフォルトの名無しさん
2009/11/25(水) 16:27:33表がずれてしまってすみません。
0353デフォルトの名無しさん
2009/11/25(水) 16:49:05画素値を求めるんじゃなくて画像を作るの?
質問の内容がよくわかんない
0354デフォルトの名無しさん
2009/11/25(水) 16:50:03[2] 問題文(含コード&リンク):
(1)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10173.txt
(2)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10175.txt
(3)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10174.txt
(4)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10176.txt
たくさんあって申し訳ないです・・
[3] 環境
[3.1] OS:Linux (emacsで作成して、ktermでコンパイルするやつです。)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:11月25日17:00
プログラミング初心者です。
簡単な問題ばかりらしいのですが、自分にはできません。でも提出には間に合わせたいです・・
聞ける友達もいなく、ここに頼るしかないです。至急よろしくお願いします。
0355デフォルトの名無しさん
2009/11/25(水) 16:53:20でもできれば今日中に提出したいですのでよろしくお願いいたします。。
0356デフォルトの名無しさん
2009/11/25(水) 17:26:26画像を作るプログラムです。
誤解を招く文章ですみませんでした!
0357デフォルトの名無しさん
2009/11/25(水) 18:12:28[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10177.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 11/26日いっぱい
お願いします。
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10178.txt
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年11月27日20:00まで]
[5] その他の制限:特にありません。
お願いします。
0359デフォルトの名無しさん
2009/11/25(水) 20:45:210360デフォルトの名無しさん
2009/11/25(水) 22:49:09ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10179.txt
0362312
2009/11/26(木) 00:42:260363デフォルトの名無しさん
2009/11/26(木) 03:04:21ありがとうございました。本当にたすかりました。
0364デフォルトの名無しさん
2009/11/26(木) 06:08:45http://codepad.org/xjHSjbj3
というか,ほとんどできあがっていたよ。
これでいいのだろうか・・・。
0365デフォルトの名無しさん
2009/11/26(木) 06:50:47[1]授業単元:応用C言語演習
[2]問題文(含コード&リンク)
標準入力から1文字以上の英数字と'_'で構成される単語を読み込み、
それぞれの単語が何回、何行目の何個目の単語に出現したかを単語アルファベット順
にリストする索引作成プログラム
アルファベット順出力の後出現頻度(出現が多い単語順、同数についてはアルファベ
ット順)順についても同じ書式で出力
改行記号とタブ/アルファベット/数字/ '_' /空白しか標準入力されないとして良い。
入力行数、単語長、種数、単語辺りの出現回数に制限は無い。
単語の前後の区切りは単語を構成しない文字とする。(行末記号を含む)
書式: 単語 (回数) 位置(行番号が若い順)改行
位置: 'L'行番号(1から開始)-行内単語番号(1から開始)
alpha (3回) L32-5 L66-4 L124-1
beta (2回) L192-1 L276-3
[3] 環境
OS:FedoraCore11/コンパイラgcc4.0/言語 C言語
[4] 期限 12/1迄
[5]その他の制限:
400行以内(マルチステートメント不可)
stdio.h stdlib.h string.h以外の使用禁止 fgets使用のこと(fgetc等の一文字読み取り系は不可)
0366デフォルトの名無しさん
2009/11/26(木) 11:59:14学年は関係なくなっちゃたのかな。
0367デフォルトの名無しさん
2009/11/26(木) 13:57:060368デフォルトの名無しさん
2009/11/26(木) 17:09:06[2] 問荘阨カ(含コード&ャ潟塔N):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10180.txt
たくさんあって申し訳ないです・・
[3] 環境
[3.1] OS:Linux (emacsで作成して、ktermでコンパイルするやつです。)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:11月30日17:00
前回もこの板にお世話になりました。
プログラミング初心者です。
聞ける友達もいなく、ここに頼るしかないです。
またまたよろしくお願いします。
0369デフォルトの名無しさん
2009/11/26(木) 17:29:48[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10181.txt
[3] 環境
[3.1] OS:Linux (emacsで作成して、ktermでコンパイルするやつです。)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:11月29日17:00
こちらもどうかよろしくお願いいたします。。
0370370
2009/11/26(木) 17:35:01http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/31
0371デフォルトの名無しさん
2009/11/26(木) 17:43:42ありがとうございます。
しかし、
現在のデータ:0/100
(1)プッシュ (2)ポップ (0)終了:1
データ:25
0 25 ←この行(番号?とプッシュした数字)は表示されませんでした。
どうかもう一度お願いします。
0373デフォルトの名無しさん
2009/11/26(木) 18:23:09良問です。丸投げなど勿体ない。
0374デフォルトの名無しさん
2009/11/26(木) 18:41:28課題1
#include<stdio.h>
#define min2(x, y) ((x < y) ? x : y)
int min3(int x, int y, int z);
int min3(x, y, z)
{
return min2(min2(x, y), z);
}
int main(void)
{
printf("%d\n", min3(3, 5, 1));
return 0;
}
0375デフォルトの名無しさん
2009/11/26(木) 18:47:10多くて申し訳ないです・・
0376デフォルトの名無しさん
2009/11/26(木) 18:55:360377デフォルトの名無しさん
2009/11/26(木) 19:07:01>>374 課題1の訂正(入力を促すメッセージを追加)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10183.c
0378デフォルトの名無しさん
2009/11/26(木) 19:10:32とお願いしたものです。
その時、良心的に解答してくださった方がいたのですが、
事情によりその際のデータが全て消えてしまいました。
もしあの時助けてくださった方がここを見ていて、
心当たりがあったら私のメールアドレスにメールしていただけないでしょうか?
大変困っています。よろしくお願い致します。
0379デフォルトの名無しさん
2009/11/26(木) 19:21:17課題5
http://codepad.org/zfUPBSKr
0380デフォルトの名無しさん
2009/11/26(木) 19:21:44課題3
putstar(n)は、*を1行分出力するものだとエスパーしてみた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10184.c
0381デフォルトの名無しさん
2009/11/26(木) 19:38:28〜課題4〜
文字型配列 str='ABCDEFG'が初期設定されている。このstrのデータを英大文字から、英小文字に変換しなさい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10186.c
0382デフォルトの名無しさん
2009/11/26(木) 19:40:12× while (n-- >= 0)
○ while (n-- > 0)
0383デフォルトの名無しさん
2009/11/26(木) 20:40:17これだな
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/669
669 名前:デフォルトの名無しさん[[email protected]] 投稿日:2009/10/05(月) 00:26:36
どなたか、Visual BasicをC言語に書き換えることができる方いませんか?
元のプログラムが少し長いので、可能な方はメールにてお知らせいただければ、
問題文を添付させていただきたいと思っています。
よろしくお願い致します。
0384デフォルトの名無しさん
2009/11/26(木) 20:48:49[2] 問題文(含コード&リンク):少なくとも以下の英文を日本語分に翻訳できるプログラムを作成せよ
1.The boy beats a dog with a stick.
2.Every boy loves a dog .
3.The dog is loved by every boy.
4.The boy saw a girl with a telescope.
5.The boy saw a girl with a dog.
6.The boy cut a stick with a saw.
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C
[4] 期限:明日の17時まで
[5] その他の制限:キーボードから入力文を入力し、ディスプレイに翻訳結果を出力する
外部ファイルを参照すれば良いのかと思ったけど手も足も出ませんでした。
よろしくお願いします。
0385デフォルトの名無しさん
2009/11/26(木) 20:57:22女の人に頼め
0386デフォルトの名無しさん
2009/11/26(木) 21:02:32その通りです!
わざわざ探してくださってありがとうございます。
あの時に回答してくれた方がこの書き込みに気付いてくれることを祈ります…
0387デフォルトの名無しさん
2009/11/26(木) 21:06:22女の人とは??
0388デフォルトの名無しさん
2009/11/26(木) 21:07:44仕事として発注したなら、
受注した方は守秘義務の観点から既に削除している可能性が高いわけで…
0389デフォルトの名無しさん
2009/11/26(木) 21:11:41[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10187.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: visual studio
[3.3] 言語:C言語
[4] 期限:2009年11月30日
[5] その他の制限:なし
0390デフォルトの名無しさん
2009/11/26(木) 21:12:07明日までなのにできなくて…
0391デフォルトの名無しさん
2009/11/26(木) 21:26:17数百回分の計算データがありそのデータを10回毎に見ていって(10回目、20回目、30回目…)前にみた時より、
aが50増えたらaをbに変更するもの作りたいのですが、どなたかアドバイスください。
0392デフォルトの名無しさん
2009/11/26(木) 21:32:26[2] 問題文(含コード&リンク):
3つの自然数を辺にもつ直角三角形を1000個出力するプログラムを書きなさい。
ただし、3つの辺 a, b, c は a <= b <= c とする。
また、3辺の比率が同じものはカウントしないこととする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:11月30日24:00まで
[5] その他の制限:まだあまり習っていないのでできるだけ簡単なコードで書いていただけるとありがたいです
どうしてもできません
よろしくお願いします
0393デフォルトの名無しさん
2009/11/26(木) 21:33:07具体例を出して分かるように説明してくれれば…
0394デフォルトの名無しさん
2009/11/26(木) 21:51:53[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10188.txt
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 特になし
[5]特になし
gccをするとincompatible type for argument a of distanceというエラーが出ます。
エラーの文の意味は分かるのですが、変数のタイプは一致しているのでは?という自分の認識で困っています・・・・。
どなたかこのエラーが何故出るか教えてください。
0395デフォルトの名無しさん
2009/11/26(木) 21:54:18全く違います
0396デフォルトの名無しさん
2009/11/26(木) 21:54:38ピタゴラスの定理から適当に1000個取りだした。
#include<stdio.h>
int main(){
int n=2,i;
for(i=0;i<1000;++i){
int m = 5+i*2;
int a = 2*m*n;
int b = m*m-n*n;
int c = m*m+n*n;
printf("a=%d b=%d c=%d\n",a,b,c);
}
return 0;
}
0397デフォルトの名無しさん
2009/11/26(木) 21:57:52素直にやるならこんな感じか
http://codepad.org/KEgPTtQ9
0398デフォルトの名無しさん
2009/11/26(木) 21:58:06#include<stdio.h>
#include<math.h>
int gcd(int a, int b){
int c;
while((c=a%b)) a=b, b=c;
return b;
}
int is_ok(int a, int b, int c){
return (a<=b && (c*c==a*a+b*b) && (gcd(a, gcd(b, c))==1));
}
int main(void){
int a, b, c, count=0;
for(c=2;count<1000;c++){
for(b=c/1.42;b<c && count<1000;b++){
a=sqrt(c*c-b*b);
if(is_ok(a, b, c) || is_ok(++a, b, c)){
printf("%4d : a=%d b=%d c=%d\n", ++count, a, b, c);
}
}
}
return 0;
}
0399デフォルトの名無しさん
2009/11/26(木) 21:59:06ソース的にはxとyの配列そのものを渡したいようだから
distance(x,y);
で関数を呼び出し、
double distance(double *x,double *y)
で受け取らないといけない。
というか、
(double x[],double y[])
みたいな記述は出来ない。
ついでに言うとdistance関数でreturn記述されてないからエラーか警告出てるはず
0400デフォルトの名無しさん
2009/11/26(木) 22:00:44同じ比率はカウントしないって言ってんのにそれかよw
0401デフォルトの名無しさん
2009/11/26(木) 22:01:40例えばですが…
お店の売り上げデータaをb日間毎日取り、c日おきにその売り上げデータを見ていきます。
c=10ならば10日,20日,30日…
そして売り上げが前回(現在が40日目だったら前の30日目)と比較してしたときより+500増えていたら
売り上げデータaを嘘の売り上げデータeに書き換えという感じのものです。
ちょっとわかりにくいと思いますがすみません…
0402デフォルトの名無しさん
2009/11/26(木) 22:04:48>>391のbは何?
0403デフォルトの名無しさん
2009/11/26(木) 22:05:31>(double x[],double y[])
>みたいな記述は出来ない。
できるよ
意味はポインタと同じ
0404デフォルトの名無しさん
2009/11/26(木) 22:08:22>>391のbは>>401だとeです
わかりずらくてすみません…
0405デフォルトの名無しさん
2009/11/26(木) 22:09:10データ改竄の手伝いをしろと?
0406デフォルトの名無しさん
2009/11/26(木) 22:10:37このデータならこうなって欲しいというのがあると分かりやすい
実際にダミーのデータを作って説明してつかい
0407デフォルトの名無しさん
2009/11/26(木) 22:11:49[2] 問題文(含コード&リンク):
課題1、文字列、と2つの整数(それぞれ n, m とする)を入力すると
n文字目から m文字 *に変えるプログラムを書け。
実行例
文字を入力して下さい
Toshidaigaku
nを入力して下さい
4
mを入力して下さい
2
出力は
Tos**daigaku
課題2、文字列を入力すると、全ての文字を次の文字コードの文字に
変えて、結果を表示するプログラムを書け。
実行例
文字を入力して下さい
Toshidaigaku
出力は
Uptijebjhblv
0408デフォルトの名無しさん
2009/11/26(木) 22:12:51a の個数を数えるプログラムを書け。
実行例
文字を入力して下さい
Toshidaigaku
aが2個含まれています
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C++
[4] 期限: 申しわけないのですが明日、11月27日までです。
[5] その他の制限:
#include <stdio.h>
int main()
スタートでお願いします。
0409デフォルトの名無しさん
2009/11/26(木) 22:18:23変な例を出してしまいましたが…
a毎にデータを取っていき、前回と比較して指定した数値を越えていたら転置を行うプログラムです。
0410デフォルトの名無しさん
2009/11/26(木) 22:19:05文字列を str[],ループカウンタにint型の i を宣言しているとして、
課題1
for(i=0;i<m;i++) str[n+i-1]='*";
課題2
for(i=0;i<strlen(str);i++) str[i]++;
課題3
int count=0;
for(i=0;i<strlen(str);i++) if(str[i]=='a')count++;
後は自分で考えな。
0411デフォルトの名無しさん
2009/11/26(木) 22:20:01課題1
× '*"
○ '*'
0412デフォルトの名無しさん
2009/11/26(木) 22:29:26>>401の例で20日目が2600円で10日目が2000円だとすると前回のデータより+500円以上増えていて
書き換えの条件が満たされているので2600円を-600円して2000円にする。
500円以上増えていたら-600円、500円以上になってなかったらデータはそのままにしておくという感じです。
0413392
2009/11/26(木) 22:34:39>>397
>>398
ありがとうございます
こんなにすぐにできるとは思ってませんでした
ちなみに>>397を同比率を除くようにするにはどうしたらいいんでしょうか?
少し気になったのでよろしければ教えてください
0415デフォルトの名無しさん
2009/11/26(木) 22:42:39最大公約数が1
0416デフォルトの名無しさん
2009/11/26(木) 23:00:46>>357
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10189.c
0418デフォルトの名無しさん
2009/11/26(木) 23:17:370419373
2009/11/26(木) 23:21:37当方の環境は Windows XP/cygwin 処理系は gcc 3.4.4. です。
http://codepad.org/31SYKANG
メモリーリークがあったらごめんなさい。
0420デフォルトの名無しさん
2009/11/26(木) 23:38:23ありがとうございます。
助かりました。
がんばってみます
0421デフォルトの名無しさん
2009/11/26(木) 23:39:12http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10190.c
0422419
2009/11/27(金) 00:14:33残念ながら、問題の半分しかできていないことが判明しました。
アルファベット順の出力のあと、出現度順でも出力しなければならないところが、前半のアルファベット順しか出力できていません。
今日は疲れたので、また明日考えます。おやすみなさい。
0423デフォルトの名無しさん
2009/11/27(金) 00:45:15using namespace std;
int main() {
int m=48,n=36,t,i;
for(i=0;;i++) {
cout << "m" << i << " " << m << " n" << i << " " << n << '\n';
if(!(t=m%n))
break;
m=n;
n=t;
}
cout << "n" << i << "=" << n << '\n';
return 0;
}
お願いします。C++ですが、これのフローチャート教えてくれませんか?本当に助けてください
0424423
2009/11/27(金) 00:47:180425デフォルトの名無しさん
2009/11/27(金) 01:08:08[2]
(1) int値 n,一つのcharポインタpを引数に持ちcharポインタを戻り値型とする関数atosを次の仕様のもとに作成
pがNULLでないならばそれが指す領域をdelete[]解放してNULLを返す。pがNULLの場合はpに16文字分の領域を割り当て,指す領域にsprintf関数によりnの10進文字列表現を書き込
みそれを返す。
(2) キーボードから正の整数が入力され、入力促進文字列(プロンプト)を表示し
入力待ちを行い、入力された整数をint参照型引数nに入れて戻る関数inputを作成
マニュピュレータやscanfを使用しないこと。
(3)8個のintへの参照引数を持つsortという名称のvoid関数を作成
左からみてある引数が負ならそれを含めた残りの引数を整列対象としない条件のもとで
引数を小さい順に整列。整列対象の数を一行一列に空白区切りで出力する。
この時atos関数を使うこと。処理記述にループ(ループ文を使うこと)があってはならない。
(4) (1)~(3)の関数を用いてmain(void)関数を実行すると,それまでに入力された正の整数を
sort関数を用いてソート/表示した後新しい整数をinput関数を用いて読み込む
ことを8回繰り返した後、入力された8個の整数を整列したものをsort関数により表示する
ようなものを作成する。for文とswitch文を使うこと。配列を使わないこと。
(5) (1)〜(4)についてそれぞれ独立にテストしたコードを作成すること
[3] MacOS-X(Leopald)/g++ 3.0/C++言語
[4] 今週末まで
[5]stdio.h stdlib.hの使用が許可される。malloc/freeの使用禁止。new/delete ([]も可)を
使うこと。取得したメモリ領域はmain関数から戻るまでに解放する一般的なC++コードの
標準に従うものとする。
0426425
2009/11/27(金) 01:26:20>(2) キーボードから正の整数が入力され、入力促進文字列(プロンプト)を表示し
>入力待ちを行い、入力された整数をint参照型引数nに入れて戻る関数inputを作成
>マニュピュレータやscanfを使用しないこと。
(2) キーボードから正の整数が入力されるまで、入力促進文字列(プロンプト)を表示し
入力待ちを行い、入力された整数をint参照型引数nに入れて戻る関数inputを作成
マニュピュレータやscanfを使用しないこと。
0427デフォルトの名無しさん
2009/11/27(金) 01:37:49手抜き
http://codepad.org/GcMXEEI9
0428>>358 ◆DBNFZzxhyk
2009/11/27(金) 12:21:580429デフォルトの名無しさん
2009/11/27(金) 13:02:140430デフォルトの名無しさん
2009/11/27(金) 17:12:17[2] コマンドラインで与えられた整数を読み取りその総和を返す関数を作りなさい。
但し、一つでも数字でない文字列が与えられた場合はその文字列を表示し、計算できない
ことをメッセージ出力する。整数は64ビット符号付き整数の範囲とし与えられた数が
その範囲に収まらない場合や総和の計算の途中でそうなる場合も、オーバーフローする
旨メッセージ出力すること。
[3] OS:WIndows Vista コンパイラ:Visual studio 2005 言語:C言語
[4] 12/1まで
[5] 使用するライブラリが少ない程高い評価が付くそうです。
時間的に辛いので丸投げします。よろしくお願いします
0431422
2009/11/27(金) 18:21:12http://codepad.org/eaPzEtd4
0432デフォルトの名無しさん
2009/11/27(金) 20:17:03[2] 問題文(含コード&リンク):
最大10桁の数字列sと 10000 以下の正整数dが
与えられたとき、sの各数字を並べ替えて出来る全
ての数の中で、dで割り切れる数の総数を求める。
計算例) s, d => 解
・ 000, 1 => 1
・ 1234567890, 1 => 3628800
・ 123434, 2 => 90
[3] 環境: C, C++ どちらでも可
[4] 期限:無期限
[5] その他の制限:
出来る限り速いアルゴリズムでお願いします。
総当りしか思い付きません・・・orz
0433デフォルトの名無しさん
2009/11/27(金) 20:48:08#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
void hoge(int *number, int *is_used, int size, int d, long long value, int *count){
int i, prev=-1;
for(i=0;i<size;i++){
if(is_used[i] || prev==number[i]) continue;
is_used[i]=1;
hoge(number, is_used, size, d, value*10+number[i], count);
is_used[i]=0;
prev=number[i];
}
if(prev<0 && value%d==0) *count+=1;
}
int cmp(const int *a, const int *b){return *a-*b;}
void fuga(char *s, int d){
int number[10], is_used[10]={0}, count=0, i;
for(i=0;i<10 && s[i];i++){
if(!isdigit(s[i])) return;
number[i]=s[i]-'0';
}
qsort(number, i, sizeof(int), (int (*)(const void*,const void*))cmp);
hoge(number, is_used, i, d, 0LL, &count);
printf("%s, %d => %d\n", s, d, count);
}
int main(void){
fuga("000", 1);
fuga("1234567890", 1);
fuga("123434", 2);
return 0;
}
表示されました、ありがとうございます。
0435デフォルトの名無しさん
2009/11/27(金) 23:06:22[2] 問題文(含コード&リンク):
課題1 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10193.txt
課題2 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10192.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明日11:30までに
よろしくお願いします。
0436431
2009/11/27(金) 23:24:02訂正します。
http://codepad.org/qS3Gh6kJ
0437デフォルトの名無しさん
2009/11/28(土) 01:17:53http://codepad.org/7dntfMeW
http://codepad.org/l5bQp6Jr
即興とはいえ情けなくなるほど汚いソースだorz
0438デフォルトの名無しさん
2009/11/28(土) 01:21:40[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10181.txt
[3] 環境
[3.1] OS:Linux (emacsで作成して、ktermでコンパイルするやつです。)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:11月29日17:00
こちらもどうかよろしくお願いいたします。。
0439デフォルトの名無しさん
2009/11/28(土) 01:32:52http://codepad.org/Dp7XMBV2
0440デフォルトの名無しさん
2009/11/28(土) 01:33:39課題2
#include<stdio.h>
int main(void)
{
int i, j, n=5;
scanf("%d", &n);
for(i=0;i<n;i++)
{
printf("%*s", n-1-i, "");
for(j=0;j<i*2+1;j++) printf("*");
printf("\n");
}
return 0;
}
0441439
2009/11/28(土) 01:36:360442デフォルトの名無しさん
2009/11/28(土) 02:05:45課題1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10194.txt
0443デフォルトの名無しさん
2009/11/28(土) 02:11:17#include <stdio.h>
#include <math.h>
int main(void) {
double a, b, c;
scanf("%lf %lf %lf", &a, &b, &c);
if (a == 0) {
if (b == 0) {
if (c == 0) {
printf("x=任意の複素数\n");
} else {
printf("解なし\n");
}
} else {
printf("x=%f\n", -c/b);
}
} else {
double D = b*b - 4*a*c;
if (D < 0) {
printf("x=%f%+fi, x=%f%+fi\n", -b/(2*a), sqrt(-D)/(2*a), -b/(2*a), -sqrt(-D)/(2*a));
} else if (0 < D) {
printf("x=%f, x = %f", (-b+sqrt(D))/(2*a), (-b-sqrt(D))/(2*a));
} else {
printf("x=%f\n", -b/(2*a));
}
}
return 0;
}
0445デフォルトの名無しさん
2009/11/28(土) 11:51:12本当に困っています。
見ていたらよろしくお願い致します。
0446デフォルトの名無しさん
2009/11/28(土) 12:12:36その人が仮に見ていても、恐らく良心から意図的に捨ててるだろうよ。
そして恐らく再度やってくれることも無いと思われ。
ファイルで個人情報、企業情報が入っていない部分だけ再度アップして、
やってくれる人が他にまだ居るかどうか確かめてみたらどう?(俺はPASS
だし本人でもない)
0447デフォルトの名無しさん
2009/11/28(土) 16:39:58ありがとうございました!!
0448デフォルトの名無しさん
2009/11/28(土) 17:29:57移植した事がある
そんなに大きなプログラムではなかったがそれでも3日かかった
仕事でやったから問題なかったが、個人的に頼むと料金が発生すると
思うよ3日もかかるんじゃ
0449デフォルトの名無しさん
2009/11/28(土) 18:52:46著作権関係の料金がかかるかもな
0450デフォルトの名無しさん
2009/11/28(土) 20:10:11その逆もあるので大部分は相殺だよ
ただそれぞれの言語の長所が生かせていないものを交換
する場合を除いて徒労に終わるケースが多いけど
0451デフォルトの名無しさん
2009/11/28(土) 22:47:32[2] 4つの数を大きさの小さい順に並べ替える関数 Sort4(int *a,int *b.int *c,int *d)
(呼び出し後a<=b<=c<=dとなる)を作り、この関数を利用してキーボードから4つ
の整数を読み取り、大きい順に出力するプログラムを作りなさい。
Sort4関数の中ではループ文(while/do while/for)を用いないこと
[3]
OS :Windows XP
コンパイラ:Borland C++ 5.5.1
言語:C言語
[4] 12/8迄
[5] stdio.h string.hのみを利用 文字列入出力にはfgets/fprintfのみを使うこと。
malloc関数は利用出来ない。テキストファイルの行数、行内文字数に制限は無い。
0452451
2009/11/28(土) 22:49:16よろしくです
0453451
2009/11/28(土) 22:56:05>またライブラリ関数を含め、外部関数を呼び出してはならない
を追加してください。度重なる追加修正すみませんでした
0454デフォルトの名無しさん
2009/11/28(土) 23:08:09#include<stdio.h>
void Sort4(int *a, int *b, int *c, int *d)
{
if(*a>*b) *a^=*b,*b^=*a,*a^=*b;
if(*c>*d) *c^=*d,*d^=*c,*c^=*d;
if(*a>*c) *a^=*c,*c^=*a,*a^=*c;
if(*b>*d) *b^=*d,*d^=*b,*b^=*d;
if(*b>*c) *b^=*c,*c^=*b,*b^=*c;
}
int main(void)
{
int a, b, c, d;
while(scanf("%d%d%d%d", &a, &b, &c, &d)==4)
{
Sort4(&a, &b, &c, &d);
printf("a=%d b=%d c=%d d=%d\n", a, b, c, d);
}
return 0;
}
0456デフォルトの名無しさん
2009/11/29(日) 00:20:53[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10195.txt
[3] 環境
[3.1] OS: Windows/vista
[3.2] コンパイラ名とバージョン:VS2008
[3.3] 言語: C++
[4] 期限: 2009/12/31まで
よろしくお願いします。
0457デフォルトの名無しさん
2009/11/29(日) 01:54:19454じゃないけどXOR交換アルゴリズムといわれている手法
http://ja.wikipedia.org/wiki/XOR%E4%BA%A4%E6%8F%9B%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
同じ数字が1組以上あると正常に動作しないことに注意
0458デフォルトの名無しさん
2009/11/29(日) 01:59:37[2]99文字までの文字列を入力し,アルファベットの小文字は大文字に,アルファベットの大文字は小文字に,
またアルファベット以外の文字はアスタリスク’*’に変換した文字列を出力するプログラムを作成せよ.
[3] microsoft visual c++ 2008
[4]月曜日に提出です
[5]以下、実行結果です。
99文字以下の文字列を入力してください.abcABC123sDFgh#"x32YY=
変換された文字列はABCabc***SdfGH**X**yy*です.
追伸:
ちなみにどうやらアスキーコードを使うらしいです。
大文字のコードに32を足せば小文字のコードになるとか言ってました。
これを使わなければいけないようです。
あとライブラリ関数は使用不可です。
文字列とかやったの初めてです。
どうかお願いします。
0459デフォルトの名無しさん
2009/11/29(日) 02:01:38自分ではここまではなんとか書きました。
#include<stdio.h>
int main(void)
{
char x[100];
int i;
printf("99文字以下の文字列を入力してください");
scanf("%s",x);
for(i=0;;i++)
if(x[i]==0)
break;
printf("変換された文字列は%sです.",x[100]);
}
自分でも何してるのかあんまりわからないです…
0460デフォルトの名無しさん
2009/11/29(日) 02:13:36void convert(char* x, int len){
for (int i=0; i<len; i++){
if ( ('a' <= x[i]) && (x[i] <= 'z') )
x[i] -= 32;
else if ( ('A' <= x[i]) && (x[i] <= 'Z') )
x[i] += 32;
else
x[i] = '*';
}
}
int main(void)
{
char x[100];
int i;
printf("99文字以下の文字列を入力してください");
scanf("%s",x);
convert(x, 99);
printf("変換された文字列は%sです.",x[100]);
}
0461デフォルトの名無しさん
2009/11/29(日) 02:24:46すいません、習ってなくてよくわからなくて…
includeとint main(void)の間にプログラムとか入れたんですね。
正直よくわかりませんが…、まだ習い始めて二ヶ月程度経ってすらなくて…
0462デフォルトの名無しさん
2009/11/29(日) 02:26:57全角スペースは使うな。
あと、実行したらどうなるか考えてから書き込め
0463デフォルトの名無しさん
2009/11/29(日) 02:29:35#include <stdio.h>
int main(void)
{
int i;
char x[100];
scanf("%s", x);
for(i=0; x[i]; i++) {
if('a'<=x[i] && x[i]<='z') x[i] -= 32;
else if('A'<=x[i] && x[i]<='Z') x[i] += 32;
else x[i] = '*';
}
printf("%s", x);
return 0;
}
0464デフォルトの名無しさん
2009/11/29(日) 02:30:080465デフォルトの名無しさん
2009/11/29(日) 02:32:510467466
2009/11/29(日) 02:39:120468465
2009/11/29(日) 02:39:530469デフォルトの名無しさん
2009/11/29(日) 02:40:04本当に有難うございます。
少し気になるのですが、ifの後の()にある&&と””はどういう意味ですか?
いつも私は(;;)という感じで書きますので…
0470デフォルトの名無しさん
2009/11/29(日) 02:49:120471デフォルトの名無しさん
2009/11/29(日) 02:52:03…すいません、私の勘違いでした。forと間違いました。
でも&&とか''は使ったことないので、意味とかを教えていただければ助かります。
0472デフォルトの名無しさん
2009/11/29(日) 02:56:520473デフォルトの名無しさん
2009/11/29(日) 03:07:050474デフォルトの名無しさん
2009/11/29(日) 06:40:150475デフォルトの名無しさん
2009/11/29(日) 08:55:52[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10196.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Borland C++ 5.5.1
[3.3] 言語:C
[4] 期限:[2009年11月30日23:00まで]
[5] その他の制限:問題参照
自分でも考えたのですが分岐やループが複雑になってしまって駄目でした
よろしければお願いします
0476デフォルトの名無しさん
2009/11/29(日) 09:14:45本当に授業でやってないんだ…
0477デフォルトの名無しさん
2009/11/29(日) 09:14:52#include <stdlib.h>
int main(void)
{
int k, m, n, q, r;
do { scanf("%d", &n); } while(n==1);
k=2;
while(1) {
m = k * k;
if(m > n) {
printf("%d", n);
exit(1);
}
q = n / k;
r = n % k;
if(r) k++;
else {
printf("%d ", k);
if(q==1) exit(1);
n = q;
}}
return 0;
}
0478デフォルトの名無しさん
2009/11/29(日) 09:22:31#include<stdio.h>
int main(void){
int k, m, n, q, r;
step1: do{
printf("\nInput n : ");
scanf("%d", &n);
}while(n<=1);
step2: k=2;
step3: m=k*k;
step4: if(n<m){
printf("%d\n", n);
exit(1);
}
step5: if(n>=m)
{
q=n/k;
r=n%k;
}
step6: if(r!=0){
k++;
goto step3;
}
step7: if(r==0) printf("%d*", k);
step8: if(q==1){
exit(1);
}else{
n=q;
goto step4;
}
return 0;
}
0479デフォルトの名無しさん
2009/11/29(日) 10:02:16この手の宿題って、アルゴリズムを手順に分解するときに無駄が多いよなあ。
個人的には↓のようにしたいところだが。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10198.c
0480デフォルトの名無しさん
2009/11/29(日) 10:29:46> 自然数Nが素因数分解できるとき、N≧G^2となる素因数Gが存在することが数学的に証明されている
本当ですか?
17 >= 4 * 4
0481デフォルトの名無しさん
2009/11/29(日) 10:30:27ありがとうございました
助かります
>>478
goto文も一つ一つにラベルをつけてやると処理がわかりやすいですね
>>479
そんな単純に記述できるんですね
勉強になりました
0482デフォルトの名無しさん
2009/11/29(日) 10:32:40テキストの問題通りだとすればそう記述されています
0483デフォルトの名無しさん
2009/11/29(日) 10:33:4017は素因数分解出来るのかい。
0485デフォルトの名無しさん
2009/11/29(日) 10:46:250486デフォルトの名無しさん
2009/11/29(日) 11:23:32[2] 問題文: 1〜100までの数字を繰り返し入力し、最後に0を入力するとこれまでに
入力された値の合計値を表示するプログラムを作成しなさい。ただし
1〜100以外の数字が入力されたときは”エラー”と表示させる。
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 12月10日
どなたか、よろしくお願いします。
0487デフォルトの名無しさん
2009/11/29(日) 13:07:49#include<stdio.h>
int main(){
int n,sum = 0;
scanf("%d",&n);
while(n >= 1 && n <= 100){
sum = sum + n;
scanf("%d",&n);
}
if(n == 0)
printf("%d\n",sum);
else
printf("エラー\n");
}
0488デフォルトの名無しさん
2009/11/29(日) 13:15:53[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10199.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VS2008
[3.3] 言語: C++
[4] 期限: 2009年11月29日24:59分まで
本日までなのでよろしくお願いします。
0489デフォルトの名無しさん
2009/11/29(日) 14:11:49遅ればせながら、ありがとうございました。
0490デフォルトの名無しさん
2009/11/29(日) 14:44:46using namespace std;
int main() {
int m=48,n=36,t,i;
for(i=0;;i++) {
cout << "m" << i << " " << m << " n" << i << " " << n << '\n';
if(!(t=m%n))
break;
m=n;
n=t;
}
cout << "n" << i << "=" << n << '\n';
return 0;
}
ユーグリッドの互除法で、最大公約数を求めたプログラムなんですが、本当にお願いします。プログラムは書けたんですが、誰かこれのフローチャートを教えてください…これのフローチャートがかけないんです。しかも、テストに出るらしいです。これを書くのが
始まりと終わり→楕円
処理を行う→四角
判断を行う→ひし形
です
0491デフォルトの名無しさん
2009/11/29(日) 15:23:46Googleあたりで、"ユークリッドの互除法 フローチャート"で検索すればいくらでも出てくると思う。
0492デフォルトの名無しさん
2009/11/29(日) 17:21:54http://codepad.org/XXOGYvKz
0493デフォルトの名無しさん
2009/11/29(日) 17:25:160494デフォルトの名無しさん
2009/11/29(日) 17:41:110495デフォルトの名無しさん
2009/11/29(日) 17:45:50g1 = g2;
g2 = g3;
}
0496デフォルトの名無しさん
2009/11/29(日) 17:47:23短くかいてるけど、効率としては格段に落ちるものが美しいとかw
0497デフォルトの名無しさん
2009/11/29(日) 18:30:00[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10200.txt
[3] 環境
[3.1] OS:Windows vista
[3.2] bcc5.5.1
[3.3] 言語:C
[4] 期限:2009年11月30日16時
[5] その他の制限:問題文参照
よろしくお願いします
0498デフォルトの名無しさん
2009/11/29(日) 18:34:450499デフォルトの名無しさん
2009/11/29(日) 20:32:390500デフォルトの名無しさん
2009/11/29(日) 21:09:58stdio.hしか使ったらだめなの?
0501デフォルトの名無しさん
2009/11/29(日) 21:13:38>while(*p++) p2-=2;
なんなんだよ、これはw
下のから考えると
while(*p2) p2++;
p2--;
だろw
0502デフォルトの名無しさん
2009/11/29(日) 21:23:07このwhileループだとp2のアドレスがNULL文字まで移動するんで
while抜けた後にポインタ一つ戻す(p2--)とよい。
(そうしないと反転後のpの先頭文字がNULL→空文字列扱いとなる)
あくまで既存のソースを再利用するなら、だけどね。
0503デフォルトの名無しさん
2009/11/29(日) 21:25:290504423
2009/11/29(日) 21:26:160505デフォルトの名無しさん
2009/11/29(日) 21:27:310506デフォルトの名無しさん
2009/11/29(日) 21:27:54うん。今気づいた。死にたい。
0507デフォルトの名無しさん
2009/11/29(日) 21:42:30void read_data_file(char*file){
int i, n;
FILE *fp;
fp = fopen(file, "r");
fscanf(fp, "%d", &n);
for(i=0; i<n; i++) fscanf(fp, "%d", W + i);
for(i=0; i<n; i++) fscanf(fp, "%d", P + i);
fclose(fp);
}
void write_data_file(char*file,int N){
int i;
FILE *fp;
fp = fopen(file, "w");
fprintf(fp, "%d\n", N);
for(i=0; i<N*2; i++) fprintf(fp, "%d\n", rand() % 100 + 1);
fclose(fp);
}
0508デフォルトの名無しさん
2009/11/29(日) 21:56:58よく考えると、qが1になることってありえなくね?
0509デフォルトの名無しさん
2009/11/29(日) 22:01:25自分が作ったそのプログラムを基にしないといけないし、しかも、あったけど記号とかも台形とかだったりするんですよ…
テストにでるみたいだから誰か本当に教えてください
0510デフォルトの名無しさん
2009/11/29(日) 22:08:58stdio.hのみでお願いします
>>501
正直よくわかっていないのでプログラム書いていただけたら幸いです
0511デフォルトの名無しさん
2009/11/29(日) 22:09:34回答はあんまり期待できないと思うぜ
0512デフォルトの名無しさん
2009/11/29(日) 22:11:33void reverse(char *p)
{
char *p2 = p, tmp;
while(*p2) p2++;
while(p < --p2) {
tmp = *p;
*p++ = *p2;
*p2 = tmp;
}
}
0513デフォルトの名無しさん
2009/11/29(日) 22:24:25なるほど
とても参考になりました
感謝します
0514デフォルトの名無しさん
2009/11/29(日) 22:33:16char *p2 = p, tmp;と宣言していますが
char *p2,tmp;
*p2=p;
とした場合、移植性のないポインタ変換とエラーが出て
char *p2,tmp;
p2=p;
には問題がないのはなぜでしょうか
ポインタについてはまだわからないところが多いのでつまらないことでしたらスルーしてもらってもかまいません
0515デフォルトの名無しさん
2009/11/29(日) 22:39:08変数初期化
↓
ループ開始
↓
mとnの値を出力
↓
m/nの余りが0か→(Yes)ループ抜ける→nの値を出力
↓(No)
m=n
n=除算の余り
←ループに戻る
これだけでいいんじゃね?
0516デフォルトの名無しさん
2009/11/29(日) 22:39:16宣言時の初期化char *p2 = p; は
char *p2;
p2 = p;
と同じ意味で、
char *p2;
*p2 = p;
とは全くの別物。
0517デフォルトの名無しさん
2009/11/29(日) 22:40:43勉強になります
本当にありがとうございました
0518デフォルトの名無しさん
2009/11/29(日) 22:43:47ポインタが指すアドレスの"値"を取得するのにアスタリスク使うのとで混乱しやすい。
0519デフォルトの名無しさん
2009/11/29(日) 22:55:01[2] 問題文(含コード&リンク): 2つの浮動小数点型(double型)の値を
「気温(度)」「湿度(%)」を表す値として2つの因数で受け取り
それらの値によって求められた不快指数の値(double型)を戻り値とする
関数をfukaiという関数で作成。
さらに、このfukai関数を利用し、キーボードから気温と湿度を入力すると
不快指数の値を表示するプログラムを作成。
体感を表す言葉として、不快指数が60未満で[cold],60以上75未満[comfort]
75以上[discomfort]と表示するようにすること。
※気温をt 湿度をhとすると
不快指数=0.81×t+0.01×h×(0.99×t−14.3)+46.3
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 2009年11月30日22:00まで
どうかお願いします。
0520デフォルトの名無しさん
2009/11/29(日) 22:58:35授業で教えられた形状でないとだめなら友達からノートでも借りないとむり
0521デフォルトの名無しさん
2009/11/29(日) 23:05:48>>184
0522デフォルトの名無しさん
2009/11/29(日) 23:08:17ありがとうございます
0523デフォルトの名無しさん
2009/11/29(日) 23:13:05#include <stdio.h>
double fukai(double temp, double humidity)
{
return 0.81 * temp + 0.01 * humidity * (0.99 * temp - 14.3) + 46.3;
}
int main()
{
double temp, humidity, discomfort_index;
printf("気温(度) = ");
scanf("%lf", &temp);
printf("湿度(%) = ");
scanf("%lf", &humidity);
discomfort_index = fukai(temp, humidity);
printf("不快指数 = %f\n", discomfort_index);
if (discomfort_index < 60.0)
puts("[cold]");
else if (discomfort_index < 75.0)
puts("[comfort]");
else
puts("[discomfort]");
return 0;
}
0524デフォルトの名無しさん
2009/11/29(日) 23:13:50やり方は何でもいいんですが、
始まりと終わり→楕円
処理を行う→四角
判断を行う→ひし形
ならいいんです…
0525デフォルトの名無しさん
2009/11/29(日) 23:16:58もし可能ならばお願いします
0526490
2009/11/29(日) 23:22:22もう本当にダメです。誰か教えてください。絶対間違ってますので
0527デフォルトの名無しさん
2009/11/29(日) 23:23:19[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10201.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語: C++
[4] 期限: 11月30日16:00まで
[5] その他の制限: 問題文を参照
よろしくお願いします
0528デフォルトの名無しさん
2009/11/29(日) 23:23:59Googleとかで調べたページに記号の説明ぐらい書いてあるでしょ
置換することもできない?
0529デフォルトの名無しさん
2009/11/29(日) 23:24:11大抵の遺伝的プログラミング/アルゴリズムの解説書には載っていると思うけど
簡単めのだったら
伊庭 斉志 著『Cによる探索プログラミング 基礎から遺伝的アルゴリズムまで』
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06730-3
でも読んだらいいよ
いまからでも間に合う、書店に急げ
0530デフォルトの名無しさん
2009/11/29(日) 23:32:580531490
2009/11/29(日) 23:42:21このプログラムを基にして作らないといけないじゃないですか
0532デフォルトの名無しさん
2009/11/29(日) 23:59:11目的のプログラムのフローチャートがそのまま落ちてる訳無いだろ
そのくらい自分の頭使え
0533490
2009/11/30(月) 00:15:27テストに同じ問題出るから焦ってるんです助けてください
0534デフォルトの名無しさん
2009/11/30(月) 00:16:490535デフォルトの名無しさん
2009/11/30(月) 00:17:52覚えた解答は意味が無い
本質を見極めろ
0536490
2009/11/30(月) 00:25:420537デフォルトの名無しさん
2009/11/30(月) 00:28:30そんなわかり切ってること言うなよ
0538デフォルトの名無しさん
2009/11/30(月) 01:12:07ttp://77c.org/d.php?f=nk11571.gif
0539デフォルトの名無しさん
2009/11/30(月) 01:24:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10203.txt
済みません多分題意に沿ってないプログラムですが一応動くので
考え方を何回四でもよく意味がわかりませんでした
0540デフォルトの名無しさん
2009/11/30(月) 01:40:14プログラムをそのままフローチャートにした
ttp://www1.axfc.net/uploader/Img/so/66309.jpg
0541540
2009/11/30(月) 01:42:330542デフォルトの名無しさん
2009/11/30(月) 01:58:38>>539ありがとうございます
問題見直したら、先ほどの問題に不備がありました・・・訂正後問題↓↓↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10204.txt
行列が2つとも5×5で指定されていました。
申し訳ありません
考え方のところは私も読めば読むほど混乱しまって・・・
是非、時間があるかたよろしくお願いします。
0543デフォルトの名無しさん
2009/11/30(月) 02:46:54いや4×4が5×5になったとしてもちょっといじるだけですぐ出来る
んだけど、aとbという二つの行列があって、題意に沿えばa,b両方
とも使わなければならないんだけど、それとは別に捉えてa^(-1)と
b^(-1)とdetAとdetBを求めるのでもいいんだね?
それかA^(-1)Bを求めるのかよくわからない
とにかく自分で適当に判断して書くよ
考え方がよくわからないので
0544デフォルトの名無しさん
2009/11/30(月) 02:59:53http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10205.txt
ほい
これで0点という事はないと思うが考え方に沿ってないので
減点されるかもしれん
答えは合ってるはずなので
0545デフォルトの名無しさん
2009/11/30(月) 03:39:41ありがとうございます。
とても助かりました
0546デフォルトの名無しさん
2009/11/30(月) 06:54:510547デフォルトの名無しさん
2009/11/30(月) 07:06:34どちらが処理の記述に適しているか判定するアルゴリズムはある?
0548デフォルトの名無しさん
2009/11/30(月) 08:14:52ありがとうございました!
0550デフォルトの名無しさん
2009/11/30(月) 11:24:22[2] 問題文(含コード&リンク):
2進数と10進数の相互変換のプログラムを作る。
自作関数として変換(計算)部分と入力部分とを分ける。
正負の数、少数も変換できるようにする。
入力はScanfを使用する。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C言語
[4] 期限: 2009年12月01日まで
[5] その他の制限: 特にありません。
期限が明日と短いですが、よろしくお願いします。
0551431
2009/11/30(月) 12:34:14>>365
こりは申し訳ない。再度訂正いたします。標準入力からよみとります。
http://codepad.org/Kj2UIIJb
0552デフォルトの名無しさん
2009/11/30(月) 12:39:400553デフォルトの名無しさん
2009/11/30(月) 14:55:45なんですけれど、間違っていませんか?
実行できませんが…
0554デフォルトの名無しさん
2009/11/30(月) 14:59:34name[]の配列数を調べるにはどうすれば良いでしょうか?
0555デフォルトの名無しさん
2009/11/30(月) 15:41:17sizeof(name)/4てのはどう?
#include <iostream>
int main()
{
char *name[] = {"Item1","Item2","Item3"};
int n = sizeof(name)/4;
std::cout << n << std::endl;
for(int i=0;i<n;i++){
std::cout << name[i] << std::endl;
}
return 0;
}
0556デフォルトの名無しさん
2009/11/30(月) 16:19:41要素数だよね
sizeof name/sizeof name[0]
sizeof name/sizeof*name
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
配列の要素数をコンパイル時にに求めるマクロを作成することを考える
ここで、
#define numberof(Array) \
(sizeof(*Array)?sizeof(Array)/sizeof(Array[0]):0u)
#define numberof_(Array)\
(sizeof(Array)/sizeof(0[Array]))
を定義し
int array[4][16]について
numberof(array)とnumberof_(array)
およびnumberof(array + 0)とnumberof_(array + 0)
の予想されるそれぞれの値とコンパイル結果について考察してください
特にnumberof_(array + 0)の値については
(array + 0)の型を示した上で値を求めた計算式を示てください
また、追加の課題としてできる人はnumberof()の問題点を指摘し、
改良方法を詳しく示すようにあります、お願いします
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: cc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
[3.3] 言語: C言語
[4] 期限:[2009年11月30日23:59まで]
[5] その他の制限:特に無し
0557デフォルトの名無しさん
2009/11/30(月) 16:48:25[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10207.txt
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:visual Studio 2008
[3.3] 言語: C言語
[4] 期限: 12月1日午前9時
[5] その他の制限:テキストファイル内に記載しました。
急で申し訳ありませんが、よろしくお願い致します。
0558デフォルトの名無しさん
2009/11/30(月) 16:52:09[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10207.txt
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:visual Studio 2008
[3.3] 言語: C言語
[4] 期限: 12月1日午前9時
[5] その他の制限:テキストファイル内に記載しました。
急で申し訳ありませんが、よろしくお願い致します。
0559デフォルトの名無しさん
2009/11/30(月) 16:54:320560デフォルトの名無しさん
2009/11/30(月) 17:00:42[2] 問題文(含コード&リンク):
int型整数の4乗を返す関数
int pow4(int x)
を作成せよ。(ただし関数powは使用しない)
(実行例)
整数を入力してください:5
その4乗値は625です。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: emacsでつくり、ktermでコンパイルするやつです
[3.3] 言語: C言語
[4] 期限:[2009年12月1日18時まで]
[5] その他の制限:特に無し
どうぞよろしくお願い致します。
0561デフォルトの名無しさん
2009/11/30(月) 17:09:03http://codepad.org/HQg1o8dv
0562デフォルトの名無しさん
2009/11/30(月) 17:17:31http://codepad.org/YD3XgXK3
0563デフォルトの名無しさん
2009/11/30(月) 17:44:00ありがとうございます、非常に助かりました。
0564デフォルトの名無しさん
2009/11/30(月) 18:27:010565デフォルトの名無しさん
2009/11/30(月) 20:16:42[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10209.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 12月1日まで
どなたかお願いしますm(_ _)m
0566デフォルトの名無しさん
2009/11/30(月) 20:44:12[2] 問題文:
文字をキーボードから入力させ、英大文字は英小文字に変換して、英小文字は英大文字に変換して
その他の文字はそのまま出力するプログラムを作成しなさい。文字の入力にはgetchar関数を、
出力にはputchar関数を必ず使用し、文字の変換には標準ライブラリを使用しないこと。
なお、入力する文字は「Programing 1」とし、Ctrl+Dで入力終了とする
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 12月2日まで
[5] その他の制限: コンソール入出力というところまで習っています
急ですみませんがよろしくお願いします
0567432
2009/11/30(月) 21:22:47遅くなって、ゴメンなさい。
質問から30分ですか、速いですね!
ただ、そのプログラムは重複順列の総当りですよね?
後出しで申し訳ありませんが、
以下の例題を1秒以内で解きたいのです。
(先頭行は出題の個数)
----- 入力 -------------------------
10
1234567890 10
1357986420 11
9451358855 1169
3512689124 572
1265324600 5123
3210246982 3631
3202320321 1234
9999444422 913
1232156985 9865
3596956842 124
----- 出力 -------------------------
362880
316800
70
1818
98
158
8
12
60
3758
0568デフォルトの名無しさん
2009/11/30(月) 21:36:31#include<stdio.h>
int main(void)
{
int i, year;
double riritu;
long gankin, risoku=0, goukei;
printf("%-28s: ", "元金[円]を入力してください");
scanf("%ld", &gankin);
printf("%-28s: ", "年利[%]を入力してください");
scanf("%lf", &riritu);
printf("%-28s: ", "預金年度を入力してください");
scanf("%d", &year);
goukei=gankin;
printf("+------+----------+----------+\n");
printf("| %4s | %8s | %8s |\n", "年度", "利息", "元利合計");
printf("+------+----------+----------+\n");
for(i=0;i<=10;i++)
{
printf("| %4d | %8.0ld | %8ld |\n", year+i, risoku, goukei);
risoku=goukei*(riritu/100);
goukei+=risoku;
}
printf("+------+----------+----------+\n");
return 0;
}
0569デフォルトの名無しさん
2009/11/30(月) 22:20:56参考までに >>432 の環境で >>433 だとどのくらい時間がかかるの?
CPU : Atom N270 1.6GHz (HT有効)
OS : WindowsXP Home SP3 32bit
コンパイラ : gcc (MinGW 3.4.5)
コンパイルオプション : -O2
で >>567 の問題を解くと 4.2秒 くらいだから
早いマシンなら普通に1秒切るんじゃないの?
0570デフォルトの名無しさん
2009/11/30(月) 23:02:37[2] 問題文:基数変換
すべての実数(整数、小数で+-含む)10→2、2→10に変換せよ。
このとき、入力部と出力部を関数化せよ。
[3] 環境
[3.1] OS:Linux (emacsで作成して、gccでコンパイルするやつです。)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:12月1日17:00
どうかよろしくお願いいたします。。
0571デフォルトの名無しさん
2009/11/30(月) 23:04:36[2] 問題文:基数変換
すべての実数(整数、小数で+-含む)10→2、2→10に変換せよ。
このとき、入力部と出力部を関数化せよ。
[3] 環境
[3.1] OS:Linux (emacsで作成して、gccでコンパイルするやつです。)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:12月1日17:00
どうかよろしくお願いいたします。。
0572432
2009/11/30(月) 23:53:262.5秒でした
CPU: Celeron 2.2GHz
OS: XP Home SP3 (メモリ512MB)
コンパイラ: gcc 4.4.0 (MinGW)
最適化オプション: -O2
これより速いマシンでも1秒切るのは、多分きついと思います。
0573デフォルトの名無しさん
2009/12/01(火) 00:01:28普通に1秒切ったけど・・・
CPU Phenom II X4 945
メモリ 8GB
OS Win7x64
コンパイラ VC++2008
最適化オプション等 デフォルト
0574432
2009/12/01(火) 00:26:51あらら、最近のマシンは速いねぇ〜w
64bit だからかな?(ハードは詳しくないので間違ってたらゴメン)
コンマ何秒か、計測できますか?
できたら、参考までに教えてください。
0575デフォルトの名無しさん
2009/12/01(火) 00:29:300576デフォルトの名無しさん
2009/12/01(火) 00:30:550577デフォルトの名無しさん
2009/12/01(火) 00:32:10テキストを読み込ませて正常に落ちず(メモリが足りない場合はその旨報告
して終了)に動作するかとかでチェックだろうな
0578デフォルトの名無しさん
2009/12/01(火) 01:09:47のスペックだとそのうち6G位のテキストファイル丸ごと読み込ませされそうだな
0579デフォルトの名無しさん
2009/12/01(火) 10:17:21どなたかよろしくお願いいたします。。
0580デフォルトの名無しさん
2009/12/01(火) 12:02:27お礼遅くなりましたが
ありがとうございました
0581デフォルトの名無しさん
2009/12/01(火) 12:12:01文字列を二次元配列に保存するにはどうしたらよいのでしょうか?
ユーザに名前を読み込む人数を入力させた後、名前を人数分入力してその名前を二次元配列に保存したいです。
const int max_mojisu = 20;
cout << "生徒の数を入力してください";
cin >> member;
char ninzu[menber][max_mojisu]; ←上で人数を入力させて、配列の要素の制限に使おうとするとエラーが・・・
cout << "生徒の名前を入力していっていください" << endl;
cin.getline( ) ←()内の書き方がわかりません・・・
わかりにくいと思いますがよろしくお願いします。
0582デフォルトの名無しさん
2009/12/01(火) 12:43:03getline(cin,ninzu);
0583デフォルトの名無しさん
2009/12/01(火) 12:50:45だった
0584デフォルトの名無しさん
2009/12/01(火) 13:04:55http://codepad.org/ciNZ5KWN
やってみた。
エラーチェックとかはしてないので,注意してください。
0586デフォルトの名無しさん
2009/12/01(火) 13:15:03ありがとうございます!
0587デフォルトの名無しさん
2009/12/01(火) 16:55:39バカな質問かもしれないので、恐る恐る聞くのですが、
浮動小数点数の実装されたもののビット表現は2進数と呼ぶのですか。
0588デフォルトの名無しさん
2009/12/01(火) 16:56:25[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10211.txt
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C++
[4] 期限: 12/1 23;59
[5] その他の制限:
お願いします。
0589デフォルトの名無しさん
2009/12/01(火) 17:13:30[2] 3つの整数x,y,zを入力し、これらを引数として、大きい順に入れ替えて返す関数をつくれ。ただしポインタ変数を用いること。
main関数は整数の入力と結果の表示のみにする。
[3.1] Linux
[3.2] gcc 3.4
[3.3] C
[4] 2009/12/7/15:00
[5] 特になし。
よろしくお願いします
0590デフォルトの名無しさん
2009/12/01(火) 17:31:13[2] 覆面算 SEND+MORE=MONEYを解くプログラム(各字は数字を表す)
2進数から16進数の場合について、解がある時は一つずつ進数を明示した上で
表示。但しいずれの場合も最上位桁は0ではないものとする。
[3] OS:Windows XP 言語C( Visual studio)
[4] 12/15迄
[5]特に無し
0591デフォルトの名無しさん
2009/12/01(火) 17:54:35IEEE形式だと、実数は符号ビット+仮数部+指数部で構成され
仮数部と指数部の内部表現は2進数で表現されている。
仮数部は最上位を省略とかしてたりするから詳細は下で
http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0
0592590
2009/12/01(火) 18:00:03の間違いでした。ミスを訂正します
0593デフォルトの名無しさん
2009/12/01(火) 18:09:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10213.c
0594デフォルトの名無しさん
2009/12/01(火) 18:56:55http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10214.c
課題(2)
任意の数字と桁数を入力し、桁数に該当する整数を出力する関数を各自で定義し結果を出力するプログラムを書け。
例えば数字に123456789と入力し、桁数を5とした場合下5桁の5を出力する関数。
0595デフォルトの名無しさん
2009/12/01(火) 19:14:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10215.c
課題(3)
課題(1)の整数を配列形式で定義し、同様に最大値、最小値、平均値を出力するプログラムを書け。
(余力があれば分散も考えてみよ)
0596デフォルトの名無しさん
2009/12/01(火) 19:27:54>>433 とは違うやり方
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10216.c
俺の環境では多少速くなった
0597デフォルトの名無しさん
2009/12/01(火) 20:26:45申し訳ないのですがC++の方でもお願いできないでしょうか
0598デフォルトの名無しさん
2009/12/01(火) 20:56:40問題1.5を教えてください。
変数の代入を使って入れ替えるにはどうすればいいのでしょうか?
0599デフォルトの名無しさん
2009/12/01(火) 20:57:50当方の環境は Windows XP/cygwin、処理系は gcc 4.3.2 です。
http://codepad.org/TgmK9FF5
コマンドラインの各数をいったん正の数としてとりこみ10進2進変換→符号反転を行うため、負の最小の数 -9223372036854775808 は overflow 扱いになります。
0600デフォルトの名無しさん
2009/12/01(火) 21:11:10ttp://codepad.org/eskpXPiL
0601デフォルトの名無しさん
2009/12/01(火) 21:23:58(2) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10218.cpp
(3) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10217.cpp
(2)の方,ファイル上のコメントが間違ってるけど,気にしないで.
C++流っぽくないかも.
0602デフォルトの名無しさん
2009/12/01(火) 21:33:54例えば,元がa : 1, b: 2とすると,これをa: 2, b: 1とすればゴールです.
単純にa = b; b = aとやったのでは,a = 2, b = 2となってしまいます.
なので,もう一つ変数を用意して,消えてしまう値をそこに入れておきます.
というのが,そこの「ヒント」にかかれていることです.
0603598
2009/12/01(火) 21:43:380604デフォルトの名無しさん
2009/12/01(火) 21:57:28[2] 問題文(含コード&リンク):https://www.ioi-jp.org/JOI/auth/showForm.action?id=t4&term=pr
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C
[4] 期限: 特になし
[5] その他の制限:
得点を比較するプログラムです
最初に書いてあるscanfは、比較する回数を入力して、
ループの中に入ってからのscanfは、比較する数字を入力して、大きい方に1を足して
最後にはカウントした数字を出力します
#include<stdio.h>
int main(){
int a,c=0,b,d=0,n,m;
scanf("%d",&n);
for(m=0;m<n;m++){
scanf("%d %d",&a,&b);
if(a > b) c++;
else if(a < b) d++;
}
printf("%d %d",c,d);
return 0;
}
こういうプログラムを考えました
ファイルから数字を読み込むプログラムに変えたいのですが、
どうすればファイルから読み込むことが出来るようになりますか?
少し席を外しますが、俺は必ず言います お願いします
0605デフォルトの名無しさん
2009/12/01(火) 22:00:23お礼は○
です
0606デフォルトの名無しさん
2009/12/01(火) 22:07:32リンク先は認証が必要で読んでないのですが….
ファイルから読みたいのなら,ファイルをオープンするところからはじまります.
こちらの記事などいかがでしょうか.
「第17章 ファイル入出力 - 初心者のためのポイント学習C言語」
http://www9.plala.or.jp/sgwr-t/c/sec17.html
0607デフォルトの名無しさん
2009/12/01(火) 22:10:45ご丁寧にありがとうございました。
0608デフォルトの名無しさん
2009/12/01(火) 22:18:28[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10219.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明日11:30までに
よろしくお願いします!
>>435なのですがエラーがたくさん出てきて実行できなかったのでやってもらえないでしょうか?
申し訳ございません。
0609デフォルトの名無しさん
2009/12/01(火) 22:38:03http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10220.c
課題1-2は,このプログラムのsearch_print()を少し修正すればよいだけなので,簡単でしょう.
0610デフォルトの名無しさん
2009/12/01(火) 22:43:12問題
A さんと B さんがゲームで対戦した.対戦は N 回にわたって行った.各回の対戦において,
より高い点数を獲得した人がその回の勝者となる.
すなわち,第 i 回目の対戦で
A さんの点数が B さんの点数より大きければ第 i 回目は A さんの勝ち,
B さんの点数が A さんの点数より大きければ B さんの勝ち,
同点の場合はどちらの勝ちにもならない.
N 回の対戦における A さんと B さんの点数が与えられたとき,
A さんと B さんがそれぞれ何回勝ったかを出力するプログラムを作成せよ.
入力
入力は 1+N 行からなる.
1 行目には対戦の回数 N (1 ≦ N ≦ 1000000) が書かれている.
2 行目以降の i+1 行目 (1 ≦ i ≦ N) には i 回目の対戦における A さんと B さんの点数が空白区切りで書かれている.
各々の点数は 0 以上 100 以下の整数である.
出力
出力は 1 行からなる. A さんが勝った回数と B さんが勝った回数をこの順に空白で区切って出力せよ.
となっています
入力データ2までとかならまだ件数が少ないので良いのですが、
入力データ5になると1万件の入力データがあるのでファイルを読み込む以外は無いと思いました
そのサイトに行ってもどうすればいいか良く解りませんでした
ですので、書き方ではなくてソースを書いてください お願いします
0611デフォルトの名無しさん
2009/12/01(火) 22:59:05[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10222.txt
[3]環境
[3.1] OS:Vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明後日
よろしくお願い致します
0612デフォルトの名無しさん
2009/12/01(火) 23:02:44ファイルからの入力についての質問ということで良いでしょうか.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10221.c
こちらをご覧ください.
ファイル上のコメントにファイルのフォーマットを記述しておきました.
すなわち,各行にAのポイントとBのポイントが,スペースで区切られているようなフォーマットです.
入力は,効率よく,うまくやろうと思うとすっっっごく面倒くさいので,よくある書き方の一例で許してください.
以下は実行の様子です.
ちゃんとin.txtから読み込めていることがわかります.
Z:\test>gcc -Wall test.c
Z:\test>a in.txt
A: 10, B:100
A: 20, B: 15
A: 2, B: 0
A: 121, B: 14
Z:\test>
0613デフォルトの名無しさん
2009/12/01(火) 23:07:53リダイレクトすれば変更なしでいける
0614デフォルトの名無しさん
2009/12/02(水) 00:43:49http://codepad.org/gimueiJ2
Goto文とかせこい手使ってるけど気にしないでほしい。
0615デフォルトの名無しさん
2009/12/02(水) 00:47:49インクルードファイルがコピペできてなかった
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
メンゴ
0616デフォルトの名無しさん
2009/12/02(水) 02:29:05なぁ、認証が必要な、現在進行形の公式な問題を公開してもいいのか?
0617デフォルトの名無しさん
2009/12/02(水) 03:17:14問題そのものに設けられるのは、それだけ教育現場での
競争が激しいってことの証しかもな。
自分で解く能力よりか、いかに他人の助けを借りて総合的に
問題解決が出来るかがIT時代以後の能力評価基準になって
るわけだし。(もちろんこれは破綻への道でしかないが)
でこういうスレがそれを煽っているとw
どんなに簡単な問題でも貼られてから24時間は解答を敢
えて貼らないというのはそろそろ不文律にしたほうがいい
んでね?質問者の設定した締め切り時刻の24時間以内
ってのが理想だとオモ
0618デフォルトの名無しさん
2009/12/02(水) 03:19:21data[0][0]の値? 350.23
data[0][1]の値? 1.0
data[0][2]の値? 503.25
data[1][0]の値? 625
data[1][1]の値? 3.1415
data[1][2]の値? 50.27
data[2][0]の値? 999
data[2][1]の値? 750.75
data[2][2]の値? 0
ここまでデータ入力
集計の結果は次のとおりである.
350.23 1.00 503.25 : 854.48
625.00 3.14 50.27 : 678.41
999.00 750.75 0.00 : 1749.75
=================================
1974.23 754.89 553.52 : 3282.64
続行するには何かキーを押してください . . .
となるようなプログラムをうっているのですが…
0619デフォルトの名無しさん
2009/12/02(水) 03:19:56自分の力を極力使わず ○
0621デフォルトの名無しさん
2009/12/02(水) 03:22:13私は今、
999.99以下の3行3列の正の実数データを入力してください
data[0][0]の値? 350.23
data[0][1]の値? 1.0
data[0][2]の値? 503.25
data[1][0]の値? 625
data[1][1]の値? 3.1415
data[1][2]の値? 50.27
data[2][0]の値? 999
data[2][1]の値? 750.75
data[2][2]の値? 0
集計の結果は次のとおりである.
350.23 1.00 503.25 : 854.48
625.00 3.14 50.27 : 678.41
999.00 750.75 0.00 : 1749.75
=================================
1974.23 754.89 553.52 : 3282.64
続行するには何かキーを押してください . . .
のように表示されるプログラムを作っているのですが、
0623デフォルトの名無しさん
2009/12/02(水) 03:45:46点プレには沿いたくありません
0624デフォルトの名無しさん
2009/12/02(水) 05:12:40>>621
#include <stdio.h>
#include <stdlib.h>
#define M 3
#define N 3
int main(void)
{
int i, j;
double data[M][N], sumcol[M] = {0.0}, sumrow[N] = {0.0}, sumall = 0.0;
printf("999.99以下の%d行%d列の正の実数データを入力してください\n\n", M, N);
for (i = 0; i < M; i++)
for (j = 0; j < N; j++) {
printf("data[%d][%d]の値? ", i, j);
scanf("%lf", &data[i][j]);
}
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
printf("%.2f ", data[i][j]);
sumcol[i] += data[i][j];
sumrow[j] += data[i][j];
}
printf(": %.2f\n", sumcol[i]);
}
puts("=================================");
for (i = 0; i < N; i++) {
printf("%.2f ", sumrow[i]);
sumall += sumrow[i];
}
printf(": %.2f\n\n", sumall);
return 0;
}
0625デフォルトの名無しさん
2009/12/02(水) 05:16:38#include <stdio.h>
#include <stdlib.h>
#define M 3
#define N 3
int main(void)
{
int i, j;
double data[M][N], sumcol[M] = {0.0}, sumrow[N] = {0.0}, sumall = 0.0;
printf("999.99以下の%d行%d列の正の実数データを入力してください\n\n", M, N);
for (i = 0; i < M; i++)
for (j = 0; j < N; j++) {
printf("data[%d][%d]の値? ", i, j);
scanf("%lf", &data[i][j]);
}
puts("\n集計の結果は次のとおりである.\n");
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
printf("%.2f ", data[i][j]);
sumcol[i] += data[i][j];
sumrow[j] += data[i][j];
}
printf(": %.2f\n", sumcol[i]);
}
puts("=================================");
for (i = 0; i < N; i++) {
printf("%.2f ", sumrow[i]);
sumall += sumrow[i];
}
printf(": %.2f\n\n", sumall);
return 0;
}
0626デフォルトの名無しさん
2009/12/02(水) 05:18:19俺も登録して誰かに解いてもらおうかな
0627デフォルトの名無しさん
2009/12/02(水) 07:19:43回答者に報酬がないものか。小遣いかせぎしたいもの。
0628デフォルトの名無しさん
2009/12/02(水) 07:23:19[2] 問題文(含コード&リンク):粒子の数値計算
[3] 環境
[3.1] OS:Linux
[3.2] g++
[3.3] 言語:C++
[4] 期限: 早めに
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10223.cpp
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10224.cpp
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10225.c
3つめのcファイルはhファイルに変えてください
うまく位置の更新ができなくて困っています。同じ値が繰り返しでてきます。
あと100個の位置データをでるようにしているはずですがなぜか69個しかでてきません
よろしくおねがいします
0629デフォルトの名無しさん
2009/12/02(水) 07:49:20ありがとうございます!
0630デフォルトの名無しさん
2009/12/02(水) 08:10:00というのが実際のところだろw
しかも「早めに」だし....
一般論だけであるという但し書き付きだがアドバイス
テンプレートクラスの多用はバグのもと。余程慣れてないと
特有の癖(言語文法の制約からくるもので作者が下手という
わけではない)がバグを誘発する。
せっかくC++で書いているんだから、出来る限りすべて
クラス化して記述。(インスタンスを作らないクラスを
mainで呼び出す)
あと大事なこと。「おかしいな」と思ったら余りしつこく追求せず
そのコードを潔く捨てて忘れて1から書き直すこと。急がば回れ。
0631デフォルトの名無しさん
2009/12/02(水) 13:41:15サンキューベリーマッチ!
0632デフォルトの名無しさん
2009/12/02(水) 14:10:28[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10226.txt
[3]環境
[3.1] OS:Vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明日
どういう意味かわかりません・・・よろしくお願いします
0633デフォルトの名無しさん
2009/12/02(水) 14:24:18int i;
for(i=0;i<no;i++) v1[i]=v2[no-1-i];
}
で動けばラッキーだと思え
0634デフォルトの名無しさん
2009/12/02(水) 14:24:27http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/32
0635デフォルトの名無しさん
2009/12/02(水) 15:29:200636デフォルトの名無しさん
2009/12/02(水) 15:35:330637デフォルトの名無しさん
2009/12/02(水) 15:36:02アンカーミス?
0638ああああ
2009/12/02(水) 16:07:19[1] 授業単元:大学の授業
[2] 問題文(含コード&リンク):したにまとめて書きました
[3] 環境
[3.1] OS: (Windows/Linux/等々) windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) ビジュアルスタジオ2005??
[3.3] 言語: (C/C++/どちらでも可 のいずれか) Cでおねがいします
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) なるべく早く
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) ありません
したにつづく
0639ああああ
2009/12/02(水) 16:09:402:absorbalファイルから、水分子の各原子の位置(座標)を読み取る
3:2の座標をランダムに発生させた数(ランダムに発生させた数の範囲は0以上originalファイルから読み込んだ範囲まで)だけ平行移動し、insertedファイルに書きたす
3は入力されたn回繰り返す
4:3の結果をinsertedファイルに書き足し、そのあとendを2回書きこみ終了
以下のコードではシミュレーション範囲は読み取れているが乱数発生時に反映されていない
また、水分子の位置も毎回同じになっている→これを改善したい
つづく
0640ああああ
2009/12/02(水) 16:11:27#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<iostream> //substr関数用
#pragma warning(disable : 4192) //警告を制御
#pragma warning(disable : 4996)
int main(void)
{
/*ファイルアドレス記憶用のポインタ変数*/
FILE*fp_original; //シュミレーション範囲(長さや角度など)のoriginal.carファイル用
FILE*fp_absorbal; //挿入したい分子構造のabsorbal.carファイル用
FILE*fp_inserted; //insertedファイル=original.carファイル+absorbalファイルを基に計算を行った結果
printf("デバッグ22行目\n");
/*使用する3つのファイル(original,absorbal,inserted)の準備*/
//↓マテスタで作った、シュミレーション範囲(長さや角度など)の.carファイル(original.car)を読み込む(書きたせてはいけない)
fp_original=fopen("original.car","r"); //r:読み込み、テキストモード
//↓マテスタで作った、挿入したい分子構造の.carファイル(absorbal.car)を読み込む(書きたせなくてよい)
fp_absorbal=fopen("absorbal.car","r");
0641ああああ
2009/12/02(水) 16:12:21#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<iostream> //substr関数用
#pragma warning(disable : 4192) //警告を制御
#pragma warning(disable : 4996)
int main(void)
{
/*ファイルアドレス記憶用のポインタ変数*/
FILE*fp_original; //シュミレーション範囲(長さや角度など)のoriginal.carファイル用
FILE*fp_absorbal; //挿入したい分子構造のabsorbal.carファイル用
FILE*fp_inserted; //insertedファイル=original.carファイル+absorbalファイルを基に計算を行った結果
0642ああああ
2009/12/02(水) 16:20:20テンプレの内容は同じですが、よろしくお願いします。
つくりたいプログラムの説明
1:originalファイルをそのままinsertedファイルにコピー
2:absorbalファイルから01,H1,H2原子の座標を引っ張り出し、
それに発生させた乱数(乱数の範囲は0〜insertedのシミュレーション範囲まで)
を加え、その結果をinsertedファイルに書き足す。
2を入力した回数繰り返す
です。
各ファイルの中は以下の通り(続く)
0643ああああ
2009/12/02(水) 16:25:03!BIOSYM archive 3
PBC=ON
Materials Studio Generated CAR File
!DATE Thu Nov 19 17:13:56 2009
PBC 12.0000 12.0000 12.0000 90.0000 90.0000 90.0000 (P1)
O1 -1.741302123 -0.790912385 -6.162912333 XXXX 1 xx O 0.000
H1 -2.498841233 -1.371238949 -6.162123933 XXXX 1 xx H 0.000
H2 -0.983761232 -1.378123949 -6.161232933 XXXX 1 xx H 0.000
O2 -4.566621230 -1.546123478 -4.791230741 XXXX 1 xx O 0.000
シミュレーション範囲は12.0000 12.0000 12.0000 です。
0644デフォルトの名無しさん
2009/12/02(水) 17:55:260645デフォルトの名無しさん
2009/12/02(水) 19:47:49http://codepad.org/
これつかったほうがいいと思う
0646デフォルトの名無しさん
2009/12/02(水) 20:04:460647デフォルトの名無しさん
2009/12/02(水) 20:14:46問題をアップするのだから codepad は使えないのでは?
テンプレどおりでいいと思います。
むしろ回答側で codepad にて身の潔白を証明するのがいいかと。
0648デフォルトの名無しさん
2009/12/02(水) 20:34:15Plain Textってのもあるみたいだよ.
0649デフォルトの名無しさん
2009/12/02(水) 20:43:12ありがとうございまっする
0650ああああ
2009/12/02(水) 20:57:11absorbalファイルの中!BIOSYM archive 3
PBC=OFF
Materials Studio Generated CAR File
!DATE Thu Nov 05 15:15:30 2009
O1 -10.396332 -8.568939 -2.443329 XXXX 1 xx O 0.000
H1 -11.153873 -9.156903 -2.443329 XXXX 1 xx H 0.000
H2 -9.638791 -9.156903 -2.443329 XXXX 1 xx H 0.000
end
end
0651ああああ
2009/12/02(水) 20:59:11連投で申し訳ありませんが非常に困っておりますのでよろしくお願いします!!
0652デフォルトの名無しさん
2009/12/02(水) 21:12:51#include <cmath>
using namespace std;
int main() {
double a,b,c;
cin >> a >> b >> c;
if(a==0) {
cout << (-c/b) << '\n';
}
else if((b*b-4*a*c)<0) {
cout << (-b/2/a) << 'i' << sqrt(4*a*c-b*b)/2/a << '\n';
}
else {
}
return 0;
}
C++で二次方程式のプログラムを作るんですが条件は虚数解、実数解、a=0の時で分けるんですが最後のelseの下にcoutの文一行だけ書いてないんですが教えてくれませんか
0653デフォルトの名無しさん
2009/12/02(水) 21:58:410654デフォルトの名無しさん
2009/12/02(水) 22:01:22アンカーすら付けて無いから、650に気付かない人は多いだろうな。
本当に困っているなら尚更、テンプレ>>1にある掲示板に問題を書き込むべし。
0655デフォルトの名無しさん
2009/12/02(水) 23:13:04高校ですよ
0656デフォルトの名無しさん
2009/12/02(水) 23:16:08#include <cmath>
using namespace std;
int main() {
double a,b,c,D;
cin >> a >> b >> c;
if(a==0) {
if(b!=0)
cout << (-c/b) << '\n';
}
else {
D = b*b-4*a*c;
if(D < 0) {
cout << -b/(2*a) << "±" << sqrt(-D)/(2*a) << "*i" << endl;
}
else {
cout << -b/(2*a) + sqrt(D)/(2*a) << ", ";
cout << -b/(2*a) - sqrt(D)/(2*a) << endl;
}
}
return 0;
}
0657デフォルトの名無しさん
2009/12/02(水) 23:33:56ありがとうございます
これのフローチャートを最後に誰か教えてくれませんか?
開始と終了→楕円
処理を行う→四角
判断を行う→ひし形
でお願いします
0658デフォルトの名無しさん
2009/12/02(水) 23:42:21ここまで教えてあげないといけないの?
0659デフォルトの名無しさん
2009/12/02(水) 23:58:42#include <iostream>
#include <cstdlib>
double uniformed_rand(void)
{
return (rand()+1.0)/RAND_MAX;
}
int main(void){
int n=100;
double r=1.0;
double x,y,z;
for(n=0;n<100;n++)
{
x=(uniformed_rand()*2-1)*r;
y=(uniformed_rand()*2-1)*r;
z=(uniformed_rand()*2-1)*r;
if(x*x+y*y+z*z<r*r) n++;
std::cout << x << " " << y << " " << z<< std::endl;
}
return 0;
}
これで100個のデータが出て欲しいんですが69個しかでてきません
原因はどこにあるんでしょうか?
0660デフォルトの名無しさん
2009/12/03(木) 00:12:19n++ が多い
0661デフォルトの名無しさん
2009/12/03(木) 00:27:55n++消したら69個にはならなくなりましたが180個くらいになってしまいます。
たびたびすいません
0662デフォルトの名無しさん
2009/12/03(木) 00:32:0015c15
< for (n = 0; n < 100; n++) {
---
> for (n = 0; n < 100;) {
19c19
< if (x * x + y * y + z * z < r * r)
---
> if (x * x + y * y + z * z < r * r) {
21c21,22
< std::cout << x << " " << y << " " << z << std::endl;
---
> std::cout << x << " " << y << " " << z << std::endl;
> }
0663デフォルトの名無しさん
2009/12/03(木) 00:45:57ありがとうございます
解決致しました
感謝します
0664デフォルトの名無しさん
2009/12/03(木) 03:20:42[2] 問題文(含コード&リンク):
問題1 unsigned int型の引数を1つ持ち, その値を2進数で印字する戻
値のない関数, print_bin() を作成し, 動作を確認できるプロ
グラムとして作成して rep07.c として提出せよ。
ただし, putchar() 以外のライブラリ関数を使用してはなら
ない。
問題2 double型の配列とint型の引数を持ち, double型の戻値を持つ関
数を考える。第一引数のdouble型の配列の要素数が第二引数で
与えられるとして, 第一引数のdouble 型の配列に格納されてい
る値のうち最大のものを戻値として返す関数 max_d_array() を
作成し, 動作確認できるプログラムとして作成して rep08.c と
して提出せよ。
ただし, max_d_array() 内部ではいかなる関数も呼んではな
らず, 制御構文としては while()文, if()文, return文のみを
用いて実装しなければならない。do-while()文, for()文,
switch-case文, goto文, 条件式(三項演算子?:)は使ってはなら
ない。三項演算子以外の各種演算子と変数は自由に使って良い。
問題3
標準入力からの入力に対して、アルファベットの文字を3文字ず
らして標準出力に出力するシーザー暗号化プログラムを作成し
て、rep09.c として提出せよ。具体的には, 小文字に対しては
a -> d, b -> e, ..., w -> z, x -> a, y -> b, z -> c なる
変換である。もちろん大文字に関しても同様の変換処理をしな
ければならない。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: h21 12月4日 13時 まで
[5] その他の制限:特になし
0665デフォルトの名無しさん
2009/12/03(木) 04:05:21課題1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10228.c
0666デフォルトの名無しさん
2009/12/03(木) 07:12:40問題2
#include <stdio.h>
double max_d_array(double *p, int n)
{
double max = *p;
while(--n) if(max < *++p) max = *p;
return max;
}
int main(void)
{
double a[] = {1,2,3,4,5};
printf("%f\n", max_d_array(a, sizeof a / sizeof *a));
return 0;
}
0667デフォルトの名無しさん
2009/12/03(木) 09:18:09[2] 問題文(含コード&リンク):分数クラス2
分数を扱うクラスを作成する。クラス名はBunsu。データメンバはint型でbunshiとbunboでpraivateとする。
コンストラクタにより初期化をおこなう。初期値が指定されなかったときは省略時引数ででbunshi,bunboとも1で初期化すること。
またBunsuクラスの振る舞いをテストする適切なmain関数も作成すること。1ファイルで作成してください。
作成する関数
・コンストラクタ
・演算子のオーバーロード(friend関数で作成すること)
+, -, *, /, ==, != の演算子について多重定義を行なう。演算結果は約分する。
>>と<<のオーバーロード(friend関数で作成すること)
・<<Bunsuクラスのオブジェクトをcoutで出力すると分子/分母の形式で出力する。
[3] 環境
[3.1] OS:Windows(Vista)
[3.2] コンパイラ名とバージョン:VisualStudio2008
[3.3] 言語:C++
[4] 期限:[2009年12月6日22:00まで]
[5] その他の制限:とくにありません。
よろしくお願いします。
0668デフォルトの名無しさん
2009/12/03(木) 10:27:25課題3
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10229.c
0669デフォルトの名無しさん
2009/12/03(木) 13:28:13[2] 問題文
氏名をキーボードから入力させ、入力された文字列長を求めて画面に表示するプログラムを作りなさい。
ただし、文字列長を求めるのに標準ライブラリ関数を使用しないこと。バッファオーバーランなどが発生する
不正な入力は行われないものとする。
[3] 環境
[3.1] Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:明後日まで
[5] その他の制限:コンソール入出力というところまで習っています。
どなたかお願いします
0670デフォルトの名無しさん
2009/12/03(木) 16:17:04http://codepad.org/JWMpce3O
0671デフォルトの名無しさん
2009/12/03(木) 17:30:39[2] 問題文(含コード&リンク):
関数としてy=sinx,y'=sinx+xcosxを取り上げ、f'(x)=sinx+xcosxの値を数値微分による方法から計算するプログラムを作成し
解析値と比較してみよ。ただしh=0.1とし、0≦x≦πとせよ。
[3] 環境
[3.1] OS:windows vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: Cのみ
[4] 期限: (2009年12月5日10:00まで]
[5] その他の制限:特にはありません。
すいませんが、よろしくお願いします。
0672デフォルトの名無しさん
2009/12/03(木) 18:22:19f(x) を求めるのですか?それとも f ' (x) ? ∫f(x)dx ?
なにを求めるのか教えてください。
0673デフォルトの名無しさん
2009/12/03(木) 20:30:13[2] 問題文:並べ替え部分を関数(ポインターを用いる)にして書き直す。
元のプログラム↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10231.txt
[3] 環境
[3.1] OS: Windows xp
[3.2] VC 6.0
[3.3] 言語: C
[4] 期限: 12月5日
[5] その他の制限:特にないです
0674デフォルトの名無しさん
2009/12/03(木) 20:53:07ほとんど答えが書いてあるような問題だけど・・・
#include<stdio.h>
void swap(int *l, int *r)
{
int tmp;
tmp=*l;
*l=*r;
*r=tmp;
}
int main(void)
{
int n1,n2;
puts("2つの整数を入力してください。");
printf("整数A:"); scanf("%d",&n1);
printf("整数B:"); scanf("%d",&n2);
swap(&n1, &n2);
puts("これらの値を交換しました。");
printf("整数Aは%dです。\n",n1);
printf("整数Bは%dです。\n",n2);
return 0;
}
0675デフォルトの名無しさん
2009/12/03(木) 21:15:12http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10232.cpp
0676デフォルトの名無しさん
2009/12/03(木) 22:47:39遅レスすいません。
f'(x)を求める問題です。
0677デフォルトの名無しさん
2009/12/03(木) 23:12:17[2] 1.サンプルプログラムを参考に乱数によって生成した20個の数字を配列に入れ、バブルソートによって小さい順に表示するプログラムを作成せよ。
2.サンプルプログラムを参考乱数によって生成した20個の数字を配列に入れ、バブルソートによって大きいものから順に表示するプログラムを作成せよ。
3.キーボードから次々に整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示するプログラムを作成せよ。数字は10個入力したらプログラムは終了するようにすること.
4.0から1までのdouble型の数字を20個乱数によって生成し、小さい順に表示するプログラムを作成せよ。
5.以下の英単語を辞書順に(アルファベット順に)ソートによって並べ替えて表示するプログラムを作成せよ。すべての4文字の単語であることを利用してもよい。
mane, malt, mama, mark, mare, maid, made, mach, many, mess, meat, neat, like, lime, limb
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10230.txt
[3.1] WindowsXP
[3.2] turbo C
[3.3] C++
[4] 今週中
[5] 1、2番は乱数の生成がわからなかったのでできませんでした。よろしくおねがいします。
0678デフォルトの名無しさん
2009/12/03(木) 23:13:27[2] 1.サンプルプログラムを参考に乱数によって生成した20個の数字を配列に入れ、バブルソートによって小さい順に表示するプログラムを作成せよ。
2.サンプルプログラムを参考乱数によって生成した20個の数字を配列に入れ、バブルソートによって大きいものから順に表示するプログラムを作成せよ。
3.キーボードから次々に整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示するプログラムを作成せよ。数字は10個入力したらプログラムは終了するようにすること.
4.0から1までのdouble型の数字を20個乱数によって生成し、小さい順に表示するプログラムを作成せよ。
5.以下の英単語を辞書順に(アルファベット順に)ソートによって並べ替えて表示するプログラムを作成せよ。すべての4文字の単語であることを利用してもよい。
mane, malt, mama, mark, mare, maid, made, mach, many, mess, meat, neat, like, lime, limb
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10230.txt
[3.1] WindowsXP
[3.2] turbo C
[3.3] C++
[4] 今週中
[5] 1、2番は乱数の生成がわからなかったのでできませんでした。よろしくおねがいします。
0679デフォルトの名無しさん
2009/12/03(木) 23:14:20[2] 1.サンプルプログラムを参考に乱数によって生成した20個の数字を配列に入れ、バブルソートによって小さい順に表示するプログラムを作成せよ。
2.サンプルプログラムを参考乱数によって生成した20個の数字を配列に入れ、バブルソートによって大きいものから順に表示するプログラムを作成せよ。
3.キーボードから次々に整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示するプログラムを作成せよ。数字は10個入力したらプログラムは終了するようにすること.
4.0から1までのdouble型の数字を20個乱数によって生成し、小さい順に表示するプログラムを作成せよ。
5.以下の英単語を辞書順に(アルファベット順に)ソートによって並べ替えて表示するプログラムを作成せよ。すべての4文字の単語であることを利用してもよい。
mane, malt, mama, mark, mare, maid, made, mach, many, mess, meat, neat, like, lime, limb
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10230.txt
[3.1] WindowsXP
[3.2] turbo C
[3.3] C++
[4] 今週中
[5] 1、2番は乱数の生成がわからなかったのでできませんでした。よろしくおねがいします。
0680デフォルトの名無しさん
2009/12/03(木) 23:19:30[2] 問題文(含コード&リンク):以下のURLにあるプログラムが、どこがどういう風になってこの書き方になっているのか説明
して頂ける方を募集してます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10233.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:大至急
[5] その他の制限:特に制限はないです
0681デフォルトの名無しさん
2009/12/04(金) 00:08:375.以下の英単語を辞書順に(アルファベット順に)ソートによって並べ替えて表示するプログラムを作成せよ。
http://codepad.org/bIdj4pYj
0682デフォルトの名無しさん
2009/12/04(金) 00:11:13乱数は,#include <stdlib.h>してrand()したらOK.
srand()するとなおよい.
0683671
2009/12/04(金) 00:19:240684デフォルトの名無しさん
2009/12/04(金) 00:22:13> y=sinx,y'=sinx+xcosx
2つの関数じゃないなら、これって矛盾してないかい?
0685671
2009/12/04(金) 00:31:41y'はただyの式を微分しただけなので特に矛盾はないと思うんですが
ただ正直、私も題意を理解できなかったのでここに書かせてもらいました…
0686デフォルトの名無しさん
2009/12/04(金) 00:44:230687デフォルトの名無しさん
2009/12/04(金) 00:47:53[2] 1.サンプルプログラムを参考に乱数によって生成した20個の数字を配列に入れ、バブルソートによって小さい順に表示するプログラムを作成せよ。
2.サンプルプログラムを参考乱数によって生成した20個の数字を配列に入れ、バブルソートによって大きいものから順に表示するプログラムを作成せよ。
3.キーボードから次々に整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示するプログラムを作成せよ。数字は10個入力したらプログラムは終了するようにすること.
4.0から1までのdouble型の数字を20個乱数によって生成し、小さい順に表示するプログラムを作成せよ。
5.以下の英単語を辞書順に(アルファベット順に)ソートによって並べ替えて表示するプログラムを作成せよ。すべての4文字の単語であることを利用してもよい。
mane, malt, mama, mark, mare, maid, made, mach, many, mess, meat, neat, like, lime, limb
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10230.txt
[3.1] WindowsXP
[3.2] turbo C
[3.3] C++
[4] 今週中
[5] 1、2番は乱数の生成がわからなかったのでできませんでした。よろしくおねがいします。
0688デフォルトの名無しさん
2009/12/04(金) 01:47:52アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10234.txt
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
12月11日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません
0689 ◆zQtEQMmE7o
2009/12/04(金) 12:32:18プログラミング基礎実習
[2] 問題文(含コード&リンク):
n個の中からr個を取り出すときの組合わせの数nCrを求める関数を作成せよ。
ただし、再帰は使わないこと!(繰返し文を使う)
エラー処理(n<1、r<1の場合、n<rの場合)も考える。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年12月7日
[5] その他の制限:
演算と型、プログラムの流れの分岐、プログラム流れの繰返し、配列、関数までしか習っていません。
教科書で言うと明解C言語入門編(柴田望洋、2009年第15刷)を使っていて、その第6章までです。
よろしくお願いします。
0690デフォルトの名無しさん
2009/12/04(金) 13:20:45プログラミング基礎
[2] 問題文(含コード&リンク):
キーボードから実数配列a[N][N]の各要素に値を入力し、すべての要素の総和を求めるプログラムを作成せよ。
ただし、総和を求める部分はmain関数と別の関数を作ること。
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年12月7日
[5] その他の制限:
演算と型、プログラムの流れの分岐、プログラム流れの繰返し、配列、関数の中でお願いします。
0691デフォルトの名無しさん
2009/12/04(金) 15:08:05> [5] 1、2番は乱数の生成がわからなかったのでできませんでした。よろしくおねがいします。
#include <stdio.h>
#include <stdlib.h> //<---rand()のために必要
int main(void)
{
printf("%d\n", rand());
printf("%d\n", rand() % 100); //<---0から99の範囲で乱数を得たい場合
return 0;
}
0692デフォルトの名無しさん
2009/12/04(金) 15:53:23http://codepad.org/uuiyMf7h
0693デフォルトの名無しさん
2009/12/04(金) 16:07:38http://codepad.org/9WVXs987
0694デフォルトの名無しさん
2009/12/04(金) 17:21:22thx
0695デフォルトの名無しさん
2009/12/04(金) 20:19:40ありがとうございます
ポインタについて勘違いていました
0696デフォルトの名無しさん
2009/12/05(土) 03:48:102種類のコード、for loops と do...while loopsに変えていただけませんか?
よろしくおねがいします。C++です。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int firstnum, secondnum; // variable to store the number
firstnum = 0; // temp number
secondnum = 0; // temp number
while (firstnum >= secondnum) //get the first and second number until they are correct
{
cout << "PLEASE ENTER THE FIRST NUMBER: "; // ask user what to do
cin >> firstnum;
cout << endl << "PLEASE ENTER THE SECOND NUMBER:";
cin >> secondnum;
cout << endl;
if (firstnum >= secondnum) // if first number is more than second number
{
cout << "THE FIRST NUMBER MUST BE LESS THAN THE SECOND NUMBER. PLEASE TRY AGAIN." << endl << endl;
}
}
0697デフォルトの名無しさん
2009/12/05(土) 03:50:11int i = firstnum; // variable to store the number
int evensum = 0; // variable to store the even sum
int oddsum = 0; // variable to store the odd sum
cout << endl << "ODD NUMBERS BETWEEN " << firstnum << " AND " << secondnum << endl;
while (i <= secondnum) // number is less or equal to second number
{
if (i%2 == 0) //even number
{
evensum += i; // even sum
}
else //odd number
{
cout << i << endl;
oddsum += i; // add sum
}
i++;
}
0698デフォルトの名無しさん
2009/12/05(土) 03:51:10cout << endl << "SUM OF EVEN NUMBERS BETWEEN " << firstnum << " AND " << secondnum << ": ";
cout << evensum << endl;
i = firstnum;
cout << endl << "THE SQUARES OF THE NUMBERS BETWEEN 1 AND 10: " << endl; // numbers between firstnumber and second number
while (i <= secondnum) // number is less or equal to second number
{
if (i<=10) // number is less or equal to 10
{
cout << i << ": " << (i * i) << endl;
}
i++;
}
cout << endl << "SUM OF ODD NUMBERS BETWEEN " << firstnum << " AND " << secondnum << ": ";
cout << oddsum << endl << endl;
return 0;
}
よろしくおねがいします。
0699デフォルトの名無しさん
2009/12/05(土) 04:51:20→for(;firstnum >= secondnum;)
→do {} while (firstnum > secondnum);
while (i <= secondnum)
→for(;i <= secondnum;)
→do {} while(i < secondnum);
0700デフォルトの名無しさん
2009/12/05(土) 06:43:28http://codepad.org/E2Lqx0Ia
各ファイルに分割するのは自分でやってください。
それから,data.dat の仕様がわからなかったので,
適当に決めました。
なので,間違っているかもしれません。
どうでもいいけど,スタックに「プッシュダウン」って言うんかなぁ。
0701デフォルトの名無しさん
2009/12/05(土) 06:59:560703デフォルトの名無しさん
2009/12/05(土) 16:55:39改行しないにはどうすればいいでしょうか?
0704デフォルトの名無しさん
2009/12/05(土) 16:57:480705デフォルトの名無しさん
2009/12/05(土) 19:07:420706デフォルトの名無しさん
2009/12/05(土) 20:25:18[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10236.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VS2008
[3.3] 言語: C
[4] 期限:12月7日
[5] その他の制限: 問題文に記述してあります。
よろしくお願いします。
0707デフォルトの名無しさん
2009/12/05(土) 20:36:15ありがとうございます。
printfでも代わりに出来そうでした。
0708デフォルトの名無しさん
2009/12/05(土) 23:54:11登録単語にはその番号を返し、
さらにx[10]としたら番号の単語を返すにはどうすればいいですか。
0709デフォルトの名無しさん
2009/12/06(日) 00:03:41[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10227.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明日8:30までに
よろしくお願いします!
0710デフォルトの名無しさん
2009/12/06(日) 01:33:29どのようにすればいいですか。
文字列 タブ 数値
・・・・・・・
・・・・・・・
0711デフォルトの名無しさん
2009/12/06(日) 01:36:31つ テンプレ
それよかデータベース板経由を推奨
0712デフォルトの名無しさん
2009/12/06(日) 02:01:32#include <stdio.h>
#define ARRAY_SIZE 100
#define LINE_NUM 10
void print_array(int a[ARRAY_SIZE])
{
int i, j;
for (i = 0; i < ARRAY_SIZE/LINE_NUM; i++) {
for (j = 0; j < LINE_NUM; j++) {
printf("%d ", a[i*LINE_NUM + j]);
}
printf("\n");
}
}
void max_sort(int a[ARRAY_SIZE])
{
int i, j, tmp;
for (i = 0; i < ARRAY_SIZE-1; i++) {
for (j = i+1; j < ARRAY_SIZE; j++) {
if (a[i] > a[j]) {
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
0713デフォルトの名無しさん
2009/12/06(日) 02:03:15続き
int main(void)
{
int a[ARRAY_SIZE] = {0};
int i, j;
for (i = 0; i < ARRAY_SIZE; i++)
{
a[i] = rand()%899 + 100;
}
puts("整列前のaの内容は次の通りです.");
print_array(a);
max_sort(a);
puts("整列後の配列aの内容は次の通りです.");
print_array(a);
return 0;
}
max_sort関数内の if (a[i] > a[j]) を if (a[i] < a[j]) にすると
課題2の答えになる
0714デフォルトの名無しさん
2009/12/06(日) 12:42:34まず 「文字列 タブ 数値」のファイルを1行づつ読みながら「適切な空白の幅に数値 タブ 文字列」を出力するプログラムAを作り
Aの結果を sort /L C して
sortの結果を 「文字列 タブ 数値」に戻せば良い
ちなみにAで"適切な空白の幅に数値"にしないと
sortで"1","2","23","123","1234" 等がちゃんと並ばない
最大桁以上に "^^^1", "^123","1234"ってなるようにする ("^"は空白)
0715デフォルトの名無しさん
2009/12/06(日) 12:50:40"タブ"を項目の区切り文字に指定できて、ソートに使うキーが何番目の項目か指定できて、
キーを数値として比較する 「ソート」プログラムを作ればおk
0716デフォルトの名無しさん
2009/12/06(日) 13:02:48ような対象になった場合は、別の問題が多数発生するんで必ずしもそれで良い
とは限らなくなってくる。
Sortプログラムの作りによってはファイルシステムの作りによっては
OSによってはオチる可能性がある。最新のWindowsとかはセキュリティー
ガードが堅いからOSは落ちないがプログラムは落ちたり著しく速度が
落ちたりするんで。
0717デフォルトの名無しさん
2009/12/06(日) 13:15:38#699さんありがとうございました。簡易過ぎて私には出来ませんでした。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10237.txt
こっちで再度お願いします。
0718デフォルトの名無しさん
2009/12/06(日) 13:33:412乗計算ってなんですか?
0719デフォルトの名無しさん
2009/12/06(日) 13:47:16ごめんなさい、乗計算squareの事です。
0720デフォルトの名無しさん
2009/12/06(日) 13:52:57[2] 問題文(含コード&リンク):分数クラス2
分数を扱うクラスを作成する。クラス名はBunsu。データメンバはint型でbunshiとbunboでpraivateとする。
コンストラクタにより初期化をおこなう。初期値が指定されなかったときは省略時引数ででbunshi,bunboとも1で初期化すること。
またBunsuクラスの振る舞いをテストする適切なmain関数も作成すること。1ファイルで作成しても分割して作成しても良い。
作成する関数
・コンストラクタ
・演算子のオーバーロード(friend関数で作成すること)
+, -, *, /, ==, != の演算子について多重定義を行なう。演算結果は約分する。
>>と<<のオーバーロード(friend関数で作成すること)
・<<Bunsuクラスのオブジェクトをcoutで出力すると分子/分母の形式で出力する。
・>>Bunsuクラスのオブジェクトにcinで入力する時 分子/分母の形式で入力できるようにする。
・変換関数
デ-タメンバbunshiとbunboの値をdouble型として返す。
[3] 環境
[3.1] OS:Windows(Vista)
[3.2] コンパイラ名とバージョン:VisualStudio2008
[3.3] 言語:C++
[4] 期限:[2009年12月6日22:00まで]
[5] その他の制限:とくにありません。
よろしくお願いします。
0721デフォルトの名無しさん
2009/12/06(日) 14:04:49>>162
>>675
0722デフォルトの名無しさん
2009/12/06(日) 14:05:57square ってなんですか?
数式で示してください。
0723デフォルトの名無しさん
2009/12/06(日) 14:10:51とりあえず、これでどこまでいけますか?
標準入力からデータを得て、標準出力に書き込みます。
./a < data.txt > output.txt
メモリフルになると、取り込めた分だけソートして出力します。
これでダメならマージソートを書きます。
http://codepad.org/DAxSnaAj
0724デフォルトの名無しさん
2009/12/06(日) 14:23:07(x*x)です。
0725デフォルトの名無しさん
2009/12/06(日) 14:28:17http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10238.c
0726デフォルトの名無しさん
2009/12/06(日) 14:56:43どうもありがとうございました!
これからdefineとundefineを分割して2種類のコード書きます。
幼稚な質問に答えて頂き感謝です。
0727デフォルトの名無しさん
2009/12/06(日) 15:14:22┣━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃┌───────────────┐ ┃
┃│文字列の表示 │ ┃
┃│背景は透過 │ ┃
┃│この窓は表示を操作できる | ┃
┃│縦対横が必ず黄金比 | ┃
┃└───────────────┘ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┛
こんな画面を
Win32APIとかいうものを使って
WindowsXP SP3で表示するようなコードを
BCCとかいうフリーのコンパイラなるものを使って
書けとか言うわけのわからない課題をだされたのですが
なんとかお教えねがえませんでしょうか。
BCCというのはBorland社が公開している
フリーのC/C++のコードをexeにするソフトだということは判りました。
なんとかBCCデベロッパというフリーソフトを用いて
何もない枠をウィンドウを表示させることはできました。
でもウィンドウ内に文字列を表示するウィンドウを作るとかわけわかめです。
0728デフォルトの名無しさん
2009/12/06(日) 15:17:030729デフォルトの名無しさん
2009/12/06(日) 15:18:180730デフォルトの名無しさん
2009/12/06(日) 15:23:15細かい条件がよくわからない
http://www.kumei.ne.jp/c_lang/sdk/sdk_83.htm
こういうので中のウィンドウが背景透過してたらいいの?
表示を操作できるってつまりどういうこと?
0731デフォルトの名無しさん
2009/12/06(日) 15:33:49講義内容のおさらいをすると
最終的にはドラゴンクエストみたいな
コマンド選択式で
選択によってあらかじめ用意された絵とシナリオを
表示する、というプログラムを作るようです。
そのなかで
ドラゴンクエストみたいな会話表示ウィンドウを作るのが
今回の課題のようです。
>>727のような絵を渡され
後は口頭で説明されたのを
半分うつらうつらしながらメモしたものによると
大枠のウィンドウをアスペクト比(ウィンドウの横対縦の比率のこととメモにあります)を
4:3に維持しながらその中にドラクエみたいな
大枠の画面に対して一定の比率で
固定されていて、背景が半透過されていて
枠内をクリックで表示<>非表示が切り替わるようなメッセージ表示用の枠を作りなさい、ということのようです。
0732デフォルトの名無しさん
2009/12/06(日) 15:38:15入力された二つの数字も範囲に含みます。
http://codepad.org/bTPsd8NE
0733デフォルトの名無しさん
2009/12/06(日) 15:41:14LRESULT CALLBACK WindowProc
int WINAPI WinMain
とかはわかります。
四角いウィンドウしか表示しないウィンドウは自力で作れました。
0734デフォルトの名無しさん
2009/12/06(日) 15:52:01それだけじゃ作りようがない
その中のウィンドウっていうのは図形か画像の描画で作るって事?
そしたらゲームループみたいなのを回して、毎フレーム画面にリペイントをかけたり
ゲームっぽい作り方をする必要があると思うけど、そういう課題なの?
たぶん、細かい動作とか、講義でやって資料とか貰ってるんじゃない?
それとそういう拡張前提のプログラムだったら、自分でやらないと
その先の拡張ができなくて詰むと思うのだけど
0735デフォルトの名無しさん
2009/12/06(日) 15:54:27[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10239.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 関数の作り方まで習っています。
急ですみませんが、どなたかお願いします。
0736735
2009/12/06(日) 15:59:52「不正な時間、分、または秒が入力されました」の文章は不要でした。
0737デフォルトの名無しさん
2009/12/06(日) 16:09:45同じ講義に出ていた友人にメールで聞いたのだけど
どうも選択肢4つに従って
4つのパターンが表示されればいいらしい。
文系学部の1単位の教養講義「ウィンドウズプログラム入門」なので
専門の方が作るようなハイレベルのものじゃないです。
ウィンドウを表示させて
ウィンドウの任意の位置にフォントを表示させるのはできました。
今、猫でもできるWindowsプログラムというを見ながら書いているのだけど
こりゃ難しいわ。
前述の友人の話によると明後日に出す課題は
>>730の先に書いてあるMDIというもののようです。
文字は表示できなくてもよいから
大きな親ウィンドウの中に
枠なしの角が丸い子ウィンドウを表示して
親ウィンドウ内を左クリックすると子ウィンドウが表示<->非表示と切り替わる
ということが出来るようになさい、というのが今回の課題のようです。
0738デフォルトの名無しさん
2009/12/06(日) 16:10:47ちょっとテンプレにそって改めて書かせていただきます。
スレ汚しすみません。
0739デフォルトの名無しさん
2009/12/06(日) 16:14:29お手数ですが、チェックして頂けますか?エラーが出てしまいます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10240.txt
私の入力で何所かが間違っているのですが、解りません。。。
本当にすみません。よろしくお願いします。
0740デフォルトの名無しさん
2009/12/06(日) 16:25:33載せて戴いたのはC言語ですよね?説明の仕方が悪くてごめんなさい。
C++言語と最初に書いておけば良かったです。貴重なお時間すみませんでした。
0741デフォルトの名無しさん
2009/12/06(日) 16:36:042.
#include <stdio.h>
int calc_sec(int h, int m, int s) {
return (h<0||23<h||m<0||59<m||s<0||59<s) ? -1 : (h * 60 + m) * 60 + s;
}
int main(void)
{
int h, m, s, ans;
printf("時間(0〜23)を入力してください:");
scanf("%d", &h);
printf("分(0〜59)を入力してください:");
scanf("%d", &m);
printf("秒(0〜59)を入力してください:");
scanf("%d", &s);
ans = calc_sec(h, m, s);
if(ans==-1) printf("不正な時間、分、または秒が入力されました\n");
else printf("%d時間%d分%d秒は%d秒です。\n", h, m, s, ans);
return 0;
}
0742732
2009/12/06(日) 16:38:07じゃ、C++ で。
http://codepad.org/ioLIZmPA
0744デフォルトの名無しさん
2009/12/06(日) 16:53:550745デフォルトの名無しさん
2009/12/06(日) 17:00:242.
#include <stdio.h>
int conv_letter(int ch)
{
return ('a'<=ch&&ch<='z')||('A'<=ch&&ch<='Z') ? ch ^ 0x20 : ch;
}
int main(void)
{
int ch;
while((ch=getchar())!=EOF) putchar(conv_letter(ch));
return 0;
}
0746デフォルトの名無しさん
2009/12/06(日) 17:12:49XORで変換できるんだ.
知りませんでした.
0747デフォルトの名無しさん
2009/12/06(日) 17:13:300748デフォルトの名無しさん
2009/12/06(日) 17:17:331.
#include <stdio.h>
int clac_pandi(int p, double r, int y)
{
while(y--) p *= 1 + r / 100;
return p;
}
int main(void)
{
int p, y, d;
double r;
printf("元金[円]を入力してください : ");
scanf("%d", &p);
printf("年利[%]を入力してください : ");
scanf("%lf", &r);
printf("預金年度を入力してください : ");
scanf("%d", &y);
d = clac_pandi(p, r, y);
printf("%d円を年利%f%%で%d年間預金すると、%d円になります。\n", p, r, y, d);
return 0;
}
0749デフォルトの名無しさん
2009/12/06(日) 18:31:11[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10241.txt
[3] 環境
[3.1] windows xp
[3.2] VC 2005
[3.3] C
[4] 期限: 12月8日
[5] 特にないです
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10242.txt
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2009年12月8日20:59まで]
[5] その他の制限:再帰の問題です。combinationを用いる。
お願いします。
0751デフォルトの名無しさん
2009/12/06(日) 19:29:29「下記構造体型配列」の構造体ってどんなのでしょうか.
0752デフォルトの名無しさん
2009/12/06(日) 22:17:13当方の環境は Windows XP/cygwin, 処理系は gcc 4.3.2 です。
http://codepad.org/G8LDY47D
0753デフォルトの名無しさん
2009/12/06(日) 22:56:07下記構造体型配列を作る。
データは入力すること。
確認のため各配列要素を表示すること。
20 40 10 50 30
CD GH AB IJ EF
#include <stdio.h>
#define MAX 5
struct sa {
int ia[MAX];
char ca[MAX][20+1];
};
int main(void) {
int i;
struct sa data = {20,40,10,50,30,"CD","GH","AB","IJ","EF"};
printf("INPUT %d NUMBERS :", MAX);
for(i=0; i<MAX; i++) scanf("%d", &data.ia[i]);
printf("INPUT %d WORDS :", MAX);
for(i=0; i<MAX; i++) scanf("%s", data.ca[i]);
for(i=0; i<MAX; i++) printf(" %d ", data.ia[i]);
puts("");
for(i=0; i<MAX; i++) printf(" %s ", data.ca[i]);
return puts("");
}
0754デフォルトの名無しさん
2009/12/06(日) 23:13:46[1] 授業単元:C
[2] 問題文(含コード&リンク):
入力されたデータをもとに売上明細を作成して表示する。
入力データは商品名と金額で、最大20件とし、^zで終了する。
入力されたデータは構造体配列に記録し、
入力終了後金額を集計して合計を表示する。
<構造体メンバ>
商品名:char型10桁
金額:long型
<実行結果>
^z
商品名 金額
パソコン 248500
ラジオ 3200
テレビ 120500
オーディオ 314000
レイゾウコ 65800
クーラー 79000
合計 831000
[3] 環境
[3.1] OS: WindowsVISTA
[3.2]Lcpad
[3.3] 言語:C
よろしくお願いします
0755742
2009/12/06(日) 23:32:08http://codepad.org/O4UYo6ph
0756デフォルトの名無しさん
2009/12/06(日) 23:35:43http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10243.c
0758デフォルトの名無しさん
2009/12/07(月) 01:21:01[2] 問題文(含コード&リンク):
問題1
double型の変数a,bを引数とし,小さい値を返す関数minと
大きい値を返す関数maxを作成せよ。
問題2
扇形の面積を求めるプログラムを作成せよ。
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visual studio2008
[3.3] 言語:C
[4] 期限:[2009年12月08日まで]
[5] その他の制限:mainを使用。
よろしくお願いします。
0759デフォルトの名無しさん
2009/12/07(月) 02:41:11[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10244.txt
[3] 環境
[3.1] Windows
[3.2] VC2005
[3.3] C++
[4] 期限: 2009年12月8日
[5] その他の制限: 連結リストの演習です。
0760デフォルトの名無しさん
2009/12/07(月) 02:43:46問題1
double min(double a,double b){return (a<=b)?a:b;}
double max(double a,double b){return (a>=b)?a:b;}
問題2
http://codepad.org/KQn7aW7H
0761デフォルトの名無しさん
2009/12/07(月) 02:50:21http://codepad.org/CKfPNkCa
#include <stdio.h>
#define MAX 20
struct aa {
char a1[10+1];
long b1;
};
char *comma(int a, char *tmp){
if(a < 1000)
sprintf(tmp, "%d", a);
else if(a < 1000000)
sprintf(tmp, "%d,%03d", a/1000, a%1000);
else
sprintf(tmp, "%d,%03d,%03d", a/1000000, a/1000%1000, a%1000);
return tmp;
}
int main(void) {
struct aa data[MAX];
char tmp[20];
int i, j;
long total = 0;
for(i=0; i<MAX; i++) {
j = scanf("%s%ld", data[i].a1, &data[i].b1);
if(j < 2) break;
}
printf("商品名\t 金額\n");
for(j=0; j<i; j++) {
printf("%s\t%8s\n", data[j].a1, comma(data[j].b1, tmp));
total += data[j].b1;
}
return printf("合計\t%8s\n", comma(total, tmp));
}
0764デフォルトの名無しさん
2009/12/07(月) 14:35:43各クラス毎の入場料を出力するという問題です
#include<stdio.h>
int main(){
nt n,gozen,gogo,money[9],money2[9];
char c,home[9];
for(n=0;n<9;n++){
//クラス名 午前の入場者数 午後の入場者数
scanf("%s %d %d",&c,&gozen,&gogo);
home[n] = c;
money[n] = gozen;
money2[n] = gogo;
}
for(n=0;n<9;n++){
c = home[n];
gozen = money[n] * 200;
gogo = money2[n] * 300;
printf("%s %d %d\n",c,gozen,gogo);
}
return 0;
}
私はこう考えたのですが、
printf("%s %d %d\n",c,gozen,gogo);
の所が何故か上手くいきません
どこがおかしいのでしょうか
ご指導お願いします
0765デフォルトの名無しさん
2009/12/07(月) 14:37:230766デフォルトの名無しさん
2009/12/07(月) 14:41:04回答ありがとうございます
%cでも試してはみたんですが、
デバッグエラーというのが出てきます
これは出てもいいのでしょうか?
0767デフォルトの名無しさん
2009/12/07(月) 14:50:480768デフォルトの名無しさん
2009/12/07(月) 15:19:50デバッグエラーはでなくなりました
ですが、scanfで2回しか読み込めなくなりました
ステップインをしてみて、
一回目と二回目までは、scanfを通ったときに入力できるのですが、
三回目のscanfは通っているのに入力できないです・・・。
printf("%c %d %d\n",c,gozen,gogo);
0770770
2009/12/07(月) 16:19:17[2] 問題文(含コード&リンク):鶴と亀の頭の数の合計と足の数の合計を入力して, 鶴が何羽,亀が何匹いるか
を表示する。(ヒント:頭の数と足の数を変数として,鶴の数と亀の数について連立
方程式を作り,解を与える式の値を表示させればよい)
[3] 環境
[3.1] OS: Windows XP Prof.
[3.2] コンパイラ名とバージョン: BCC Developer
[3.3] 言語: C++
[4] 期限: 明後日まで
[5] その他の制限: ここまで習っています
http://www.hino.meisei-u.ac.jp/is/iga/hit-u/No7/C1.pdf
0771デフォルトの名無しさん
2009/12/07(月) 16:32:53[2] 問題文(含コード&リンク):これに全て記載 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10245.c
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:わかりません
[3.3] 言語: C言語
[4] 期限: 2009年12月08日AM10:30まで (明日まで)
[5] その他の制限: 特にありません。
よろしくお願いします
0772デフォルトの名無しさん
2009/12/07(月) 16:55:45/bin/sort のことですか
0773デフォルトの名無しさん
2009/12/07(月) 18:53:16[2] 問題文(含コード&リンク): 構造体を使って二つの複素数の積を求める
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限: 2009年12月14日PM2:30まで
[5] その他の制限:ありません
よろしくお願いします
/*
x + y = a
2x + 4y = b
x = a - y
2(a - y) + 4y = b
a - y + 2y = 1/2 b
a + y = 1/2 b
y = 1/2b - a
x + (1/2b - a) = a
x + 1/2b - a = a
x + 1/2b = 2a
x = 2a - 1/2b
鶴4亀5 a=9 b=26
*/
#include <stdio.h>
int main(void) {
int turu, kame, atama, ashi;
printf("HOW MENY HEADS ? :"); scanf("%d%*c", &atama);
printf("HOW MENY FOOTS ? :"); scanf("%d%*c", &ashi);
turu = 2*atama - ashi/2;
kame = ashi/2 - atama;
return printf("TUTU = %d\nKAME = %d\n", turu, kame);
}
0775デフォルトの名無しさん
2009/12/07(月) 20:20:310776デフォルトの名無しさん
2009/12/07(月) 20:49:41http://codepad.org/9fR7pqTg
0777デフォルトの名無しさん
2009/12/07(月) 20:53:13回答ありがとうございました。
助かりました。
0778デフォルトの名無しさん
2009/12/07(月) 22:58:51[2] 問題文(含コード&リンク): 長いのでここに記載します http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10246.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限: 2009年12月9日(水)まで
[5] その他の制限:特にありません
お願いします。
0779デフォルトの名無しさん
2009/12/08(火) 04:07:110780778
2009/12/08(火) 12:31:48IEでも見れるように直しました。
課題2-2のほうをお願いします。
[2]問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10247.txt
0781デフォルトの名無しさん
2009/12/08(火) 12:54:38#define N 128
int main(int argc, char **argv)
{
int data[N], *p, i, n;
float sum = 0;
FILE *fin, *fout;
if(argc!=3) return 0;
if((fin=fopen(argv[1], "r"))==NULL) return 0;
fscanf(fin, "%d", &n);
for(i=0,p=data; i<n; i++) {
fscanf(fin, "%d", p);
sum += *p++;
}
fclose(fin);
if((fout=fopen(argv[2], "w"))==NULL) return 0;
fprintf(fout, "平均=%f\n", sum/n);
fclose(fout);
return 0;
}
0782デフォルトの名無しさん
2009/12/08(火) 17:52:30http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10248.zip
0783778
2009/12/08(火) 18:14:11返事が遅くなってすいません。
回答ありがとうございました。
0784デフォルトの名無しさん
2009/12/09(水) 00:03:41[2] 問題文(含コード&リンク): 構造体を身長順に並べ変えなさい。身長が同じ場合は番号が若い順に並べなさい。
作ったけどうまくいかなかったのがこれです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10249.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限: 2009年12月9日(水)まで
[5] その他の制限:特にありません
お願いします。
0785デフォルトの名無しさん
2009/12/09(水) 00:13:51基本的なことから間違ってる
・構造体の中で#includeしてる
・if( st[k].height = st[l].height )のところは比較式になってない。代入してる
0786784
2009/12/09(水) 00:18:54まだC言語始めたばっかりなので基本がなってなくてすいません。
if( st[k].height = st[l].height )の式を少しいじったらできました。
どうもありがとうございました。
0787デフォルトの名無しさん
2009/12/09(水) 00:20:32次に身長で降順にバブルソート
実に簡単
0788デフォルトの名無しさん
2009/12/09(水) 00:26:17#include<stdio.h>
struct data{
int no;
char name[20];
double height;
};
int main(void){
int k,l;
struct data stb;
struct data st[20] = { { 1,"一郎",180.0 }, { 2,"二郎",175.5 },{ 3,"三郎",180.0 }, { 4,"四郎",175.5 },{ 5,"五郎",169.9 }, { 6,"六郎",169.9 }, };
for ( k = 0 ; k<5 ; k++ ){
for ( l = k+1 ; l<6 ; l++ ){
if ( st[k].height == st[l].height ) {
if ( st[k].no > st[l].no ) {
stb = st[k] ; st[k] = st[l] ; st[l] = stb ;
}
} else if ( st[k].height > st[l].height ) {
stb = st[k] ; st[k] = st[l] ; st[l] = stb ;
}
}
}
printf("身長順\n");
for(l=0 ; l<6 ; l++){
printf("%d %s %lf\n", st[l].no, st[l].name, st[l].height) ;
}
return 0;
}
0790デフォルトの名無しさん
2009/12/09(水) 00:36:560791デフォルトの名無しさん
2009/12/09(水) 00:41:32>struct data st[20] = { { 1,"一郎",180.0 }, { 2,"二郎",175.5 },{ 3,"三郎",180.0 }, { 4,"四郎",175.5 },{ 5,"五郎",169.9 }, { 6,"六郎",169.9 }, };
ここがよくわからない。st[20]ってデータ5個なのに20に設定するのってどうして?
あと六郎のデータのあとにカンマ入ってるけどこれ何?以降のデータ省略って意味?
超初心者でゴメンお
0792デフォルトの名無しさん
2009/12/09(水) 00:44:58ttp://www9.plala.or.jp/sgwr-t/c/sec15.html
0793デフォルトの名無しさん
2009/12/09(水) 00:45:16[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10250.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:12月10日18:00mmまで
[5] その他の制限: 特に無し
0794デフォルトの名無しさん
2009/12/09(水) 00:52:060795デフォルトの名無しさん
2009/12/09(水) 00:55:22>st[20]ってデータ5個なのに20に設定するのってどうして?
なんとなくだろ
僕なら要素数(20)も省略する
要素数があらかじめ分かっていたら、それ以上の初期化子の並びが存在することをコンパイラに警告してもらうためにあえて要素数を省略しない場合もある
>六郎のデータのあとにカンマ入ってるけどこれ何?以降のデータ省略って意味?
データ省略ともいえる
あってもなくても構わないが、カンマをあらかじめ入れておけば、追加するときにカンマを忘れて意図しない初期化にならないようにできる
ある種の習慣みたいなもんだよ
余談だけど、C89ではenumの最後の列挙子のあとにカンマが付けられないという一貫性の無い仕様、C99では付けられるようになった
0796デフォルトの名無しさん
2009/12/09(水) 00:58:18if(used[i]==0)
used[i] = 1
used[i] = 0
0799791
2009/12/09(水) 01:04:26コンパイルしたら警告でた
0800デフォルトの名無しさん
2009/12/09(水) 01:20:380801デフォルトの名無しさん
2009/12/09(水) 01:21:24禿同
0802782 ◆FKHan0pzBo
2009/12/09(水) 02:02:26http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10251.c
0803デフォルトの名無しさん
2009/12/09(水) 02:02:360804デフォルトの名無しさん
2009/12/09(水) 02:06:20さすがにこれだけ単純な内容だと
普通に書いたら誰でも同じような内容になると思う
0805デフォルトの名無しさん
2009/12/09(水) 02:10:150806デフォルトの名無しさん
2009/12/09(水) 02:13:220807デフォルトの名無しさん
2009/12/09(水) 03:12:45あと入力バッファに80とかもよくやった
0808デフォルトの名無しさん
2009/12/09(水) 03:17:010809デフォルトの名無しさん
2009/12/09(水) 03:58:47でも>>784には努力の跡が見えるし、学生の課題として似てるの範囲には含まれないレベルだと思うよ。
0810デフォルトの名無しさん
2009/12/09(水) 04:01:56[2] 自然数の数列内にあるnよりも大きい数と小さい数が
数列上においてnの前後にそれぞれ一つずつある場合、そのnを出力する。
つまり、(n-a,...,n+b,....n,....n+c,....,n-d)という風になっているnを探すプログラムです。
[3] 環境
[3.1] OS: Linux
[3.3] 言語: C
よろしくお願いします。
0811デフォルトの名無しさん
2009/12/09(水) 04:03:56がわからんw
具体例を述べる!
0812デフォルトの名無しさん
2009/12/09(水) 04:08:290813デフォルトの名無しさん
2009/12/09(水) 04:18:13課題文や問題文を意訳せずにそのまま書けばいいのに
0814782 ◆FKHan0pzBo
2009/12/09(水) 08:32:0950より大きくて120より小さい数: 90
90より大きくて120より小さい数: 98
98より大きくて120より小さい数: 102
98より大きくて102より小さい数: 100
正解!!>>810
0815デフォルトの名無しさん
2009/12/09(水) 08:57:070816810
2009/12/09(水) 13:38:13教授が口にしただけでちゃんとした問題文がなく、自己流で書きました。
具体例をあげますと、
数列(4 8 2 1 7 9 3 5 6)を入力します。
この場合、4と6は両端なので前後片方しかないので除外します。
同様に8と5を見ると8の前には4だけ、5の後ろには6しかないので除外します。
2 1は前に4 8と大きい数字しかないので除外します。
7は前後に大きい数字と小さい数字があるので残します。
9は数列の中で最大なので除外できます。
3 5 6は後ろに小さい数字がないので除外します。
結果、7と表示して終了です。
大変お手数をおかけしましたが、よろしくお願いします。
0817デフォルトの名無しさん
2009/12/09(水) 13:45:050818デフォルトの名無しさん
2009/12/09(水) 13:47:050819デフォルトの名無しさん
2009/12/09(水) 13:54:44#include <stdio.h>
int f(int *p, int n, int size)
{
int i, s, l;
if(n <=1 || size-2<=n) return 0;
for(i=s=l=0; i<n; i++) {
if(p[i] > p[n]) l++;
else if(p[i] < p[n]) s++;
}
if(s==0 || l==0) return 0;
for(i=n+1, s=l=0; i<size; i++) {
if(p[i] > p[n]) l++;
else if(p[i] < p[n]) s++;
}
return s && l;
}
int main(void)
{
int i, a[] = {4,8,2,1,7,9,3,5,6};
for(i=0; i<sizeof a / sizeof *a; i++) if(f(a, i, sizeof a / sizeof *a)) printf("%d\n", a[i]);
return 0;
}
0820810
2009/12/09(水) 14:10:29そうでした・・・すいません。
>>818
順数列の入力
↓ ↓
数列数が5以上 4以下→終了(4以下のときどれも除外できないので)
↓
数列の中で最大最小の値と
最初と最後に入力した値は除外できる。
↓
残りの数値に前後に大小の値が一つ以上あれば除外
↓
残った値を表示して終了
こんな感じです。
>>819
早速書いていただき本当に感激です。実行させたりして勉強させてもらいます。
0821デフォルトの名無しさん
2009/12/09(水) 15:39:42> 残りの数値に前後に大小の値が一つ以上あれば除外
「二つ以上」が正しいなら、>>819 の
return s && l; を
---> return (s==1) && (l==1); でいいと思う。
0822デフォルトの名無しさん
2009/12/09(水) 15:42:170823デフォルトの名無しさん
2009/12/09(水) 15:45:110824デフォルトの名無しさん
2009/12/09(水) 15:46:25ダメです。
0825デフォルトの名無しさん
2009/12/09(水) 15:53:110826デフォルトの名無しさん
2009/12/09(水) 15:55:240827デフォルトの名無しさん
2009/12/09(水) 15:57:37二つ以上と解釈するなら一つ前の
>if(s==0 || l==0) return 0;
これも変更しないとマズくね?
0828デフォルトの名無しさん
2009/12/09(水) 15:59:38個数は1つ以上ならいくつでもいい。
>return (s==1) && (l==1);
なんてしたら解が出なくなる可能性が高い。
0829デフォルトの名無しさん
2009/12/09(水) 16:00:56前後にひとつずつとあるが・・
0830デフォルトの名無しさん
2009/12/09(水) 16:02:350831デフォルトの名無しさん
2009/12/09(水) 16:03:410832デフォルトの名無しさん
2009/12/09(水) 16:05:24>>816-820がまともに読めないアホにも問題有り。
0833デフォルトの名無しさん
2009/12/09(水) 16:16:06全く問題なく済んだのにな。
0834デフォルトの名無しさん
2009/12/09(水) 16:17:39この話題はオシマイ
0835デフォルトの名無しさん
2009/12/09(水) 16:23:110836デフォルトの名無しさん
2009/12/09(水) 16:27:450837デフォルトの名無しさん
2009/12/09(水) 16:34:040838デフォルトの名無しさん
2009/12/09(水) 16:41:140839デフォルトの名無しさん
2009/12/09(水) 16:44:31教授に条件を確認した方がいいんじゃないか?
0840デフォルトの名無しさん
2009/12/09(水) 16:47:400841デフォルトの名無しさん
2009/12/09(水) 17:12:08[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10252.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2009年12月11日(金)まで
[5] その他の制限:ありません
よろしくお願いします
0842デフォルトの名無しさん
2009/12/09(水) 17:20:38大学時代にプログラミング入門の授業あったけど先生の出す課題の大半はテキストに答え載ってたけど
大半の学生がテキストまともに読まないからテキストの問題だということにも気づいてなかったよ
まぁ私は答えなど見なくても作ることに問題はありませんでしたが
0843デフォルトの名無しさん
2009/12/09(水) 17:26:200844デフォルトの名無しさん
2009/12/09(水) 18:01:38問1:
#include <stdio.h>
int main(void)
{
int n;
char data[128],*p;
puts("文字列を入力してください");
printf("文字列:");
scanf("%s",data);
printf("文字列の文字数をカウントします。\n");
p=data;
for(n=0;*(p+n)!='\0';n++);
printf("文字列: %s 文字数: %d\n",data,n);
return 0;
}
0845デフォルトの名無しさん
2009/12/09(水) 18:18:09問2:
#include <stdio.h>
int main(int argc,char *argv[])
{
int n;
char data[128],*p;
FILE *fp;
if(argc==1){
puts("文字列を入力してください");
printf("文字列:");
scanf("%s",data);
printf("文字列の文字数をカウントします。\n");
p=data;
for(n=0;*(p+n)!='\0';n++);
}
else{
if((fp=fopen(argv[1],"r"))==NULL)
return 1;
for(n=0;(data[n]=fgetc(fp))!=EOF;n++);
data[n]='\0';
fclose(fp);
}
printf("文字列: %s 文字数: %d\n",data,n);
return 0;
}
0846デフォルトの名無しさん
2009/12/09(水) 18:19:37>>841
0847デフォルトの名無しさん
2009/12/09(水) 18:24:39>>845
回答ありがとうございました。
とても助かりました。
0848デフォルトの名無しさん
2009/12/09(水) 18:26:21for(n=0;(data[n]=fgetc(fp))!=EOF;n++);のところ
for(n=0;(data[n]=(char)fgetc(fp))!=EOF;n++);にキャストしたほうがいいかも
0850デフォルトの名無しさん
2009/12/09(水) 18:29:190851デフォルトの名無しさん
2009/12/09(水) 18:46:46最近のお勧めなに?
0852デフォルトの名無しさん
2009/12/09(水) 18:48:33fgetcの返り値はintなのでそれ以前の問題
0853デフォルトの名無しさん
2009/12/09(水) 18:51:01forでそんなことするなよ
0854デフォルトの名無しさん
2009/12/09(水) 20:18:340855デフォルトの名無しさん
2009/12/09(水) 20:37:01fgetc() の返り値は int。EOF と比較するのにchar にキャストするのは間違いのもと。
0856デフォルトの名無しさん
2009/12/09(水) 20:41:300857デフォルトの名無しさん
2009/12/09(水) 21:11:03[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: forとかwhileとかまでしか習っていないです。
宿題かなり出たのです出が、全くわからないので、数問連続で丸投げさせていただきます。すいません。
0858デフォルトの名無しさん
2009/12/09(水) 21:14:52問題文貼れていませんでした。もう1度。
1] 授業単元: forとかwhileとか
[2] 問題文(含コード&リンク):
ycm2の面積を有する円の半径xを,2分法を用いて近似解を求める.
(a) 区間を10分割してどの区間に解があるかを求めるプログラムを作成しなさい.
(b) 解がある区間が見つかったら,さらにその区間を10分割してどの区間に解があるかを求めるという作業を5回繰り返すプログラムを作成しなさい.
(補足)2分法
2分法とは,中間値の定理に根拠をおいて,数式的に解くことのできない方程式の解を求める方法である.
下図に示すように,xの値を少しずつ変化させた場合に,隣り合う二つのf(x)の値の符号が異なる区間が存在すると,その方程式の解はその区間内に存在する.
区間を少しずつ狭めていくことにより,その方程式の近似解を求めることができる.方程式の近時解法として代表的なものには2分法の他に,ニュートン法もある.
[3] 環境
[3.1] OS:Windows
[3.2] わかりません・・・。
[3.3] 言語:C++
[4] 期限: ([2009年12月11日16:00まで]
[5] その他の制限: forとかwhileとかまでしか習っていないです。
宿題かなり出たのです出が、全くわからないので、数問連続で丸投げさせていただきます。すいません。
0859デフォルトの名無しさん
2009/12/09(水) 21:16:151] 授業単元: forとかwhileとか
[2] 問題文(含コード&リンク): 関数y=x3+1の微分曲線を求めるプログラムを作成しなさい.計算範囲は0≦x≦2とし,間隔は0.1とする.
[3] 環境
[3.1] OS:Windows
[3.2] わかりません・・・。
[3.3] 言語:C++
[4] 期限: ([2009年12月11日16:00まで]
[5] その他の制限: forとかwhileとかまでしか習っていないです。
宿題かなり出たのです出が、全くわからないので、数問連続で丸投げさせていただきます
0860デフォルトの名無しさん
2009/12/09(水) 21:19:54ycm2 ってなんですか?
0861デフォルトの名無しさん
2009/12/09(水) 21:20:39微分曲線ってなんですか?
x3 というのは x の 3 乗ですか?
0862デフォルトの名無しさん ◆Y1qzQcDRUI
2009/12/09(水) 22:24:19[2] 問題文(含コード&リンク):
課題 リスト処理
実行結果のようにキーボードから入力して整数を入力順にリストに格納し、入力値に
番号を付けて表示するプログラムを作成しなさい.ただし入力の終了はCtrl+dで行えるようにすること。
入力する値や個数が実行例と異なる場合にも正しく動作するようにすること.
必ず1個以上の整数が入力されるとする.
[実行結果]
整数を順番に入力してください.
5
10
15
20
25
入力データは以下の通りです.
[1] 5
[2] 10
[3] 15
[4] 20
[5] 25
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明日8:30までに
[5] その他の制限:malloc関数 free関数 sizeof演算子 リスト構造を使うこと.
よろしくお願いします!
0863デフォルトの名無しさん ◆Y1qzQcDRUI
2009/12/09(水) 22:31:22[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10253.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:明日8:30までに
[5] その他の制限:
何度もすみません。よろしくお願いします!
0864デフォルトの名無しさん
2009/12/09(水) 22:49:15[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org440057.pdf
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc emacsで作って、ktermでコンパイル
[3.3] 言語: C言語
[4] 期限:明日18時までに
ファイル重いですが、どうかどうかよろしくお願いします!!
演習問題の番号に*がついた奴は必修なので、優先してお願いします!!
とても多いですが、皆さんのお力をお借りしたいです。。
0865デフォルトの名無しさん
2009/12/09(水) 22:53:25どれやるのかわからんだろが
0866デフォルトの名無しさん
2009/12/09(水) 23:04:35えっと、演習問題1-1,1-2,1-3,1-6,1-7,1-8,1-9です。
よろしくお願いします。
また分かりづらい所あれば指摘お願いします。
0867デフォルトの名無しさん
2009/12/09(水) 23:06:16回答率上がると思われ。
0868デフォルトの名無しさん
2009/12/09(水) 23:10:250869デフォルトの名無しさん
2009/12/09(水) 23:31:13[2] 問題文(含コード&リンク):
文字列ABCDEFGHIJKLMNに対して入力した文字列の第1文字目と第2文字目の間にある文字列を表示するプログラムを作る。 ただし標準ライブラリは使用しないこと。
[3] 環境
[3.1] OS:windows xp
[3.2] vc2005
[3.3] c
[4] 期限:10日 11時
[5] >>123と似ているのですか、標準ライブラリが使えません。よろしくお願いします
0870デフォルトの名無しさん
2009/12/09(水) 23:32:03Windows XP/cygwin/gcc 3.4.4 です。
http://codepad.org/HgeI4UYi
0871デフォルトの名無しさん
2009/12/09(水) 23:32:38http://codepad.org/Qzk7lmqJ
汚いコードでメンゴ
0873デフォルトの名無しさん
2009/12/09(水) 23:40:19WinAPIを使うのか。アセンブラ埋め込みか。
0874デフォルトの名無しさん
2009/12/09(水) 23:40:30ゴメン、871のは無しで。
0875デフォルトの名無しさん
2009/12/09(水) 23:43:53http://journal.mycom.co.jp/column/helloworld/016/index.html
0876デフォルトの名無しさん
2009/12/09(水) 23:56:48>>863
課題1
http://codepad.org/8hFsZjsS
課題2
http://codepad.org/KyCpxhcB
ただ演算した結果を表示しただけだよ。出来れば内容を理解してほしいな
0877デフォルトの名無しさん
2009/12/10(木) 00:05:44Visual C++で作成
http://codepad.org/D83lLvNG
こんなんでいいかな
0878デフォルトの名無しさん
2009/12/10(木) 00:11:24pdfというURLで見る気を削がれ
pdfの紙の向きが縦じゃなくて読む気を削がれ
問題内容は紙を丸写しして実行するだけ
コーディングさせるためだけに来ただろお前
0879デフォルトの名無しさん
2009/12/10(木) 00:23:50せっかくやってもらったのに申し訳ありませんが習っていないとこが多少あるのでもう少し簡単なプログラムにはなりませんか?
0880デフォルトの名無しさん
2009/12/10(木) 00:28:040881デフォルトの名無しさん
2009/12/10(木) 00:28:51何のために
> [5] その他の制限:
という項目があると思ってんだ
0882876
2009/12/10(木) 00:29:06昨日ネットワークプログラミングで言われたばっかだからやめてくれw
>>879
課題のレベルに合わせたつもりだったけど、具体的にどこがわからない?
% 演算子以外には簡単にする要素が無いけど
0883デフォルトの名無しさん
2009/12/10(木) 00:36:07ほんとに困ってて、2chしか頼るところがないんです。聞ける人もいなくて・・
やることが山ずみで、pdfファイルになってしまいました。
すみません。
どうか今回だけ大目に見ていただけないでしょうか・・
0884デフォルトの名無しさん
2009/12/10(木) 00:38:4030分で済むだろ
0885デフォルトの名無しさん
2009/12/10(木) 00:51:20聞きたいことがあるなら質問をすればいいじゃないか
こっちは聞きたいこともわからなければコレは優先してやれだのふざけるな
人を利用するだけに来たのなら君は最低な人間だ
じゃなけりゃ>>884
0886デフォルトの名無しさん
2009/12/10(木) 01:19:38改めて、
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10254.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc emacsで作って、ktermでコンパイル
[3.3] 言語: C言語
[4] 期限:明日18時までに
よろしくお願いします。
0887デフォルトの名無しさん
2009/12/10(木) 01:59:58問題番号とURLの対応間違ってたらごめんです。
演習問題1-6
http://codepad.org/Y7DOy8hA
演習問題1-7
http://codepad.org/ePFSTnSw
演習問題1-8
http://codepad.org/igXmyA25
演習問題1-9
http://codepad.org/uL5VwgAq
double 習っていたら,修正してください。
演習問題1-10
http://codepad.org/e9878C7j
0888デフォルトの名無しさん
2009/12/10(木) 03:39:03>>865ですよね。すみません。
知らんぞお前の事。日本語変わった?
0889888
2009/12/10(木) 04:17:13int main( void ){
char c;
char *p; /* ポインタの宣言 */
c = 'A';
p = &c; /* ポインタの値設定 */
printf( "%c\n", *p); /* ポインタの指す値を表示 */
return 0;
}
#include <stdio.h> // >>864 1-2
int main( void ){
char c = 'A';
char *p; /* ポインタの宣言 */
p = &c; /* ポインタの値設定 */
printf( "%c\n", *p); /* ポインタの指す値を表示 */
*p = *p + 2; /* ポインタの指す値を+2 */
printf( "%c\n", *p); /* ポインタの指す値を表示 */
return 0;
}
#include <stdio.h> // >>>864 1-3
int main( void ){
int a = 611, *ptr;
ptr = &a;
printf( "変数aのアドレス=%p\n", &a);
printf( "変数aの値=%d\n", a);
printf( "ポインタptrの値=%p\n", ptr);
printf( "ポインタptrの指す値=%d\n", *ptr);
return 0;
}/* %pはアドレスを表示するための変換指定 */
0890デフォルトの名無しさん
2009/12/10(木) 12:48:57[2] 問題文(含コード&リンク):
sinxをテイラー展開しn項目で打ち切ったものについて
xについては0から2πまでの範囲を0.05π刻みでけいさんし、nについてはn=1,2,3,4(すなわち3次、5次、7次、9次までの展開)について計算し
x sinx 3次まで ・・・・・9次まで
0.0 …
0.157 …
のような数表を自分で指定したファイルに出力するプログラムを作成しなさい。
[3] 環境
[3.1] OS: windowsVista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009 12/11
[5] その他の制限:特にはありません。よろしくお願いします。
0891デフォルトの名無しさん
2009/12/10(木) 13:33:45学生にとって宿題は優先度の高い「やること」だと思うんだけどな。
0892デフォルトの名無しさん
2009/12/10(木) 13:50:07全国共通の単位認定ペーパー試験でも作ってそれパスした奴らにだけ単位与えろよ
ろくに出来もしない奴らに単位認定してる意味がわからん
授業や宿題は学習の手助け的なとこに位置づけてほしいわ
九九や割り算や少数もワカランような奴が中学卒業とか
微積分もろくに分かってないような理系が大学卒業とか
バカらしいわ
0893デフォルトの名無しさん
2009/12/10(木) 13:52:400894デフォルトの名無しさん
2009/12/10(木) 13:53:59だよな
何のための大学だよって感じ
0895デフォルトの名無しさん
2009/12/10(木) 14:05:55http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10255.txt
なおファイル名の入力にgets()を使うのが不安なら
自分でfgets()などに直す事
0896デフォルトの名無しさん
2009/12/10(木) 14:08:240897デフォルトの名無しさん
2009/12/10(木) 14:20:32そう思うならお前が書いてやれカス
0898デフォルトの名無しさん
2009/12/10(木) 14:21:250899デフォルトの名無しさん
2009/12/10(木) 14:25:07あーやっぱり書けないんだバーカ
俺の場合はわざと誤差を少なくするために後ろから足しているので
こういう風になってんだよ
悔しければ書け
書けるという口だけなら誰でも言える
0900デフォルトの名無しさん
2009/12/10(木) 14:27:350901デフォルトの名無しさん
2009/12/10(木) 14:30:32文系の一般教養レベルのプログラミング系の授業だとそこまで求められていなかったりもする
問題文のアルゴリズムをそのまま実現すればいいというレベル
0902デフォルトの名無しさん
2009/12/10(木) 14:45:19>>860さん
cm2は平方センチメートルのことです。すいません。
>>861さん
微分曲線とは、その直線の傾きのことで、要するに、
0から2の範囲で与えられた式を微分しなさい
という問題です。
x3はxの3乗のことです。
0903デフォルトの名無しさん
2009/12/10(木) 14:49:43先生が来て説明を求められたりしたことが数度あった
まぁ自分で書いたソースだったから無問題だったけど
ここで依頼してる人たちって先生から何か質問されても大丈夫なのかなぁ
0904デフォルトの名無しさん
2009/12/10(木) 14:49:51[2] 問題文(含コード&リンク): ある整数を入力し,その約数をすべてと約数の個数を表示するプログラムを作成しなさい.
[3] 環境
[3.1] OS:Windows
[3.2] わかりません・・・。
[3.3] 言語:C++
[4] 期限: ([2009年12月11日16:00まで]
[5] その他の制限: forとかwhileとかまでしか習っていないです。
もう1問あります。よろしくおねがいします・・・。
0905デフォルトの名無しさん
2009/12/10(木) 14:51:37GUIソフト使ってるならソフト名とか
まぁいいけどさ
0906デフォルトの名無しさん
2009/12/10(木) 14:53:00だから人の書いたプログラムに文句だけしか付けられないんなら
すっこんでろってんだよ
0907デフォルトの名無しさん
2009/12/10(木) 14:53:22[3.1] OS:Windows
[3.2] わかりません・・・。
[3.3] 言語:C++
[4] 期限: ([2009年12月11日16:00まで]
[5] その他の制限: forとかwhileとかまでしか習っていないです。
>>858,>>859,>>904と併せてよろしくお願いします。
0908デフォルトの名無しさん
2009/12/10(木) 14:54:07ハゲ同
0909デフォルトの名無しさん
2009/12/10(木) 14:54:500910デフォルトの名無しさん
2009/12/10(木) 14:59:26条件分岐とか配列とかポインタとか標準入出力とか
Mathの関数とかオリジナル関数とか
いままで何を習ったのかなぁ・・・
どのレベルで実現すりゃあいいのかなぁ
0911デフォルトの名無しさん
2009/12/10(木) 15:00:280912デフォルトの名無しさん
2009/12/10(木) 15:05:06#include <stdio.h>
int main(void)
{
int n,i,m=0; /*nは入力された数値を記録するため、mは約数の数をカウント*/
printf("InputNunber:");
scanf("%d",&n);
for(i=1;i<=n;i++)
if(n%i==0){ /*%は余りを計算するってことだよ*/
printf("%d,",i);
m++;
}
printf("\n%ds\n",m);
}
実行結果はこんなかんじ
InputNunber:35
1,5,7,35,
4s
0913デフォルトの名無しさん
2009/12/10(木) 15:08:260914912
2009/12/10(木) 15:08:48Cで書いちゃったよ
0915デフォルトの名無しさん
2009/12/10(木) 15:13:260916デフォルトの名無しさん
2009/12/10(木) 15:17:490917デフォルトの名無しさん
2009/12/10(木) 15:21:0772も約数
i*i<=nだと72は抽出されない
0918デフォルトの名無しさん
2009/12/10(木) 15:22:04嘘つき
0919デフォルトの名無しさん
2009/12/10(木) 15:24:16i*2<=nの間違いw
0920デフォルトの名無しさん
2009/12/10(木) 15:30:41約数を小さい順に並べろとは言ってないんだから
表示に
printf("%d,%d,",i,n/i);
ってすればよくね?
0921デフォルトの名無しさん
2009/12/10(木) 15:34:510922デフォルトの名無しさん
2009/12/10(木) 15:36:460923デフォルトの名無しさん
2009/12/10(木) 15:37:59#include <iostream>
int isPrime(int n)
{
if(n<2) return 0;
if(n==2) return 1;
if(n%2==0) return 0;
for(int i=3; i*i<=n; i+=2) if(n%i==0) return 0;
return 1;
}
int main()
{
int n;
std::cin >> n;
for(int i=0; i<n; i++) if(isPrime(i)) std::cout << i << std::endl;
}
0924デフォルトの名無しさん
2009/12/10(木) 15:45:16for whileまでしか習ってない奴に 関数定義させるなよw
0925デフォルトの名無しさん
2009/12/10(木) 16:11:420926デフォルトの名無しさん
2009/12/10(木) 16:21:18#include <iostream>
int main()
{
int n;
std::cin >> n;
if(n <= 2) return 0;
std::cout << '2' << std::endl;
for(int i=3; i<n; i+=2) {
for(int j=3; j*j<=i; j+=2) if(i%j==0) goto l;
std::cout << i << std::endl;
l:
}
}
0927デフォルトの名無しさん
2009/12/10(木) 16:34:48無理
0928デフォルトの名無しさん
2009/12/10(木) 16:42:02#include <stdio.h>
int main(void)
{
int i, n, m=0;
scanf("%d", &n);
for(i=1; i*i<n; i++) {
if(n%i==0) {
printf("%d %d ", i, n/i);
m+=2;
}}
if(i*i==n) {
printf("%d", i);
m += 1;
}
printf("\n%d\n", m);
return 0;
}
0929デフォルトの名無しさん
2009/12/10(木) 16:43:100930デフォルトの名無しさん
2009/12/10(木) 16:44:220931デフォルトの名無しさん
2009/12/10(木) 16:45:040932デフォルトの名無しさん
2009/12/10(木) 16:55:04goto l?breakって無いんだっけ?
0933デフォルトの名無しさん
2009/12/10(木) 17:01:290934デフォルトの名無しさん
2009/12/10(木) 17:04:220936810
2009/12/10(木) 18:20:16>>819では具体例で示した数列での解しかわからないので、数列を入力できるように
int i, a;
printf("数列の入力:");
scanf("%d", &a);
としたところエラーがでてコンパイルができませんでした。
また、>>819のプログラムのa[]= { 数列 }の数列の数を増やしたりすると求めている解と違う解が表示されたりしました。
独習Cを読んで直そうにも初心者すぎて正直ぜんぜん分かりませんでした。。。
本当に申し訳ないのですが、どう直したら、入力ができて正確な解も求まるプログラムになるのか教えてください。
フローチャートは>>820で示したので大丈夫だと思います。
int smain(void) {
int i;
for(i=0; i<sizeof a / sizeof *a; i++)
if(f(a, i, sizeof a / sizeof *a))
printf("%d ", a[i]);
return 0; }
int main(void) {
int a1,a2,a3,a4,a5,a6,a7,a8,a9;
for(a1=1;a1<=9;a1++){
for(a2=1;a2<=9;a2++){
if(a1==a2) continue;
for(a3=1;a3<=9;a3++){
if(a1==a3 || a2==a3) continue;
for(a4=1;a4<=9;a4++){
if(a1==a4 || a2==a4 || a3==a4) continue;
for(a5=1;a5<=9;a5++){
if(a1==a5 || a2==a5 || a3==a5 || a4==a5) continue;
for(a6=1;a6<=9;a6++){
if(a1==a6 || a2==a6 || a3==a6 || a4==a6 || a5==a6) continue;
for(a7=1;a7<=9;a7++){
if(a1==a7 || a2==a7 || a3==a7 || a4==a7 || a5==a7 || a6==a7) continue;
for(a8=1;a8<=9;a8++){
if(a1==a8 || a2==a8 || a3==a8 || a4==a8 || a5==a8 || a6==a8 || a7==a8) continue;
for(a9=1;a9<=9;a9++){
if(a1==a9 || a2==a9 || a3==a9 || a4==a9 || a5==a9 || a6==a9 || a7==a9 || a8==a9) continue;
a[0]=a1; a[1]=a2; a[2]=a3; a[3]=a4; a[4]=a5; a[5]=a6; a[6]=a7; a[7]=a8; a[8]=a9;
printf("\n%d %d %d %d %d %d %d %d %d = ", a1, a2, a3, a4, a5, a6, a7, a8, a9 );
smain();
}}}}}}}}}
}/* 9*8*7*6*5*4*3*2 = 9! = 362,880 */
0938デフォルトの名無しさん
2009/12/10(木) 19:35:520939デフォルトの名無しさん
2009/12/10(木) 20:16:37ありがとうございます。
ここでまさかの自分のミスが発覚いたしまして、
C++ではなく、Cでした;;
お暇な方がいらっしゃれば、>>858、>>859にも力を貸していただきたいです。
0940デフォルトの名無しさん
2009/12/10(木) 21:39:530941デフォルトの名無しさん
2009/12/10(木) 21:55:50これ問題文足りてる?
それとも俺の頭が足りないだけか?
0942デフォルトの名無しさん
2009/12/10(木) 22:09:53y平方センチの半径みたいだから、区間の初期値が判れば後は区間毎の円の面積を求めるだけみたいだが…
その区間の初期値をどうするのかがオレにはよくわからん
0943デフォルトの名無しさん
2009/12/10(木) 23:41:52標準ライブラリ使えないとなると入出力も自作というわけで無理。以上
0944デフォルトの名無しさん
2009/12/10(木) 23:44:28<stdio.h> <string.h>さえ使うなという事か?
やるやついるのか??
0945デフォルトの名無しさん
2009/12/10(木) 23:47:28http://journal.mycom.co.jp/column/helloworld/016/index.html
0946デフォルトの名無しさん
2009/12/11(金) 00:32:28>>858です。
初期値は自分で定めていいようです。
先生問題の出し方適当なので・・・。
0947デフォルトの名無しさん
2009/12/11(金) 01:08:24配列への入力もちゃんとできないのかよw
int i, a[10];
printf("数列の入力:");
for(i=0; i<10; i++) scanf("%d", a + i);
あと、求める解と違う解が出た具体的な例をあげてみて。
0948デフォルトの名無しさん
2009/12/11(金) 02:38:53[2] 問題文(含コード&リンク):
/*タイトル:関数におけるポイント利用プログラム */
/*概要:呼び出し元の変数のアドレスの受け渡しを */
/* ポイントを用いて行う。 */
/*適宜、プログラム中にコメントを入れる。 */
#include 〈stdio.h〉
/*関数のプロトタイプ宣言 */
int calc(double input_data, double * data_ptr );
int main(void) /* 引数無しのmain関数 */
{
double input_data; /*入力データ*/
double result_data; /*計算結果 */
/*入力データのキーボードからの入力 */
printf("入力値は?->");
scanf("%lf",&input_data);
/*関数呼び出し時に、変数result_dataのアドレスを引数として渡す */
calc(input_data, &result_data);
/*関数calcによって書きこまれた計算結果の表示 */
printf("%lf * 2 = %lf\n", input_data, result_data);
return 0; /* 正常終了 :/
}
0949デフォルトの名無しさん
2009/12/11(金) 02:39:37/* オリジナル関数calc */
/* calc(入力データ、計算結果のアドレスを格納するポインタ) */
int calc(double input_data, double * data_ptr)
{
/*ポインタを使って、呼び出し元のデータ格納場所に値を設定 */
*data_ptr = input_data * 2;
return0; /* 正常終了 */
}
上記プログラムを参考に、
二つの入力データの変数(倍精度実数型)
double input_data1, input_data2;
に対しての、四則演算(+、−、*、/)の結果を、それぞれ
double plus_data, minus_data, multiply_data, divide_data;
の4変数に設定する機能を持つ、オリジナル関数calcを作成せよ。
ただし、main関数上でのcalc関数の呼び出し方法は、以下のようにすること。
calc(inpt_data1, input_data2, &plus_data, &minus_data, &multiply_data, _data);
最後に、main関数上で上記4変数に格納された計算結果を画面に出力せよ。
以上の仕様のプログラムを、calc.cという名前で作成せよ。
calc.cをVisual Studioで実行して、実行結果をcalc.c内の文末に「コメント行」として記載せよ 。
[3.1] OS: Vista
[3.2] コンパイラ名とバージョン: Visual Studio 2005
[3.3] 言語: C++
[4] 期限: 2009年12月11日14:40まで
全くわからないです…。
0951デフォルトの名無しさん
2009/12/11(金) 02:59:00漢字を正しく選ぶことができないあなたは小学校を卒業してもよかったのですか?
0952デフォルトの名無しさん
2009/12/11(金) 03:13:35現行制度だから卒業出来てしまったんだな
酷い社会だ
0953デフォルトの名無しさん
2009/12/11(金) 03:26:09それが使えないだけならたいしたことないんだけどねぇ
0954デフォルトの名無しさん
2009/12/11(金) 03:47:55Cの仕様で作れってこと?
VC2005ってのは標準ライブラリ無しでも何か作れるの?
標準ライブラリ以外のライブラリ使っておkってこと?
0955デフォルトの名無しさん
2009/12/11(金) 03:56:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10256.c
こんなんで良いのかな
0956デフォルトの名無しさん
2009/12/11(金) 03:57:32標準ライブラリ以外のライブラリが標準ライブラリを使っていることは十分考えられる
0957デフォルトの名無しさん
2009/12/11(金) 04:08:36ttp://ja.wikipedia.org/wiki/標準Cライブラリ
>>869のは
文字の抽出に標準ライブラリの関数を使うなということだと推測
>>896はあまりにも自分でプログラミングしなかったせいで
皆のレスの意味がわかってないんじゃないの?
stdioが使えないという意味すら分かってないレベルだと推測
もうどうしようもない
0958デフォルトの名無しさん
2009/12/11(金) 14:24:39プログラマになるってことが信じられない
0959デフォルトの名無しさん
2009/12/11(金) 14:29:09ここで聞いてるのはただ単位が欲しいだけの学生じゃないの?
0960デフォルトの名無しさん
2009/12/11(金) 14:30:13○単位が欲しいだけのぼっち
0961デフォルトの名無しさん
2009/12/11(金) 15:07:32この課題お願いします。
0962デフォルトの名無しさん
2009/12/11(金) 15:09:51Error 403
0963デフォルトの名無しさん
2009/12/11(金) 15:11:270964デフォルトの名無しさん
2009/12/11(金) 15:29:45#include <stdio.h>
main()
{
float fact;
int i, n;
scanf("%d\n",&n);
fact = 1;
for(i=2;i<=n;i++)
{
fact = fact * i;
}
printf("%.0f\n",fact);
for(i=1;i<=n;i++)
{
fact = fact + i;
}
printf("%.0f\n",fact);
return 0;
}
0965デフォルトの名無しさん
2009/12/11(金) 15:36:45滝沢寛之教授だそうだ
0966デフォルトの名無しさん
2009/12/11(金) 16:18:08menu0 650 1 650
menu1 680 2 1360
menu2 720 3 2160
menu3 840 2 1680
menu4 920 1 920
menu5 980 0 0
menu6 1080 0 0
menu7 1280 1 1280
goukei 10 6370
#include <stdio.h>
0967デフォルトの名無しさん
2009/12/11(金) 16:20:07{
int i, order;
int menu[8];
for(i=0;i<8;i++) menu[i]=0;
for(i=1;i<=10;i++)
{
scanf("%d",\&order)
if( order >=0 && order <= 7)
{
++menu[order];
}
}
for(i=0;i<8;i++){
printf("menu %d; %d\n", i , menu[i]);
}
return 0;
}
0968デフォルトの名無しさん
2009/12/11(金) 16:31:570969デフォルトの名無しさん
2009/12/11(金) 16:37:29メニュー番号を10回打ち込んでメニューそれぞれの個数と合計を出力する感じです。
0970デフォルトの名無しさん
2009/12/11(金) 17:07:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10257.txt
0971デフォルトの名無しさん
2009/12/11(金) 17:07:580972デフォルトの名無しさん
2009/12/11(金) 17:49:540973デフォルトの名無しさん
2009/12/11(金) 18:17:23自演乙
そんなに gets() を否定されたことに根をもっているのでしょうかね。
0974デフォルトの名無しさん
2009/12/11(金) 18:20:09ぼっちってなんですか?
0975デフォルトの名無しさん
2009/12/11(金) 19:33:14[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10258.txt
[3] 環境
[3.1] OS:vista
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C++
[4] 期限: 2009年12月16日まで
[5] その他の制限:
平均値がずれ出した辺りからもうお手上げです
間違いの指摘だけでも良いのでお願いします。
表1
ttp://fx.104ban.com/up/src/up10431.jpg
表2
ttp://fx.104ban.com/up/src/up10430.jpg
0976デフォルトの名無しさん
2009/12/11(金) 20:20:46#define NINZU 4 // お題の指示は、グローバル変数ではなくてマクロ定数のことと思う
#define KOUMOKU 4
float heikin(int *);
char hyouka(float);
void hyouji(int, int *, float, char);
int main() {
int i;
int bango[NINZU] = {1, 2, 3, 4};
int tensu[NINZU][KOUMOKU] = {
{4, 3, 5, 4}, {5, 4, 4, 4}, {3, 2, 2, 2}, {3, 4, 3, 3}
};
float average[NINZU] = {0}; // これの初期化をしろとお題に書いてある
printf("No | 技術力 | 正確さ | 難易度 | 表現力 | 平均点 | 評価|\n");
for (i = 0; i < NINZU; i++) {
average[i] = heikin(tensu[i]);
hyouji(bango[i], tensu[i], average[i], hyouka(average[i]));
}
}
float heikin(int *tensu) {
int i;
float average = 0;
for (i = 0; i < KOUMOKU; i++) average += tensu[i];
average = average / KOUMOKU;
return average;
}
0977デフォルトの名無しさん
2009/12/11(金) 20:21:33if (4.0f <= average) {
return 'A';
} else if (3.0f <= average) {
return 'B';
} else if (2.0f <= average) {
return 'C';
} else {
return 'D';
}
}
void hyouji(int no, int *tensu, float a, char h) {
int i;
printf(" %d|", no);
for (i = 0; i < KOUMOKU; i++) {
printf("%8d|", tensu[i]);
}
printf("%8.2f|%8c|\n", a, h);
}
0978デフォルトの名無しさん
2009/12/11(金) 20:23:210979デフォルトの名無しさん
2009/12/11(金) 20:36:460980デフォルトの名無しさん
2009/12/11(金) 20:54:57ここの過去ログ見ればなかなか難しいのもあるよ
そんなことより次スレマダー?
0981デフォルトの名無しさん
2009/12/11(金) 20:57:160982デフォルトの名無しさん
2009/12/11(金) 21:00:06C/C++の宿題片付けます 133代目
http://pc12.2ch.net/test/read.cgi/tech/1260532772/
0983デフォルトの名無しさん
2009/12/11(金) 22:02:32ひとりぼっちの学生。略してぼっち。大生板とか就職板とかではよく見かける単語
0984デフォルトの名無しさん
2009/12/11(金) 22:04:33市販のプログラミング入門書とかの問題を先生たちは出題することが多い
考えるのが面倒らしい
答えがそのまんま掲載されてることもあるから
そのまんま打ち込めばいいってことよくある
0985デフォルトの名無しさん
2009/12/11(金) 22:43:410986デフォルトの名無しさん
2009/12/11(金) 23:59:05週末は課題のうp少なくて暇だね
0987デフォルトの名無しさん
2009/12/12(土) 00:04:53課題?
0988デフォルトの名無しさん
2009/12/12(土) 01:11:17迅速かつ丁寧な回答ありがとうございます
良く見ると間違いだらけの資料ですねwすいませんでした
0989デフォルトの名無しさん
2009/12/12(土) 02:56:42迅速かつ丁寧な回答ありがとうございます
良く見ると間違いだらけの資料ですねwすいませんでした
0990デフォルトの名無しさん
2009/12/12(土) 06:24:59最初に足す分だけはpowとfactorialで求めて、
そこに-i*2*(i+1)/(rad*rad)をかけてけば
毎回powとfactorial使うよりは計算少なくなるんじゃ?
0991デフォルトの名無しさん
2009/12/12(土) 06:44:50わかってるってそんな事言われなくても
初心者に見やすいプログラムをと基本に則って書いただけだ
最適化などいくらでも出来るがプログラムが読みにくくなる
0992デフォルトの名無しさん
2009/12/12(土) 07:45:320993デフォルトの名無しさん
2009/12/12(土) 07:49:59できるならねw
0994デフォルトの名無しさん
2009/12/12(土) 08:06:32ループを抜けた後にradを足せばいい。
pow(-1.0, i)を毎回計算するのはアホ。
iの偶奇で分岐するとか、flgをもってflg*=-1とかにしたほうがマシ。
printf("出力ファイル '%s' をオープン出来ませんでした。\n");
%sに対応する文字列がない。
あんまり初心者のためになるものとは思えない。
0995デフォルトの名無しさん
2009/12/12(土) 09:35:59初心者はどうしてgets()は避けるべきなのか全然わかりませんけど?
初心者だからこそgets()で十分だと思うんですが
0996デフォルトの名無しさん
2009/12/12(土) 09:37:20だからお前がソース書けや、って言ってるの
わかった?
早く書け
それからその%sのバグは自分でもわかっててちゃんと直したけど
うpしてないだけです
0997デフォルトの名無しさん
2009/12/12(土) 10:05:01アホだw
0998デフォルトの名無しさん
2009/12/12(土) 10:05:47ソース書いたけどうpしてないだけです
0999デフォルトの名無しさん
2009/12/12(土) 10:11:46同じ手が通用すると思うな
俺は少なくとも1回うpしている
1000デフォルトの名無しさん
2009/12/12(土) 10:12:2510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。