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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2006/11/06(月) 09:04:35
あなたが解けない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++の宿題を片付けます 75代目
http://pc8.2ch.net/test/read.cgi/tech/1161257941/
【過去スレ一覧】
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
0951デフォルトの名無しさん2006/11/21(火) 00:24:42
[1] プログラミング
[2] 配列 (の先頭アドレス) a とそのサイズ n を受け取り, 要素を逆順に並び換える
(a[0]=1, a[1]=9, a[2]=2, a[3]=6 を a[0]=6, a[1]=2, a[2]=9, a[3]=1 にする) 関数 array_reverse(int *a, int n) を作成せよ
[3]
 [3.1] winXP sp2
 [3.2] cygwin
 [3.3] C
[4] 2006年11月30日
[5] forを使ってできるだけ簡単なのがほしいです。関数だけでいいです。
自分で考えた時間は3時間ですが作れません。
0952デフォルトの名無しさん2006/11/21(火) 00:28:05
簡単な問題になんつ〜粗悪な回答プログラムの乱載。
ちっとは推敲しておくれ。
09539272006/11/21(火) 00:30:53
>>944
参考書を確認していたら載ってました。ありがとうございます。

>>950さんので実行してみたらきれいに整列しました
ありがとうございます!
0954デフォルトの名無しさん2006/11/21(火) 00:33:30
>>951
void reverse_array(int *a, int n)
{
 int i, temp;
 for(i=0; i<n/2; i++) {
  temp = a[i];
  a[i] = a[n-1-i];
  a[n-1-i] = a[i];
 }
}
0955デフォルトの名無しさん2006/11/21(火) 00:34:08
>>952
粗悪な方がコピーしたと疑われなくてちょうどいいと思うがどうだろうかw
0956ミスった2006/11/21(火) 00:34:41
a[n-1-i] = a[i]; →a[n-1-i] = temp;
0957デフォルトの名無しさん2006/11/21(火) 00:36:15
orz 書き終えてさぁ貼ろうとリロードしたらすでに回答されてる・・・
こんな夜遅くまで何をやってるんだろうか私は・・・
0958デフォルトの名無しさん 2006/11/21(火) 00:38:11
array_reverse(int *a, int n)
{
int i = 0;
int temp = 0;
for(i = 0; i < (n-1)/2; i++)
{
temp = a[i];
a[i] = a[n-i-1];
a[n-i-1] = temp;
}
}
0959デフォルトの名無しさん2006/11/21(火) 00:43:20
>>958
それだとnが偶数のときおかしくない?
例えばn=4のとき(n-1)/2は1になりa[1]とa[2]が交換されない。
09609512006/11/21(火) 00:47:49
>>954さん+>>95
全角のスペースが含まれていたので除去したら
なんかへんなエラーでました。
家のコンパイラではなぜかコピーできないんですけど
underfined reference to '_array_reverse'とかなんとか

>>958さん
>>959さんの言うように、
{2,3,4,5,}の逆が{5,3,4,2}になったりします
09619512006/11/21(火) 00:49:33
>>95でなくて>>956でした。

そこらへんのサイトで調べてきたやつも入れてみたり
いろいろ試してみるんですがどれも上手くいかないです。
まさか関数以外の部分が間違ってたりするんでしょうか。
この関数無しだと正常にそのままの数値で返ってくるプログラムになるのですが
09629582006/11/21(火) 00:50:53
はい、すいません間違えました
0963デフォルトの名無しさん2006/11/21(火) 00:50:55
>>960
958がコピペで通ってるなら(n-1)/2のとこだけn/2にすればいいだろ
09649582006/11/21(火) 00:53:25
<=にでもしといてください
0965デフォルトの名無しさん2006/11/21(火) 00:55:52
n/2の切捨てしたものを変数に入れる部分作って
for文の終了条件に入れときゃいいよ。
それだけのこと
0966デフォルトの名無しさん2006/11/21(火) 00:57:09
奇数の時は真ん中の入れ替え必要ないからn/2で切り捨てられてもなんの問題もないんだよ。
0967デフォルトの名無しさん2006/11/21(火) 00:57:35
実行速度に問題がないなら最適化はコンパイラに任せたほうがいいよ
09689512006/11/21(火) 00:59:16
>>963>>964
解決しました。ありがとうございます。
できるだけ自力でやろうと思ってたんですが無理でした。
0969デフォルトの名無しさん2006/11/21(火) 01:02:21
わかんないのは別に良いけど紙に書いたら
小学生の算数レベルの簡単な話ですよ。
もう少し勉強したってください。
09709512006/11/21(火) 01:06:11
>>969
n/2とかが全然思いつきませんでした><
0971デフォルトの名無しさん2006/11/21(火) 01:09:32
そう言うだろうと思って>>965書いといた。
いきなりうまくやろうとするよりまずは動くプログラム作って
それから改良しとき、うちはもう寝るわぁ。
0972デフォルトの名無しさん2006/11/21(火) 01:10:58
ありがとうございました。
0973デフォルトの名無しさん2006/11/21(火) 09:45:37
[1] 授業単元: プログラミング

[2]
以下のような3つのペアの実数をファイルに書き、
それらのペアを配列を使って読んで、
それぞれの四則演算を別のファイルに書き出しなさい。

5.0 3.0
2.5 1.0
4.0 1.5


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: emacs
 [3.3] 言語: C

