[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 08/07 07:52 / Filesize : 195 KB / Number-of Response : 643
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 02:13:06 ]
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

前スレ
C/C++の宿題片付けます 122代目(実質123代目)
pc11.2ch.net/test/read.cgi/tech/1232029287/

587 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 20:30:19 ]
>>584
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
float power2(float x)
{ return x*x; }
int main()
{
const int size = 10; float c = 0.1;
std::vector<float> vec1(size), vec2(size);
for(int i = 0; i < size; ++i){ vec1[i] = c; c += 1.1; }
std::transform(vec1.begin(), vec1.end(), vec2.begin(), power2);
std::copy(vec2.begin(), vec2.end(), std::ostream_iterator<float>(std::cout, ","));
return 0;
}

588 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:55:26 ]
>>586
助かりました!有り難うございました。

589 名前:584 mailto:sage [2009/04/05(日) 01:55:15 ]
>>587
ありがとうございました!これから解読します

590 名前:デフォルトの名無しさん [2009/04/05(日) 03:21:24 ]
解読する価値ねーだろ

591 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:23:05 ]
価値というか、問題文そのまま書き下しただけだな

592 名前:デフォルトの名無しさん [2009/04/05(日) 03:29:26 ]
お前引っこんでろ


593 名前:デフォルトの名無しさん [2009/04/05(日) 03:33:04 ]
>>589
あんまいじると可哀想だろ 
そのへんでやめとけ


594 名前:デフォルトの名無しさん [2009/04/05(日) 12:59:37 ]
#include <stdio.h>
【  1  】      /* 文字列の標準ヘッダーファイルの取り込み */
#define TRUE 1
#define FALSE 0

int passCheck(char *p); /* ユーザー作成関数のプロトタイプ宣言 */

void main()
{
char buff[256];
int cnt, flg = FALSE;

for (cnt=1; 【  2  】 ; cnt++)
{
printf("パスワードは?=> ");
scanf("%s",buff);

flg = 【  3  】 ;

if (flg == TRUE)
printf("パスワードは合致しました。\n");
else
printf("%d回目 入力ワード %s は間違っています。\n",cnt,buff);
}
}



595 名前:デフォルトの名無しさん [2009/04/05(日) 13:00:24 ]
int passCheck(char *p)
{
static char *pass = "MissionC";
int flg;

flg = strcmp(pass,p);

if (【  4  】 )
return TRUE;
else
return FALSE;
}



596 名前:デフォルトの名無しさん [2009/04/05(日) 13:02:59 ]
1,2,3,4に入る解答を教えて

597 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:13:16 ]
>>595-596 3回もしなくても、1回で投稿できるだろう。
#include <string.h>
!fig
passCheck(buff)
!fig

598 名前:デフォルトの名無しさん [2009/04/05(日) 13:22:14 ]
回答群から選ぶ問題だった

1
#include "string.h"
#include <string.h>
#include <strcmp.h>
#include <strings.h>

2
cnt<=3 and flg==FALSE
cnt<3 && flg!=TRUE
cnt<=3 && flg==FALSE
newStr[5]

3
passCheck(*p)
passCheck(p)
passCheck(&buff)
passCheck(buff)

4
flg > 0
flg = 0
flg < 0
flg == 0

599 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:26:16 ]
>>598
>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
#include <string.h>
cnt<=3 && flg==FALSE
passCheck(buff)
flg == 0

600 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:08:13 ]
[1] 授業単元:C++
[2] 問題文:
16行からなるパスカルの三角形をコンソールに出力するプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語: C++
[4] 期限:4月7日
[5] その他制限事項:
(1)正三角形にすること。(各行がコンソール左端ぴったりから始まるような直角三角形ではない)
(2)一つのデータの入る領域を「レンガ」とすると、レンガのサイズは三角形を構成するデータの
最大値の桁を格納出来る大きさとしなさい。ただし見栄えの点から偶数の場合は奇数にした方がよいでしょう。
(=>つまりサイズは4桁(+1)=5にしろって言ってるんだと思います)
(3)数値はレンガの真ん中に位置するようにしなさい。
(4)入れ子のコンテナを使用しなさい。(例 vector<vector<int>>)

よろしるおねがいします

601 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:22:37 ]
>>600
ぐぐれ

