トップページ⇒tech
1001コメント339KB

ぼるじょあがC/C++の宿題を片づけますYO! 66代目

■ このスレッドは過去ログ倉庫に格納されています
0001ぼるじょあ ◆yBEncckFOU 2006/06/04(日) 00:37:15
(・3・)エェー C++厨のぼるじょあですYO!
わからない宿題を片づけますYO!

あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】 C/C++の宿題を片付けます 65代目
http://pc8.2ch.net/test/read.cgi/tech/1147908265/
【過去スレ一覧】http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0153デフォルトの名無しさん2006/06/28(水) 01:48:25
>>152
お前いいやつだな
ここにくるやつの大半は丸投げのやる気なしなのに
0154デフォルトの名無しさん2006/06/28(水) 10:57:17
[1] 授業単元: プログラミング
[2] 問題
名前と点数を格納するデータ部を持つ自己参照型構造体を定義し、
線形リストを実装しなさい。
構造体の名前は struct grade とし、新たに glist 型として定義する。
構造体のメンバは、char name[40]、int score、及びポインタnext。
ノードは3つ作成し、それぞれキーボードからデータを入力する。
ポインタに値を代入し、ヘッダhdと3つのノードの間を繋ぐ。
読み出し用のポインタpを使って、リストのデータを順に画面に出力する。
【ヒント】
実習時間中にスライドの指示に沿って作成したコードを提出しても良い。
余力のある人は、ノードを作成する際に動的にメモリを確保するコードを作成すること
(より効率的なコーディングが可能となる)。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:visual studio.2003
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限:なるべく早くお願いします
0155デフォルトの名無しさん2006/06/28(水) 10:59:48
>>154
マルチ死ね
0156デフォルトの名無しさん2006/06/28(水) 15:26:16
>>141ですが>>143>>144では実行できません。
自分で訂正するもむなしくだめでした。
どこが違うんですか?
0157デフォルトの名無しさん2006/06/28(水) 17:33:47
全角が入ってるか
改行箇所間違えてるか
ていうかそこまで面倒見切れん
訂正じゃなくて一から作ればいいじゃん
01581442006/06/28(水) 20:01:56
>>156
はじめてlinux使ったとき全角受け付けてくれなくて
コンパイルエラーがでた。
他にも制限あるかもしれないけど
linuxつかってないんで分かりません。
01591432006/06/28(水) 20:23:47
>>156
#include<stdio.h>
#include<math.h>
int main(void){
double x, pi = acos(-1.0);
for( x = 0 ; x < 2 ; x += 0.02 )
printf("x=%f,sin(2x)+cos(x)=%f\n", x*pi, sin(2*x*pi) + cos(x*pi));
return 0;
}
ちょっとxに関する表示が変だったので訂正。
元のままでは↑を除いて正常に動作したけど、コンパイル時に
mathライブラリリンクし忘れとかいうオチは無いよね?「実行できません」ではなく、
もっと具体的に何をしたら何が起きたかを書いてくれないと対処しようがない。
0160デフォルトの名無しさん2006/06/29(木) 08:03:17
>>156
Linux とか UNIX 系のコマンドって正常終了したら一切メッセージが出ないんだよ。
だから、コンパイルして全くメッセージが出ないのは
正常にコンパイルが終ってるんだよ。
あと、コンパイルって実行じゃないよ。
コンパイルしたら、
.\a.out
って打たないと実行できないよ。
0161デフォルトの名無しさん2006/07/03(月) 12:51:21
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):2つの配列a[i][j]とb[i][j]に数値を入力し,各要素の和を求めるプログラムを作ってください。
[3] 環境
 [3.1] OS: linux

 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 明日
[5] その他の制限:ナシ

0162デフォルトの名無しさん2006/07/03(月) 14:21:39
[1] 授業単元: プログラミング
[2] 問題文:階乗を計算するdoubleがたの関数を使い、1から10までの階乗を表示するプログラムを作成して
ください。因数を使わないで、外部変数を使って、main関数からユーザー関数に、1から10までの値を送ってください
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 今日3時
[5] その他の制限:お願いします。私にはできません;;
0163デフォルトの名無しさんNGNG
>>161
何と何の和だよ。