[4] 期限: 2006年11月21日14時まで
0974デフォルトの名無しさん2006/11/21(火) 10:22:05
マルチしまくる奴って2chしか頼るとこねーのかよと思うwwwwww
0975デフォルトの名無しさん2006/11/21(火) 10:24:54
今日貼る時点で終わってるし…
0976デフォルトの名無しさん2006/11/21(火) 11:17:12
973は質問の意味がわからない
0977デフォルトの名無しさん2006/11/21(火) 11:46:15
[1] 授業単元:プログラミング�T
[2] 問題文(含コード&リンク):
   キーボードからa,b,c,の値を入力し、二次方程式 ax2+bx+c=0
平方根を求め、下記のように表示するプログラムを作りなさい。
但し、while文を用いて繰り返し計算ができるようにすること。
終了はaに0が入力されたときとする。
例:2実根の時 : 2実根 :x=1,2,3,4x2=-2,3,4
  重根の時 : 重根 :x=3,2,1
  複素根の時: 複素根:x1,x2=1,2±j3.4
※ルートは数学処理の#include <math.h> とsqrt(値)を使用する。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2005
 [3.3] 言語:C++
[4] 期限: 2006年11月23日19:00まで
[5] その他の制限:
for構文、if構文、while構文のみ習っています。

申し訳ありませんが、インデント付でお願いします。
0978デフォルトの名無しさん2006/11/21(火) 12:03:55
>>977
>申し訳ありませんが、インデント付でお願いします。
まず自分でやってみよう!
0979デフォルトの名無しさん2006/11/21(火) 12:07:41
>>977
あぁ?おめーらいい加減にしとけやコラァ!
図書館で算数の教科書見て自分で解けやバカが。
それとも高校レベルの数学も出来ないバカなんですか?
なら退学しろクズが
0980デフォルトの名無しさん2006/11/21(火) 12:15:42
まてまて、高校生かも知れないだろ
0981デフォルトの名無しさんNGNG?2BP(12)
C/C++の宿題を片付けます 77代目
http://pc8.2ch.net/test/read.cgi/tech/1164079451/

次スレ立てました
0982デフォルトの名無しさん2006/11/21(火) 12:55:32
今ひとつ977の例の意味がわからないのは俺だけだろうか
0983デフォルトの名無しさん2006/11/21(火) 13:00:29
大丈夫、漏れもだ。
0984デフォルトの名無しさん2006/11/21(火) 13:09:41
[1]単元名: 計算機演習
[2] 課題:整数nが与えられたとき、n×nのサイズで螺旋状に0から(n二乗ー1)までの数が並ぶ行列を作成し、
画面に表示させるプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ:gcc
 [3.3] 言語:C
[4] 期限:11月24日(金)12:00厳守
[5] その他の制限: ポインタ、データ構造までは習っています。

宜しくお願い致します。
0985デフォルトの名無しさん2006/11/21(火) 13:10:01
俺もよく判らんけど、
多分、二次方程式作って、その解を求めるだけくね?
0986デフォルトの名無しさん2006/11/21(火) 13:12:30
>>984
螺旋状がよく判らない。
計算結果の例を載せるがよろし。
09879772006/11/21(火) 13:12:52
ごめんなさい。高校生です。
皆さんにご迷惑をおかけし、申し訳ありません。
言われるようにまだ、自分で考えてみたいと思います。
0988デフォルトの名無しさん2006/11/21(火) 13:13:41
#include<stdio.h>
#include<math.h>
int main(){float a,b,c,d;while(1){printf("a b c:");scanf("%f %f %f",&a,&b,&c);if(a==0)return 0;d=b*b-4*a*c;
if(d>0)printf("2実根:%f,%f\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
else if(d==0)printf("重根:%f\n",-b/(2*a));
else printf("複素根:%f±%fi\n",-b/(2*a),sqrt(-d)/(2*a));}}
申し訳ありませんが、検算とインデントは自分でお願いします。



正直、よく判らんかった
0989デフォルトの名無しさん2006/11/21(火) 13:16:50
誰か過去の宿題検索作ってくれないか?
0990デフォルトの名無しさん2006/11/21(火) 13:17:58
言い出しっぺがやるべきなんだよ?
0991デフォルトの名無しさん2006/11/21(火) 13:18:26
複素のとこ実部と虚部に分けれ
ネットにいくらでもあるし、解説してるサイトが。
それでもわからないなら高校ヤメレ

螺旋?
*
*
*
*
*
*
*
*
*
*
こういうのか。
こんな出力だけの問題じぶんでやれよ
0992デフォルトの名無しさん2006/11/21(火) 13:21:20
なんだよ、変な表示になったしまあいいや。
09939842006/11/21(火) 13:23:09
>>986 様

例えばキーボードから5を読み込ませると(n=5にすると)
0 1 2 3 4
15 16 17 18 5
14 23 24 19 6
13 22 21 20 7
12 11 10 9 8

という感じになります。
0994デフォルトの名無しさん2006/11/21(火) 13:26:22
入力だろうが、埋め
0995デフォルトの名無しさん2006/11/21(火) 13:29:07
>>984
このスレくらい検索しろハゲ
0996デフォルトの名無しさん2006/11/21(火) 13:29:18
>>993
さっぱりわかんね

おれ
もう
だめ?
0997デフォルトの名無しさん2006/11/21(火) 13:35:55
ジエンド
0998デフォルトの名無しさん2006/11/21(火) 13:38:52
おまえ
んだは
しうも


0999デフォルトの名無しさん2006/11/21(火) 13:39:27
埋めついでに

>>977
なんで2実根の時のxとx2の数が違うのかとか
2実根の時はxとx2なのに複素根の時はx1とx2なのかとか
1000デフォルトの名無しさん2006/11/21(火) 13:41:43
埋め
みんな自力で頑張ろうな
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。