602 名前:600 mailto:sage [2009/04/05(日) 15:38:41 ]
>>601
ぐぐると似た者はたくさんあるのですが制限事項を満たした者がありませんでした。
ttp://www.daniweb.com/forums/thread49939.html
とかは6行目くらいから正三角形が崩れて来るし、最終的に微妙な三角形になるし、
というわけでよろしるおねがいします

603 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:53:55 ]
あなたは、10とか1000の桁数偶数の場合は、5桁の中央にどう配置するのか?

604 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:36:04 ]
_1_0_
10_00

605 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:57:49 ]
>>604 OK. あと、STL使うみたい。
#include <iostream>
int main(void){ std::cout <<
"_______________________________________________1__ \n" <<
"____________________________________________1_____1__ \n" <<
"_________________________________________1_____2_____1__ \n" <<
"______________________________________1_____3_____3_____1__ \n" <<
"___________________________________1_____4_____6_____4_____1__ \n" <<
"________________________________1_____5____1 0___1 0____5_____1__ \n" <<
"_____________________________1_____6____1 5___2 0___1 5____6_____1__ \n" <<
"__________________________1_____7____2 1___3 5___3 5___2 1____7_____1__ \n" <<
"_______________________1_____8____2 8___5 6___7 0___5 6___2 8____8_____1__ \n" <<
"____________________1_____9____3 6___8 4___126___126___8 4___3 6____9_____1__ \n" <<
"_________________1____1 0___4 5___120___210___252___210___120___4 5___1 0____1__ \n" <<
"______________1____1 1___5 5___165___330___462___462___330___165___5 5___1 1____1__ \n" <<
"___________1____1 2___6 6___220___495___792___924___792___495___220___6 6___1 2____1__ \n" <<
"________1____1 3___7 8___286___715__12 87_17 16_17 16_12 87__715___286___7 8___1 3____1__ \n" <<
"_____1____1 4___9 1___364__10 01_20 02_30 03_34 32_30 03_20 02_10 01__364___9 1___1 4____1__ \n" <<
"__1____1 5___105___455__13 65_30 03_50 05_64 35_64 35_50 05_30 03_13 65__455___105___1 5____1__ \n" ;
}



606 名前:600 mailto:sage [2009/04/06(月) 00:52:27 ]
↑こんな感じで表示出来ると助かるのですが
どなたかコンテナを使ったプログラムでお願い出来ないでしょうか

607 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:06:27 ]
これって正三角形じゃなくて二等辺三角形だよな

608 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:16:04 ]
教員の端末がプロポーショナルフォントだったら・・・

609 名前:600 mailto:sage [2009/04/06(月) 01:28:10 ]
「正」じゃなくて二等辺でもたぶん大丈夫です

610 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:42:20 ]
printf("%*d",WID,NUM);
WID 文字数の指定
NUM 値

611 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:43:05 ]
C++でも書式の指定ができるものがあったような・・・

612 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:44:52 ]
#include <vector>

typedef std::vector<int> VecInt;
typedef std::vector<VecInt> VecVecInt;

void main()
{
VecVecInt vvi;

vvi[0][0] = 1;

vvi[1][0] = 1;
vvi[1][1] = 1;

vvi[2][0] = 1;
vvi[2][1] = 2;
vvi[2][2] = 1;
}

613 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:14:45 ]
#include <stdio.h>
#include <vector>

typedef std::vector<int> VecInt;
typedef std::vector<VecInt> VecVecInt;

void main()
{
VecVecInt vvi;
VecInt vi;
int iRow, iCol;
int iStep = 10;

vi.push_back(1);
vvi.push_back(vi);
for (iRow = 0; iRow < iStep; iRow++) {
vi.clear();
vi.resize(iRow + 2, 0);
vvi.push_back(vi);
for (iCol = 0; iCol <= iRow; iCol++) {
vvi[iRow + 1][iCol] += vvi[iRow][iCol];
vvi[iRow + 1][iCol + 1] += vvi[iRow][iCol];
}
}

for (iRow = 0; iRow < iStep; iRow++) {
for (iCol = 0; iCol <= iRow; iCol++) {
printf("%d,", vvi[iRow][iCol]);
}
printf("\n");
}
}

614 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:16:20 ]
1,
1,1,
1,2,1,
1,3,3,1,
1,4,6,4,1,
1,5,10,10,5,1,
1,6,15,20,15,6,1,
1,7,21,35,35,21,7,1,
1,8,28,56,70,56,28,8,1,
1,9,36,84,126,126,84,36,9,1,