>>162
>因数を使わないで、外部変数を使って

意味ワカンネ。
0164デフォルトの名無しさん2006/07/03(月) 22:58:47
>>163
http://dictionary.goo.ne.jp/search.php?MT=%B0%F8%BF%F4&kind=jn
おいおい、因数ってかなり低学年で習うことだと思うけど・・・
要するに、4の階乗(24)だったら1・2・3・4とそのときに因数の掛け算をせず
3の階乗までの結果の6と4を掛けて求めろってことじゃね?
いちいち自分の足りない知識や頭を露呈しなくて良いからさぁ
0165デフォルトの名無しさん2006/07/03(月) 23:05:34
>>162が「引数」を「いんすう」とまちがっておぼえていて、そのまま打ち
込んで変換した結果「因数」となったのかも。
0166デフォルトの名無しさん2006/07/03(月) 23:08:45
そういうオチかぁ?wwww
0167デフォルトの名無しさん2006/07/03(月) 23:10:22
http://pc8.2ch.net/test/read.cgi/tech/1151158759/276
これと同じか?w
0168デフォルトの名無しさん2006/07/03(月) 23:51:36
0169デフォルトの名無しさん2006/07/04(火) 00:12:05
[1] 授業単元: プログラミング
[2] 問題文:テスト結果を保存したファイルをwebページからダウンロードします。
ファイルにはテスト結果の点数を表す数値が140個格納されています。テスト結果のうちを
秀、優、良、可、不可それぞれの個数を集計して、以下のように棒グラフにより
表示するプログラムshukei.cを作成しなさい。
ただし、秀、優、良、可、不可は次のように判定すること。
・秀:90〜100点
・優:80〜89点
・良:70〜79点
・可:60〜69点
・不可:0〜59点

また棒グラフは記号「*」の数が該当する生徒の人数を表すものとする。

実行例:(ただし、test.datの集計結果が正確に下の棒グラフのようになるとは限らない。)
./shukei<test.dat
集計結果は次のとうりです。
秀:*********
優:************
良:************************
可:*******************************
不可:****************
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [2006年7月4日まで]
[5] その他の制限: whileを習ったので使わないといけないみたいです。
よろしくお願いします。
0170デフォルトの名無しさんNGNG
>>164
>3の階乗までの結果の6と4を掛けて求めろってことじゃね?

6も4も因数なわけだが。アホか?

>>165
どうやらそうらしい。
0171デフォルトの名無しさん2006/07/04(火) 00:22:21
>>169
#include <stdio.h>
int
main()
{
int i, j, n;
int score[] = { 0, 0, 0, 0, 0 };
const char* label[] = { "秀", "優", "良", "可", "不可" };
while (scanf("%d", &n) > 0) {
if (90 <= n && n <= 100) { score[0]++; }
else if (80 <= n && n <= 89) { score[1]++; }
else if (70 <= n && n <= 79) { score[2]++; }
else if (60 <= n && n <= 69) { score[3]++; }
else if (0 <= n && n <= 59) { score[4]++; }
}
for (i = 0; i < 5; i++) {
printf("%s: ", label[i]);
for (j = 0; j < score[i]; j++) { printf("*"); }
printf("\n");
}
return 0;
}
0172デフォルトの名無しさん2006/07/04(火) 00:43:11
>>170
6が何の因数?結果の因数ってなら論外ね。俺はそれは言ってないから。
6をさらに2・3にするとか、4を2・2にしたら各々の数値が因数だと思うが?
とりあえず意味が分からないなら突っ込まない方が良いみたいだな

少なくともお前にアホって言われたくないんですけどぉ〜〜?市ねよカス
0173デフォルトの名無しさん2006/07/04(火) 00:47:02
C/C++の宿題を片付けます 67代目
http://pc8.2ch.net/test/read.cgi/tech/1150273052/

39 名前:デフォルトの名無しさん 投稿日:2006/06/15(木) 09:52:58 ?#
>>11
しまった。
-printf("%lf\n",abs(pt[1].x-pt[0].x)*abs(pt[1].y-pt[0].y));return 0;}
+printf("%lf\n",pow(pt[1].x-pt[0].x,2)*pow(pt[1].y-pt[0].y,2));return 0;}

41 名前:デフォルトの名無しさん 投稿日:2006/06/15(木) 12:50:36
>>39
三平方の定理って知ってる?

44 名前:デフォルトの名無しさん 投稿日:2006/06/15(木) 13:12:16 ?#
>>41
>2点間の距離の2乗を計算する
0174デフォルトの名無しさん2006/07/04(火) 00:55:46
>>165が正解だろ。
氏ね、クズども。
0175デフォルトの名無しさん2006/07/04(火) 00:59:14
>>171
ありがとうございます!
ですが…俺がちゃんと制限しなかったせいなんですが…
score,const,char,label,for,return
というのは習ってないんです。
while,if,scanf,printfと変数だけで出来ないでしょうか?

0176デフォルトの名無しさん2006/07/04(火) 00:59:17
>>174
引数のことなんてどーでも良いんだよ、因数がどうかが次の言い争いの論点になっただけ。
6単体では因数とは言いません。6を2・3であらわしたとき、その各々の要素が因数になる。
日本語も数学も理解していないバカ共は中学校からやり直した方が良いんじゃね?
数学も知らずに数値計算のプログラムをしててもつまんねーだろ?な?
0177デフォルトの名無しさんNGNG
>>172
>俺はそれは言ってないから。

だから何?
誤謬によって元の題意自体が存在しないんだから、「意味ワカンネ」が正解であって、お前が脳内で
でっちあげた題意なんか知ったことではないんだが。
0178デフォルトの名無しさんNGNG
>>173
http://pc8.2ch.net/test/read.cgi/tech/1150273052/49
が読めないのは目が悪いか頭が悪いか(ry
0179デフォルトの名無しさん2006/07/04(火) 01:11:03
>>177 >>178
お前の頭が弱くて必死なのは分かるが、頭が弱いがために
適切な説明も理解もできなくてますます自分を窮地に追いやっているな
お前、在日だろ?素性までバレバレとは・・・
0180デフォルトの名無しさんNGNG
>>179
じゃあ6と4は因数ではないのかね?
4は4の因数だし6は6の因数なんだが。
万が一「因数を使うな」が正解だったとしても「何の因数か」が指定されてないんだから
やっぱり「意味ワカンネ」が正解なわけだ。
0181デフォルトの名無しさん2006/07/04(火) 01:15:31
>>180
6と4がではなく6そのもの、4そのものは因数ではない。
6の因数は2・3、4には2・2と因数分解できるが?
因数分解についても理解していなかったか?やれやれ・・・
どうでも良いが、俺は計算結果に対しての因数とは言っていない。
計算結果は掛け算して出すのはわかってんだし
まぁ、これ以上は無駄な議論になるんで、あとはお前の弱い頭でとことん理解しろ
0182デフォルトの名無しさん2006/07/04(火) 01:16:51
明らかにトーマスの勝ちが見えてるのになんで勝利宣言してるんだろう…
0183デフォルトの名無しさん2006/07/04(火) 01:17:50
>>180 あとはここをちゃんと読んで理解してね。数学の本も読むべきだが。
http://dictionary.goo.ne.jp/search.php?MT=%B0%F8%BF%F4&kind=jn
>整式が、「幾つかの整式の積の形で表されて」 いるとき、その 「各構成要素」 をいう。
数値そのものは因数とは言わない。あくまでも約数になる「要素」
0184デフォルトの名無しさん2006/07/04(火) 01:18:39
>>182
明らかにトーマスが因数の意味を理解していないことに気づくまでに
あんたも時間が掛かるだろうね
0185デフォルトの名無しさんNGNG
>>181
>6と4がではなく6そのもの、4そのものは因数ではない。

だから何の?

>6の因数は2・3、4には2・2と因数分解できるが?

因数分解と素因数分解の違いはわかってまちゅか?
素数でなくても「因数」と言うんでちゅよ〜
0186デフォルトの名無しさん2006/07/04(火) 01:19:31
>素数でなくても「因数」と言うんでちゅよ〜
やっちまたな、言葉も数学も理解していない墓穴発言www
http://dictionary.goo.ne.jp/search.php?MT=%B0%F8%BF%F4&kind=jn
が読めない在日だったか・・・哀れ
0187デフォルトの名無しさん2006/07/04(火) 01:20:48
>>185
>幾つかの整式の積の形で表されているとき、その各構成要素
6は6であっていくつかの整式であらわせるとしても、
6という数字単体ではいくつかの整式の積であらわされていないため
因数とは言わない。因数になり得る数値であるというならまだしもw
0188デフォルトの名無しさん2006/07/04(火) 01:21:49
>>183
ここまで堂々と自爆する奴久しぶりに見た。
0189デフォルトの名無しさんNGNG
>>187
6×1はいくつですか?
0190デフォルトの名無しさんNGNG
>要するに、4の階乗(24)だったら1・2・3・4とそのときに因数の掛け算をせず

の「因数」は何の因数のつもりだったんだろう。
0191デフォルトの名無しさん2006/07/04(火) 01:38:18
>各構成要素をいう
各要素に対して因数と言って下さいね♥ > トーマス
0192デフォルトの名無しさん2006/07/04(火) 01:41:28
プログラミングについてほとんどわかってません…。どうか助けてくださいorz

【質問テンプレ】
[1] 授業:プログラミング入門
[2] 問題文:while文を使って任意個のデータ(0〜100)の平均と標準偏差を求めよ。
[3] 環境
 [Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語
[4] 期限: 今週中に
[5] その他の制限:文系大学なので初歩の初歩です。if,for,whileまでは習いました。

999の入力を処理終了の合図にしたいのですがどうやればいいかわかりませんm(_ _)m
01931922006/07/04(火) 01:42:13
192の続きです。自分で作ってみたソースは以下です。

#include<stdio.h>
#include<math.h>
int main(void)
{
int n,x;
double sum,sum2,ave,sd;
sum=0;sum2=0;

puts("データを入力して下さい。0〜100以外の数を入力すると結果を表示します。");

n=1;x=0;

while(0<=x&&x<=100){
printf("%d番目のデータ=",n); scanf("%d",&x);
sum=sum+x;sum2=sum2+x*x;
n++;}

ave=sum/n;/*aveは単純平均*/ sd=sqrt(sum2/n-ave*ave);/*sdは標準偏差*/

printf("平均は%lfです\n",ave); printf("標準偏差は%lfです\n",sd);
}
return(0);
}
0194デフォルトの名無しさんNGNG
>>191
何の構成要素?

>1・2・3・4

の事だったら、

>結果の因数ってなら論外ね。俺はそれは言ってないから。

と矛盾するしなぁw
0195デフォルトの名無しさんNGNG
>>193
while(x!=999){
0196デフォルトの名無しさん2006/07/04(火) 01:49:35
>>192
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
double sum = 0.0, sqsum = 0.0, data = 0.0;
n = 0;
while( 1 ) {
scanf("%lf", &data);
if( data == 999.0 ) break;
sum += data;
sqsum += data * data;
n++;
}
sum /= n;
sqsum = sqrt(sum * sum - (sqsum / n)); // -の前後は逆かも知れない。
printf("平均=%f\n標準偏差=%lf\n", sum, sqsum);
return 0;
}

あと、トーマスの肩を持つわけじゃないが、因数はつまり約数と同義なわけだから
6が6の因数というのは間違いない。構成要素云々の解釈でも6=1×6で見ればおk。
だからこそ「素因数」なんて言うことで素数に限定する必要があるわけだ。
0197デフォルトの名無しさん2006/07/04(火) 09:50:28
情報系のクセにプログラミングが全然わかりませんorz お願いします。

【質問テンプレ】
[1] 授業:
プログラミング演習

[2] 問題文:
・10個の変数を生成
・変数に数を入れる(乱数で数の範囲は1〜100) ← ここまで配列でつくりますた
・任意の変数を2つ選び、その数の和を計算、100以上ならお互いの変数にカウントする
・それぞれの変数におけるカウント数を計算する
・カウントした数の分布を出力
で、結果をグラフにするわけです(グラフはエクセルでしますので)

[3] 環境
 [Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語

[4] 期限:
とくにありませんが、できるだけ早目がうれしいです

[5] その他の制限:
上に書いたとおりこれでも情報系なので、しっかり理解したいです。
ソースだけでも充分ですが、補足説明があるとうれしいです。

よろしくおねがいします。
0198デフォルトの名無しさん2006/07/04(火) 10:02:17
問題文そのまま載せろ。
0199デフォルトの名無しさん2006/07/04(火) 10:18:49
構造体とポインタがちょっと危うい程度の香具師にc++を教えなきゃいかんのだが何か適当な課題ある?一日2時間一ヶ月ぐらいで。
0200デフォルトの名無しさんNGNG
>>199
多倍長実数クラスの設計と実装。
0201デフォルトの名無しさん2006/07/04(火) 10:34:39
実数か。漏れがほとんど実数触らんからなぁ。考えてみる。�d
02021972006/07/04(火) 17:55:09
>>198
はい

100個のノードを生成する
ノードに重みを適当に点ける(1〜100)
任意のノードペアを選び、重みの和を取り、重みの和が100以上のノードペアにリンクを張る
それぞれのノードの持つリンクの数を計算する
リンクの数の分布
(リンクが1つ・・・○○、リンクが2つ・・・○○、・・・みたいな)

擬似的にWEBページの繋がりを出すプログラムです。
0203デフォルトの名無しさん2006/07/05(水) 12:36:55
>>197
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 100
int
main()
{
int i, j, link[SIZE], w[SIZE], count[SIZE];
memset(link, 0, sizeof(link));
memset(count, 0, sizeof(count));
srand(time(NULL));
for (i = 0; i < SIZE; i++) { w[i] = rand() % 100 + 1; }
for (i = 0; i < SIZE; i++) {
for (j = 0; j < i; j++) {
if (w[i] + w[j] >= 100) { link[i]++; link[j]++; }
}
}
for (i = 0; i < SIZE; i++) { count[link[i]]++; }
for (i = 0; i < SIZE; i++) { printf("link %d: %d\n", i, count[i]); }
return 0;
}
0204192です2006/07/05(水) 22:17:58
お礼がおくれてすみませんm(__)m今回はどうもありがとうございました。
0205デフォルトの名無しさん2006/07/06(木) 00:29:41
[1]C言語初級プログラミング
[2]キーボードから任意の西暦年と月を入力し、その年月のカレンダーを表示するプログラムを作成せよ。尚、紀元前は考慮せず、閏年の判別にはグリゴリオ暦を用いる事。 
(西暦の年月日から曜日を求める公式)
w=[c/4]-2c+[y/4]+y+[26(m+1)/10]+d
ここでcとyはそれぞれ西暦年数の上2桁と下2桁、mは月数(ただし、1月は前年の13月、2月は14月として計算)、dは日数である。また上記式の角ばった方の括弧はガウス記号を表している。wを7で割った余りより、以下のように判別する。ただしwが負の場合は7を付け足す事。
1(日),2(月),3(火),4(水),5(木),6(金),0(土)
[3]OS:Linux
  コンパイラ名:gcc
  言語:C言語
[4] 期限:今週末まで
[5] その他の制限:c言語の授業を受け始めてまだ間もない状況です(授業2回分程度)。なので私自身あまり難易度の高いプログラミングはまだまったく出来ません。
0206c++2006/07/07(金) 16:10:01
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク): 線形リストを用いて、素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成せよ。ただし、Nはプログラム実行中で外部から入力できるようにすること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: 6.0
 [3.3] 言語: C++
[4] 期限: 2006年7月10日まで
[5] その他の制限:たぶんなし

この問題がわかりません。
基礎なことかもしれませんが、どうかお願いします
0207デフォルトの名無しさん2006/07/07(金) 19:30:39
>>206
メモリ開放まんどくせ
#include<iostream>
using namespace std;
struct Cell{int car;Cell*cdr;Cell(int car,Cell*cdr):car(car),cdr(cdr){}};
Cell*enumFromTo(int from,int to,Cell*cdr=NULL){return from>to?cdr:enumFromTo(from,to-1,new Cell(to,cdr));}
Cell*erase(Cell*p,int n){return!p?NULL:p->car%n?new Cell(p->car,erase(p->cdr,n)):erase(p->cdr,n);}
Cell*solve(Cell*p){return p?new Cell(p->car,solve(erase(p->cdr,p->car))):NULL;}
int main(){
    int n;cout<<"n <- ";cin>>n;
    for(Cell*p = solve(enumFromTo(2,n));p;p=p->cdr)cout<<p->car<<' ';
}
0208デフォルトの名無しさん2006/07/09(日) 03:42:53
0209デフォルトの名無しさん2006/07/09(日) 06:18:51
>>205 まったくの答えでないけど、下でできるはず。
   エラー処理、get_youbi()とget_nissu()は自分で考えましょう。
intmain(void)
{
chartmp[256];
intyear, month,st,ni,ii ;
printf("年をいれろ->");
year = atoi(gets(tmp));
printf("月をいれろ->");
month = atoi(gets(tmp));
st = get_youbi(year,month,1)-1 ; /* 土曜は7を返す */
ni = get_nissu(year,month); /* 年月の月日数を返す */
printf(" 日 月 火 水 木 金 土\n");
printf("%*c",st*3,' ');
for (ii = 0 ; ii < ni ; ii ++ ){
printf("%3d",ii+1);
st++;
if (( st % 7 ) == 0 )
printf("\n");
}
return 0 ;
}
0210デフォルトの名無しさん2006/07/09(日) 12:43:06
>>209
有難う御座います。後は自力で頑張ってみます。
0211デフォルトの名無しさん2006/07/09(日) 12:52:48
c++builderで
点を左から右へ移動させる簡単なプログラムを教えてください。
0212デフォルトの名無しさん2006/07/09(日) 12:55:19
点って? GUI?
0213デフォルトの名無しさん2006/07/09(日) 13:04:06
はい、GUIです
0214デフォルトの名無しさん2006/07/09(日) 21:44:23
[1] 授業単元:演習1
[2] 問題文(含コード&リンク):
1からNまでの自然数の中から,素数のみを取り出すプログラムを書きなさい
素数とは,1と自分自身以外では割り切れない数のことを言う.この性質を利用し,1からN までの数の中から,2の倍数(ただし1倍は除く)
を取り除き,次に3の倍数を取り除き,... 最後にNの倍数を取り除く.最後に残るのが素数である.
以下の点に注意すること.
* Nが最大で254まで対応できるようにすること.
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 10日中
よろしくお願いします。
0215デフォルトの名無しさん2006/07/09(日) 21:51:03
>>214
メモリ開放まんどくせ
#include<stdio.h>
#include<stdlib.h>
typedef struct Cell Cell;
struct Cell{int car;Cell*cdr;}; 
Cell*cons(int car,Cell*cdr){Cell*p=malloc(sizeof(Cell));p->car=car;p->cdr=cdr;return p;}
Cell*enumFromTo(int from,int to){return from>to?NULL:cons(from,enumFromTo(from+1,to));} 
Cell*erase(Cell*p,int n){return!p?NULL:p->car%n?cons(p->car,erase(p->cdr,n)):erase(p->cdr,n);} 
Cell*solve(Cell*p){return p?cons(p->car,solve(erase(p->cdr,p->car))):NULL;} 
int main(){ 
    Cell*p;
    int n;printf("n <- ");scanf("%d",&n); 
    for(p = solve(enumFromTo(2,n));p;p=p->cdr)printf("%d ",p->car); 
    return 0;
}
02162142006/07/09(日) 22:26:47
>>215
ありがとうございます。
実行した時に必ず1も表示させるにはどうしたらいいのですか?
0217デフォルトの名無しさん2006/07/09(日) 22:33:16
>>216
1は素数じゃないから間違いのような気もするけど、一応表示するならこう

- for(p = solve(enumFromTo(2,n));p;p=p->cdr)printf("%d ",p->car);
+ for(p = cons(1,solve(enumFromTo(2,n)));p;p=p->cdr)printf("%d ",p->car);
0218デフォルトの名無しさん2006/07/12(水) 10:39:05
[1] C言語プログラミング
[2] 問題文(含コード&リンク):
要素数5の配列key[5]に、適当な初期値を用意し、単純交換法でソートするプログラムを作成せよ
要素が1つ決定されるたびに(前ページの流れ図のループ1の中で)、確認の為配列を画面に出力しなさい
初期値として、スライド・教科書の例を使い確認すること。
{58, 27, 6, 32, 13}
比較回数を数えて、最後に画面に出力しなさい
計算量の説明を参照して、確認すること
教科書・スライドの流れ図とプログラムで、要素番号の違いに注意する
[3] 環境
 [3.1] OS: XP
 [3.2] visual studio.2003
 [3.3] 言語: C
[4] 期限: 来週の火曜日まで
[5] 配列、ループ、線形探索、二部探索、構造体
0219デフォルトの名無しさん2006/07/13(木) 16:07:09
>>218
これでおk?
#include <stdio.h>
int bubbleSort(int *data,int size){
int i,j,cnt=0,temp;
for (i=0;i < size;i++){
for (j=0;j < size;j++){
cnt++;
if (data[i] < data[j]){
printf(" %d = %d\n",data[i],data[j]);
temp=data[i];
data[i]=data[j];
data[j]=temp;
}}}
return cnt;
}

int main(void){
int data[]={58,27,6,32,13},cnt,i;
cnt=bubbleSort(data,(sizeof(data)/sizeof(int)));
puts("----------------------------");
for (i=0;i < (sizeof(data)/sizeof(int));i++){
printf("%d\t%d\n",i+1,data[i]);
}
printf("\n%d回比較\n",cnt);
return 0;
}
0220デフォルトの名無しさん2006/07/14(金) 14:57:46
ごるごるもあ?
0221デフォルトの名無しさん2006/07/16(日) 16:16:03
0222デフォルトの名無しさん2006/07/16(日) 23:10:00
>>218 これってスライドや教科書がどーなっているかで
答えが微妙に変わるような希ガス
0223デフォルトの名無しさん2006/07/20(木) 23:24:28
0224デフォルトの名無しさん2006/07/25(火) 00:17:25
[1] 授業単元:cプログラミング
[2] 問題文(含コード&リンク):
大きさ20の配列keyを用意し、キーボードから値を入力する。 この配列keyの要素を、単純挿入法で昇順にソートするプログラムを作成せよ。
ただし、ソートの途中経過を画面に出力すること。 また、最後に比較回数を画面に出力すること。
【ヒント】
配列の大きさの指定 ‥ ただし最初の要素は番兵用。よって入力は SIZE - 1 回。
単純挿入法‥未ソートの部分の先頭の要素を、ソート済みの部分に挿入する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
[3] 環境
 [3.1] OS: xp
 [3.2] visual studio2003
 [3.3] 言語: c
[4] 期限: 25日まで
[5] その他の制限: ループ、探索、ソート、配列、構造体など
0225デフォルトの名無しさん2006/07/25(火) 12:19:56
別のスレですれ違いと指摘されここにたどり着きました。よろしくお願いします。
以下は作ってもらったプログラムですが、できれば以下の修正をお願いします。
�@double a, s;を使わない。time(NULL)・double y, w = 0.0;も使わない。
�A実行時にy[ ] =を表示しないで、数値のみを表示する。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>

void main(void)
{
int i, j;
double a, s;

srand((unsigned)time(NULL));
printf("a s = ");
scanf("%lf %lf", &a, &s);
printf("a = %lf\n", a);
printf("s = %lf\n", s);
for(i = 0; i < 100; i++){
double y, w = 0.0;
for(j = 0; j < 12; j++)
w += (double)rand() / (double)RAND_MAX;
y = s * (w - 6) + a;
printf("y[%2d] = %lf\n", i, y);
}
getchar();
}
0226デフォルトの名無しさんNGNG
>>225
>>1
02272252006/07/25(火) 15:25:27
>>226 すみませんでした。
自己解決しましたのでOKです。ご迷惑おかけしました。
0228ぼるじょあ ◆yBEncckFOU 2006/07/29(土) 19:12:43
(・3・) エェー ぼるじょあはどこだYO
0229デフォルトの名無しさん2006/07/29(土) 19:35:00
>>228
そのトリップを見るたびに"fuck you"を連想する。
0230ぼるじょあ ◆yBEncckFOU 2006/07/29(土) 20:08:54
>>224
(・3・) エェー その配列の型は何だYO
          番兵やた挿入やらなんかリストっぽいけど本当に配列かYO
0231ぼるじょあ ◆yBEncckFOU 2006/07/30(日) 02:31:37
(・3・) アルェ〜 このスレは使われてないのかYO!
0232デフォルトの名無しさん2006/07/30(日) 04:19:58
プログラムの質問としては少し違うのかもしれませんが、
平方cmと立方cmなど右上に小さな数字を打ち込みたいのですがどうやったらできますか?^^;
0233デフォルトの名無しさん2006/07/30(日) 04:31:01
printf("%g$cm^2$\n", area);
printf("%g$cm^3$\n", volume);
0234デフォルトの名無しさん2006/07/30(日) 04:32:59
c�uってこと?
0235デフォルトの名無しさん2006/07/30(日) 04:50:45
それもですが普通に10の23乗とかとかを打ち込みたいんですけど
どうしたらいいのかわからなくて^^;
0236デフォルトの名無しさん2006/07/30(日) 04:57:35
printf("%g\n", 1e23);
0237デフォルトの名無しさん2006/07/30(日) 05:00:14
普通にテキストの段階で教科書に書いてるような小さな数字をそのまんま表示させたいのですが^^;
0238デフォルトの名無しさん2006/07/30(日) 05:02:14
c�uですめばいいときもあるのですが、この2の部分が3の時とかきごうで変換させても候補ないのでどうしたらいいのか考えてるのです^^;
0239デフォルトの名無しさん2006/07/30(日) 05:02:48
プレインテキストでそれをやろうと思ってるのなら無理
0240デフォルトの名無しさん2006/07/30(日) 05:05:19
なるほど
なら基本的には先程教えていただいたようにcm^3とい風でいいのですかね?
0241デフォルトの名無しさん2006/07/30(日) 05:11:45
cm^3はUnicodeだとあるみたいだ
U+33A4
まあ4乗ならどうするのかとか一般性を考えれば
累乗を^で表すとか当事者間で規約を決めてそれに従うのが普通だと思う
0242デフォルトの名無しさん2006/07/30(日) 05:14:26
なるほど、参考になりました^^
ありがとう^^
0243ぼるじょあ ◆yBEncckFOU 2006/07/30(日) 06:59:55
(・3・) エェー 腹減って来たYO!
0244赤鼻 ◆uh1FQt4ihg 2006/08/02(水) 19:15:15
>>243
ボルジョア様こんばんわ
早速ですが、質問です。
C++のコンパイラをインストールしようと試みたのですが、
容量が足りないとエラーが出てしまいます。
50MBあけて再試行してしてくださいと。表示されますが、
ちゃんと、C:¥ドライブには、76GBの容量があるんです。
困りました。どうすればよいのでしょうか?初心者ですみませぬ。
0245デフォルトの名無しさん2006/08/02(水) 19:24:13
>>244
マルチ乙
0246ぼるじょあ ◆yBEncckFOU 2006/08/06(日) 02:07:07
(・3・) エェー 良い子の簡単な質問待ってるYO
0247デフォルトの名無しさん2006/08/07(月) 16:56:00
ここは授業オンリーなんですか?
授業以外で同じ趣旨のスレって有るんですかね?
0248デフォルトの名無しさん2006/08/07(月) 19:05:48
授業以外でも宿題ならばOKだろ
でも授業以外の宿題って・・・?
0249デフォルトの名無しさん2006/08/07(月) 22:30:15
>248
あぁーそっか、「宿題」か。
なるほど。サンクス!
0250ぼるじょあ ◆yBEncckFOU 2006/08/30(水) 00:04:04
 _, ._
(・3・) エェー 宿題まだぁ?
0251ぼるじょあ ◆yBEncckFOU 2006/09/27(水) 11:58:00
(・3・) エェー 無いC
0252デフォルトの名無しさん2006/10/02(月) 20:01:18
ぼるじょあ先生!
彼女いない暦生まれたときからの俺に良い彼女を作る方法を教えてください。
■ このスレッドは過去ログ倉庫に格納されています