615 名前:600 mailto:sage [2009/04/06(月) 02:27:33 ]
毎行左端からスタートではない左辺と右辺の二等辺である三角形に出来ませんか?
(イメージ的に605みたいな)



616 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:33:38 ]
#include <stdio.h>
#include <string.h>

char* NumFmt(unsigned int uiNum)
{
static int aiPos[][5] = {{2},{1,3},{1,2,3},{0,1,3,4},{0,1,2,3,4}};
static char acRet[6];
char acBuf[16];
size_t uiLen;
unsigned int ui;

sprintf(acBuf, "%u", uiNum);
uiLen = strlen(acBuf);
if (5 < uiLen) return NULL;
strcpy(acRet, "_____");
for (ui = 0; ui < uiLen; ui++) {
acRet[aiPos[uiLen - 1][ui]] = acBuf[ui];
}
return acRet;
}

void main()
{
printf("%s\n", NumFmt(5));
printf("%s\n", NumFmt(55));
printf("%s\n", NumFmt(555));
printf("%s\n", NumFmt(5555));
printf("%s\n", NumFmt(55555));
}

617 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:35:52 ]
__5__
_5_5_
_555_
55_55
55555

一応、骨格と部品は用意したんで
適当に加工してちょ
もっと綺麗に書けたらなぁw

618 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 03:51:43 ]
>>600
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9015.cpp

619 名前:600 mailto:sage [2009/04/06(月) 04:00:09 ]
>>618
完璧です。。ほんとに感謝です!
ありがとうございました!

620 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:00:45 ]
#include <stdio.h>
#include <string.h>
#include <vector>

#define N 14

using namespace std;

void main()
{
vector< vector<int> > vvi;
vector<int> vi;
char acBuf[16];
int iRow, iCol, iMax = 0, iMaxLen, i, iSpc;

for (iRow = 0; iRow < N; iRow++) {
vi.push_back(1);
for (iCol = iRow - 1; 0 < iCol; iCol--) {
vi[iCol] += vi[iCol - 1];
iMax = __max(iMax, vi[iCol]);
}
vvi.push_back(vi);
}

621 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:02:04 ]
sprintf(acBuf, "%d", iMax);
iMaxLen = strlen(acBuf);
iMaxLen |= 1; // 奇数に繰り上げ

for (iRow = 0; iRow < N; iRow++) {
for (i = 0; i < (iMaxLen / 2 + 1) * (N - 1 - iRow); i++) putchar(' ');
for (iCol = 0; iCol <= iRow; iCol++) {
sprintf(acBuf, "%d", vvi[iRow][iCol]);
iSpc = iMaxLen - strlen(acBuf);
for (i = 0; i < iSpc / 2; i++) putchar(' ');
printf(acBuf);
for (i = 0; i < (iSpc + 1) / 2; i++) putchar(' ');
putchar(' ');
}
putchar('\n');
}
}

もう解答は上がってるけど、別解として

622 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:30:13 ]
くせぇくせぇ、後出し麻呂の臭いがぷんぷんすんぜ
こりゃ〜クソースだぁ〜クソースは消毒だぁ〜

623 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:38:04 ]
g++ だと、void main はコンパイルエラーになる。
#define __max(a,b) a>b?a:b
どれだけ花がいいんだ。

624 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 10:31:46 ]
ttp://www.dotup.org/uploda/www.dotup.org26594.zip.html

四つの引数をとるバージョンのaccumulateを使用して、26行目、27行目のtransformとaccumulate(三つの引数バージョン)
を合体するにはどうしたらいいですか?単純に繋いだらコンパイルエラーになりますた(28行目)
あっそれとinnerproductは使っちゃいけないみたいなのであくまでも4つの引数をとるaccumulateバージョンでお願いします

625 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 11:23:42 ]
template<class T>
struct power : public binary_function<T, T, T> {
T operator()(const T& x, const T& y) const {
return x + y * y;
}
};

sum=std::accumulate(new_vec.begin(), new_vec.end(), 0, power<float>());

こんな感じにすればいいんじゃね?よく分からんが



626 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:49:20 ]
>>618 #define N 17 だと、なぜかダメ。

627 名前:デフォルトの名無しさん [2009/04/06(月) 15:25:28 ]
>>626
最大表示桁数が5桁を超えるからじゃないの?

628 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 15:28:48 ]
>>578
new delete 等の C++ キーワードを変数名に

629 名前:624 mailto:sage [2009/04/06(月) 16:10:26 ]
>>625
おぉ!すごいできました。
ありがとうございました。(^人^)感謝♪

630 名前:569 mailto:sage [2009/04/08(水) 19:10:27 ]
>>572のプログラムについてなんですが、
各行にコメントをつけなきゃなくて、さらに提出するときに説明しなきゃないんですけど、
while(!n || data[n-1] != 0.0){ scanf("%lf", data+n); n++; }の文について誰か詳しく教えてくれませんか?
あとこのプログラムだと平均値が終了データの0まで件数にカウントされているらしく、
例えば1、2、3の平均値は2になるはずが、(1+2+3+0)÷4=1.5となってしまっているので、
修正の仕方を教えてくださいm(_ _)m

631 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:35:20 ]
while (n < 1024) {
if (scanf("%lf", &data[n]) != 1) { // 入力
scanf("%*s"); // 入力バッファ読み捨て
printf("error\n");
continue;
}
if (data[n] == 0.0) { // 0なら入力終了
break;
}
n++;
}

改良案

632 名前:デフォルトの名無しさん mailto:age [2009/04/08(水) 20:05:04 ]
[1] 授業単元: ファイルの入出力(fprintf文の高度な使用法)
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9019.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc )
 [3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 来週の月曜日まで
[5] その他の制限: 特に無し


633 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:26:26 ]
問題文正確か?

634 名前:632 mailto:age [2009/04/08(水) 21:40:51 ]
>>633
一応正確ですよ
よろしくお願い致します。

635 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 22:50:27 ]
まだ4月初めなのにもう課題がでてるの?
どういう学校だろうか。

うちなんかこれから講義資料作りますよ。
自分が出した問題がここに出てくるかwktkしながら見ることにします。



636 名前:632 mailto:age [2009/04/08(水) 23:12:35 ]
>>635
専門学校ですのでカリキュラムがギュウギュウなんですよ
出来るようならお願い致します

637 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:15:23 ]
いったい何のために専門学校に入ったの?

638 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:17:29 ]
>>636
カリキュラムがギュウギュウって本当か?
卒業時にバブルソートがなんとかできるとかじゃないよな?

639 名前: ◆zQ5xe/OcaA mailto:sage [2009/04/08(水) 23:20:42 ]
>>632
int main()
{
  output=fopen("vib1.inp","w");
  t=0.0, x[1]=1.0; x[2]=0.0;

  printf("%10.5lf\n",t);
  printf("%10.5lf%10.5lf\n",x[1],x[2]);

  fprintf(output,"♯AVS field file\n");
  fprintf(output,"%d\n",NMAX+1);
  fprintf(output,"data_geom\n");
  fprintf(output,"step%d step%d\n%d %d\n%d",1,1,1,1,1);
  fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0);
  fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1);
  fprintf(output,"radius,\n%d%4.1f\n",1,1.0);

  for(i=1; i<=NMAX;i++){
    t=((double) i)*h;
    fprintf(output,"step%d step%d\n%d %d\n%d",i+1,i+1,1,1,1);
////////////////////////////////////////////////////////////////////////////////
    runge( vib,x,f,wrk1,wrk2,t,h,n);
////////////////////////////////////////////////////////////////////////////////
    fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0);
    fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1);
    fprintf(output,"radius,\n%d%4.1f\n",1,1.0);
    printf("%10.5lf\n",t);
    printf("%10.5lf%10.5lf\n",x[1],x[2]);
  }
}

640 名前:632 mailto:age [2009/04/08(水) 23:21:05 ]
>>637
プログラムの勉強をするためです
>>638
卒業時には立派なプログラマー予備軍?になってるだろうと先生から言われています

641 名前:632 mailto:age [2009/04/08(水) 23:27:17 ]
>>639
このままだとエラーが結構出ますがこれを参考にしろってことですね
ありがとうございます。やってみます

642 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:42:36 ]
プログラムの勉強をするために専門学校に入って、ここで宿題解いてもらうのか。

とりあえずうちの会社には来ないでね。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<195KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef