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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/04/20(月) 20:23:19
あなたが解けない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
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/

前スレ
C/C++の宿題片付けます 124
http://pc12.2ch.net/test/read.cgi/tech/1235927586/
0153デフォルトの名無しさん2009/04/24(金) 17:11:32
>>143
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
#include <sstream>
class a_set {
public:
static std::string intersection( const std::vector< int > &a, const std::vector< int > &b ) {
std::vector< int > v;
std::set_intersection( a.begin(), a.end(), b.begin(), b.end(), back_inserter( v ) );
if ( v.empty() ) {
return "";
} else {
std::string s; std::stringstream ss;
std::vector< int >::const_iterator iter = v.begin();
ss << *iter; ++iter;
for ( ; iter != v.end(); ++iter ) {
ss << "," << *iter;
}
s = ss.str();
return s;
}
}
};
int main() {
using namespace std;
int a[] = {2, 3, 10, 35}; int b[] = {3, 5, 10, 18};
vector< int > v1( &a[0], &a[3] ); vector< int > v2( &b[0], &b[3] );
cout << a_set::intersection( v1, v2 ) << endl;
}
0154デフォルトの名無しさん2009/04/24(金) 17:14:42
>>152です
ちょっと間違えました
うるう年じゃないときに2月28日が相手に渡ったら負けるだけで、
基本的にM+Dが奇数ならAの勝ち、例外で、4月30日と6月30日はAの勝ち
だけでした
0155デフォルトの名無しさん2009/04/24(金) 17:18:56
ジョン・フォン・ノイマンを知らないのは論外です、プログラミングだけでなく
PCを扱うに於いて
0156デフォルトの名無しさん2009/04/24(金) 17:19:32
>>153
std::string s; std::stringstream ss;
std::vector< int >::const_iterator iter = v.begin();
ss << *iter; ++iter;
for ( ; iter != v.end(); ++iter ) {
ss << "," << *iter;
}
s = ss.str();

の部分は

std::string s; std::stringstream ss;
copy( v.begin(), v.end(), std::ostream_iterator< int >( ss, "," ) );
s = ss.str();
s.resize( s.size() -1 );

と書いたほうがSTLっぽかったかな。
01571232009/04/24(金) 17:44:43
>>123です。 アップローダーが落ちているようなので再うpします。
[1] 授業単元:
[2] 問題文 (3_4) 学生 A, B, C, D さんの logi, math, ecom の成績はそれぞれ以下のようになっている.
A B C D
logi 90 70 90 80
math 80 85 70 90
ecom 90 85 80 70

math, logi, ecom というメンバを持つ構造体 grade_t を作成せよ. grade_t オブジェクト A, B, C, D を定義して, 成績をそれぞれの変数に格納し, 以下の機能を実装せよ;
それぞれの学生の成績の合計点を計算
各科目の平均点を計算せよ。

(3_5) (3_4) で grade_t に name というメンバを加えて構造体の配列を用い, (3_4) と同様の動作をするプログラムを作成せよ。


[3] 環境
 [3.1] windows
 [3.2] gcc
 [3.3] C/C++
[4] 期限: 本日23:30
[5] その他の制限:なし
0158デフォルトの名無しさん2009/04/24(金) 17:55:07
Q3.printfとwriteの違いはなんでしょう?
おねがいします
0159デフォルトの名無しさん2009/04/24(金) 18:40:11
>>150
再帰の何が嫌がらせなのか分からん。
ループ処理はどこがおかしいのか分からん。
具体的に指摘してくれ。
0160デフォルトの名無しさん2009/04/24(金) 18:56:28
間違った答を書いて>>132って言われたのに>>133って返すとか、ダメなやつだなあとは思う。
0161デフォルトの名無しさん2009/04/24(金) 19:01:03
>>157
(3_4)
#include <stdio.h>
struct grade_t {int logi; int math;int ecom;};
struct grade_t A = {90, 80, 90};
struct grade_t B = {70, 85, 85};
struct grade_t C = {90, 70, 80};
struct grade_t D = {80, 80, 90};
int sum(struct grade_t *x)
{
return x->logi + x->math + x->ecom;
}
void ave(int num, struct grade_t *x[])
{
int i; double logi=0.0, math=0.0, ecom=0.0;
for (i = 0; i < num; i++) {
logi += x[i]->logi; math += x[i]->math; ecom += x[i]->ecom;
}
printf("average logi:%g, math:%g, ecom:%g\n",logi/num, math/num, ecom/num);
}
int main()
{
struct grade_t *p[4] = {&A, &B, &C, &D};

printf("%s sum:%d\n", "A", sum(&A));
printf("%s sum:%d\n", "B", sum(&B));
printf("%s sum:%d\n", "C", sum(&C));
printf("%s sum:%d\n", "D", sum(&D));
ave(4, p);
return 0;
}
0162デフォルトの名無しさん2009/04/24(金) 19:03:44
>>157
(3_5)
#include <stdio.h>
struct grade_t {char *name; int logi; int math; int ecom;};
struct grade_t array[4] = {
{"A", 90, 80, 90},{"B", 70, 85, 85},{"C", 90, 70, 80},{"D", 80, 80, 90}
};
int sum(struct grade_t *x)
{
return x->logi + x->math + x->ecom;
}
void ave(int num, struct grade_t x[])
{
int i; double logi=0.0, math=0.0, ecom=0.0;
for (i = 0; i < num; i++) {
logi += x[i].logi; math += x[i].math; ecom += x[i].ecom;
}
printf("average logi:%g, math:%g, ecom:%g\n",logi/num, math/num, ecom/num);
}
int main()
{
int i;
for (i = 0; i < 4; i++) {
printf("%s sum:%d\n", array[i].name, sum(&array[i]));
}
ave(4, array);
return 0;
}
0163デフォルトの名無しさん2009/04/24(金) 19:13:18
引数でint numが前だとなんか気持ち悪いなw
0164デフォルトの名無しさん2009/04/24(金) 19:23:49
>>162 全問やっていただき本当にありがとうございました。
お陰で期限に楽勝で間に合いました! 本当にありがとうございます!
 
01651432009/04/24(金) 22:05:47
>>153
>>156
やっていただいて、有難う御座います。GCC でエラーが出ましたが、後はこちらで調べてみます。
http://ml.tietew.jp/cppll/cppll/thread_articles/12484
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
D:\>g++ 156.cpp
156.cpp: In static member function `static std::string a_set::intersection(const std::vector<int, std::allocator<int> >&, const std::vector<int, std::allocator<int> >&)':
156.cpp:16: error: `ostream_iterator' is not a member of `std'
156.cpp:16: error: expected primary-expression before "int"
0166デフォルトの名無しさん2009/04/24(金) 22:29:48
>>152
安直にメモ化してみた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9078.c
0167デフォルトの名無しさん2009/04/24(金) 23:09:17
>>165
ostream_iterator を使うには

#include <iterator>

が必要。あと、copy も std::copy にしないと多分エラー。
0168デフォルトの名無しさん2009/04/25(土) 00:39:05
C言語の基礎の基本的な問題と解答が載っているサイトを教えてください。
問題は、プログラムを書けといった問題や、プログラムを実行するとどのように表示されるかといった問題や、
プログラムの穴埋めなどの、プログラムに関する問題です。
内容は、具体的には、最初から、printf、scanf、if、for、while、do-while、
break、continue、switch-caseぐらいまでの内容です。
よろしくお願いします。
0169デフォルトの名無しさん2009/04/25(土) 01:11:02
>>168
本ならたくさんある
0170デフォルトの名無しさん2009/04/25(土) 02:11:09
[1] 情報処理:
[2] キーボードより整数型データを配列に入力し、大きさの順に並べ替えて結果を表示するプログラムを作成しなさい。
ただし、データの個数は15とし、下記に示すプログラムのポインタ変数poを利用し<プログラムの本体>を作成せよ:

[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] C
[4] 4/27

0171デフォルトの名無しさん2009/04/25(土) 02:12:13
#include<stdio.h>
int main()
{
int x[25],i,j,temp;
int *po;
<プログラムの本体>
return 0;
}
0172デフォルトの名無しさん2009/04/25(土) 02:29:45
閏年、カレンダーを出力する質問マダー?
0173デフォルトの名無しさん2009/04/25(土) 02:33:26
素数、最小公倍数、最大公約数マダー?フィボナッチ数列マダー?
0174デフォルトの名無しさん2009/04/25(土) 02:48:12
[1] 授業単元:プログラミング
[2] 問題文:下の実行例のように、一行で入力された加算減算の式を計算して、
      その答えを求めるプログラムを作りなさい。
      ただし、式で入力する値は正の整数とし、演算は+とーのみとする。
      [実行例]
      式:3+21-15+1
      答え:10  
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:4月中

よろしくお願いします。
0175デフォルトの名無しさん2009/04/25(土) 02:58:08
>>174
適当
#include<stdio.h>
#include<stdlib.h>
int main()
{
    char s[80];
    printf("式:");
    fgets(s,sizeof s,stdin);
    int v = 0;
    char*p,*q=s;
    do v += strtol(p=q,&q,10);while(p!=q);
    printf("答え:%d\n",v);
}
0176デフォルトの名無しさん2009/04/25(土) 02:59:09
10分経過
あと数分で1つ出てくる筈
その後5分程度でもう一本
さすがにその後は出来てても揚げないみたいだけど
0177デフォルトの名無しさん2009/04/25(土) 03:00:43
>>176
C語通訳クンの競争は激しいねw
プロトコル位作りゃいいのに
0178デフォルトの名無しさん2009/04/25(土) 03:03:59
最大公約数=ユークリッドの互除法
最小公倍数=x×y÷(x,yの最大公約数)
01791742009/04/25(土) 03:38:06
>>175
ありがとうございます。


01801742009/04/25(土) 03:44:13
あとできれば、174のプログラムをポインタを使わずに作ってもらえるとありがたいです。
0181デフォルトの名無しさん2009/04/25(土) 04:12:51
↓のボイン太君が何とかしてくれるはず
0182デフォルトの名無しさん2009/04/25(土) 09:45:55
>>174 言ってるポインターって何や?
#include<stdio.h>
#define NUMBERS "0123456789" /* strspn(s, NUMBERS) 指定した文字群からなる部分文字列の長さを求めます。*/
int main()
{
  char s[80];
  int v, np, size;

  printf("式:");
  fgets(s, sizeof s, stdin);
  if(s[0] == '-' || s[0] == '+') {
    np = strspn(s+1, NUMBERS);
    np++;
  } else {
    np = strspn(s, NUMBERS);
  }
  v = atol(s);
  while(
    size = strspn(s+np+1, NUMBERS) ) {
    v += atol(s+np);
    np += size+1;
  } ;
  printf("答え:%d\n", v);
}
0183デフォルトの名無しさん2009/04/25(土) 10:27:26
>>174
#include <stdio.h>

int main(void)
{
int ch, sum = 0, temp = 0, flag = 1;

while(1) {
ch = getchar();
if('0'<=ch && ch <= '9') temp = temp * 10 + ch - '0';
else {
sum += flag * temp;
temp = 0;
if(ch == '\n' || ch == EOF) break;
if(ch == '+') flag = 1;
else if(ch == '-') flag = -1;
else return 1;
}}

printf("%d", sum);

return 0;
}
0184デフォルトの名無しさん2009/04/25(土) 14:27:59
>>98
むしろしばらくたっても誰も答えないような難易度の高い問題をさくっと解くほうがかっこいいですねえ。
>>54 とか
0185デフォルトの名無しさん2009/04/25(土) 16:10:02
[1] 授業単元:プログラミング
[2] 問題文:
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9079.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語:C++
[4] 期限:4月27日午前中
(1)は出来たのですが(2)が意味不明です。よろしくお願いします。
01861852009/04/25(土) 16:13:44
自己レスです。一点書き忘れました。
(1)は構造体の定義の後、メイン関数の前に
helloworld x;
と実際に使う必要がありました。
0187デフォルトの名無しさん2009/04/25(土) 16:59:11
[1] 授業単元:C++
[2] 問題文:ttp://www.dotup.org/uploda/www.dotup.org35358.zip.html
[3] 環境
 [3.1] OS:リナックス
 [3.2] コンパイラ名とバージョン:G++
 [3.3] 言語:C++
[4] 期限:4月27日中
[5] よろしくおねがいします
0188デフォルトの名無しさん2009/04/25(土) 17:23:53
>>187
std::for_eachの第三引数は参照渡しではなく値渡しだから
ファンクタから戻るとファンクタが消滅する
正しい結果を得るには次のようにする

string::size_type maxlen2;

struct maxlenftn {
maxlenftn() : maxlen(0) {}
void operator()(string s) {
maxlen = maxlen2 = max(maxlen, s.size());
}
string::size_type maxlen;
};

int main() {
const char *na[] = {
"Orange", "Notebook", "XP", "UnitedKingdom"
};
vector<string> names(na, na + sizeof(na) / sizeof(const char *));
maxlenftn maxf;

for_each(names.begin(), names.end(), maxf);

cout << maxlen2 << endl;
}
0189デフォルトの名無しさん2009/04/25(土) 18:04:58
>>187
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9081.txt

・・・遅かった^^;
0190デフォルトの名無しさん2009/04/25(土) 18:35:40
>>185
#include <iostream>
using namespace std;
class helloworld {
 public:
  helloworld(int val) : a(val++), b(val++) {
    cout << "Test 2 "<<a<<b<<endl; }
  helloworld(int vala, int valb) : a(vala), b(valb) {
    cout << "Test 3 "<<a<<b<<endl; }
private:
  const int a, b; // a=2, b=3
// const int b, a; // b=2, a=3
};
//helloworld x();
helloworld y(2);
helloworld z(2,3);

int main(){
  return 0;
}
01911742009/04/25(土) 23:32:09
>>182
>>183
ありがとうございます
助かりました
0192デフォルトの名無しさん2009/04/25(土) 23:36:48
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9082.txt

[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Borland C++ 5.5
 [3.3] 言語: C
[4] 期限: 一週間後
[5] なるべく簡単にお願いします。
0193デフォルトの名無しさん2009/04/25(土) 23:53:53
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9084.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9085.txt

[3] 環境
 [3.1] Windows vista
 [3.2] VC 2008
 [3.3] 言語: C
[4] 期限: 4/27 12:00

多少長いコードになってると思います。そして2つです。
リスト構造がまだ曖昧なため、参考にさせて頂くためにもよろしくお願いします。
0194デフォルトの名無しさん2009/04/26(日) 00:09:33
>>192
(a) i % 3 == 0 || 30 <= i && i <= 39 || (i % 10) == 3
(b) i % 5 == 0
0195デフォルトの名無しさん2009/04/26(日) 00:25:22
>>170
#include <stdlib.h>
int main()
{
  int x[25], i, j, temp;
  int *po;
  const int NUM = 15;
  /* 入力 */
  for(i=0; i<NUM; i++) {
    while(printf("%2d/%d:", i+1, NUM), scanf("%d", &x[i]) != 1)
      scanf("%*s");
  }
  /* バブルソート */
  for(i=0; i<NUM-1; i++) {
    for(j=NUM-1; j>i; j--) {
      po = &x[j-1];
      if(po[0] > po[1]) { /* 降順は>、昇順は< */
        temp = po[1], po[1] = po[0], po[0] = temp;
      }
    }
  }
  /* 出力 */
  for(i=0; i<NUM; i++)
    printf("%d ", x[i]);
  return 0;
}
0196デフォルトの名無しさん2009/04/26(日) 02:25:51
>>112
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9088.zip
・とりあえず動いてρ<1.0の時なら ̄Nが大体一致した。
・途中で飽きてコメントがいい加減になってる。
・シミュレータの正当性については理論値との誤差率を出すとかして自分で調べてくれ。
 (理論値の公式はググってみてもよくわからなかった。)
0197デフォルトの名無しさん2009/04/26(日) 09:10:18
[1] 授業単元: プログラミング言語�Y
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9089.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9090.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9091.txt

[3] 環境
 [3.1] Windows xp
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限: 4/28 12:50

計3問です。いずれも長いソースコードとなっています。
どうかよろしくお願いいたします。
0198デフォルトの名無しさん2009/04/26(日) 09:44:00
世界のナベアツのパクリキターー!このスレは世界のアツナベが乗っ取った!
これから3の倍数と3の付く番号にレスをした奴はアホっぽくレスをせずとも
アホ決定!
0199デフォルトの名無しさん2009/04/26(日) 10:55:39
>>196
ありがとうございます!
すいません、
サーバの平均の処理時間を1で正規化して、これを基準とした相対的な時間を用いる仕様にして欲しいのですが、無理でしょうか?
0200デフォルトの名無しさん2009/04/26(日) 11:37:13

おまんこおーぷん
もしヌルヌルなら
おちんちん
0201デフォルトの名無しさん2009/04/26(日) 12:17:06
>>193
9084.txtだけ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9092.txt
02021872009/04/26(日) 13:13:49
>>188
>>189
ありがとうございました!おかげさまで助かりました
0203デフォルトの名無しさん2009/04/26(日) 13:26:37
>>199
よく言っている意味がわからないんだけど、
  arrivalRate /= serviceRate;
  serviceRate = 1.0;
じゃだめなの?
0204デフォルトの名無しさん2009/04/26(日) 15:36:40
>>203
シミュレーション時間の単位のことです。
実際の物理的な時間単位(sec等)でもよいが、>>199であるような仕様にしたほうがよいと書いてあるので・・
0205デフォルトの名無しさん2009/04/26(日) 16:52:50
>>194
30 <= i && i <= 39よりも、
( i / 10 ) == 3
がよさげ。
0206デフォルトの名無しさん2009/04/26(日) 16:55:17
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク): h = 1 + 1*2 + 1*2*3 + 1*2*3*4 + 1*2*3*4*5
これを2重のfor文で解け。

[3] 環境
 [3.1] OS: windows vista
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: c
[4] 期限: 5月15日まで
0207デフォルトの名無しさん2009/04/26(日) 17:15:16
>>206
/* h = 1 + 1*2 + 1*2*3 + 1*2*3*4 + 1*2*3*4*5 */
#include <stdio.h>
int main() {
  int i, j, mul, sum = 0;
  for(i=1;i<=5;i++) {
    mul = 1;
    for(j=1;j<=i;j++) {
      mul *= j;
    }
    sum += mul;
  }
  printf("h = %d", sum);
}
0208デフォルトの名無しさん2009/04/26(日) 17:29:13
>>207
キチンと動きました。!!
本当にありがとうございます!!。
0209デフォルトの名無しさん2009/04/26(日) 17:54:50
[1] 授業単元: プログラミング言語
[2]  2重のfor文で下記のように表示しろ。
98765
87654
76543
65432
54321

[3] 環境
 [3.1] OS: windows vista
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: c
[4] 期限: 5月15日まで
0210デフォルトの名無しさん2009/04/26(日) 17:58:44
#include <stdio.h>

int main(void)
{
int i, j;

for(i=0; i<5; i++) {
for(j=0; j<5; j++) printf("%d", 9-i-j);
putchar('\n');
}

return 0;
}
0211デフォルトの名無しさん2009/04/26(日) 18:00:59
#include<stdio.h>
int main(){
    const char s[]=
    "98765\n"
    "87654\n"
    "76543\n"
    "65432\n"
    "54321\n";
    int i,j;
    for(i=0;i<1;++i)
        for(j=0;s[j]!='\0';++j)
            putchar(s[j]);
}
0212デフォルトの名無しさん2009/04/26(日) 18:01:41
>>209
#include <stdio.h>

int main()
{
int i, j;

for(i = 0; i < 5; i++){
for(j = 0; j < 5; j++){
printf("%d", (9-i-j));
}
printf("\n");
}

return 0;
}
0213デフォルトの名無しさん2009/04/26(日) 18:40:17
>>210-212
どれもきちんと正常に動きました。
本当に皆さんありがとうございます。助かりました!!
02141932009/04/26(日) 18:50:02
>>201
ありがとうございます。
正常に動作しました。
よろしければ引き続き2番目の方もどなたかお願いします。
0215デフォルトの名無しさん2009/04/26(日) 20:09:19
[1] 授業単元: プログラミング言語�Y
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9089.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9090.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9091.txt

[3] 環境
 [3.1] Windows xp
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限: 4/28 12:50

計3問です。いずれも長いソースコードとなっています。
どうかよろしくお願いいたします。
0216デフォルトの名無しさん2009/04/26(日) 20:10:30
>>211 >>211 >>211 >>211 >>211 >>211
君は見事に世界のアツナベになったw
0217デフォルトの名無しさん2009/04/26(日) 21:45:56
テステス
0218デフォルトの名無しさん2009/04/26(日) 22:17:32
>>193
9085.txt
> append 関数を直接呼び出せば実装は容易である
ってあるけど、配列で実装して構わないんだよね?

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9093.txt
0219デフォルトの名無しさん2009/04/26(日) 22:22:25
>>215
1-1 throw
1-2 try
1-3 catch
1-4 range_error
2-5 MyData&
2-6 a.str
2-7 free(str)
2-8 *this
2-9 vector<MyData>::const_iterator
2-10 *(it++)
3-1 getIP(s)
3-2 atoi(s)
3-3 >>=
02202152009/04/26(日) 22:28:03
>>219様
ありがとうございます。
助かりました!!!!
02211932009/04/26(日) 22:44:47
>>218
すいません。説明が不十分でした。
リストのコードと配列のコードである
2つを別々に作るということでした。
0222デフォルトの名無しさん2009/04/27(月) 00:08:05
>>193
リストによる実装
>>201氏のロジックを借用している
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9094.txt
0223デフォルトの名無しさん2009/04/27(月) 00:21:15
>>193

MAXENTは3として欲しい。わざわざ4にした理由がわからん

#define MAXENT 4 /* 最大3個の要素が入る待ち行列*/
/* テストのためわざと小さい大きさにしている */
int x[MAXENT-1]; /* 待ち行列用の配列の宣言 */
02241932009/04/27(月) 00:33:20
>>223
申し訳ありません。
ただ自分が作った問題ではないのでなんとも言えないのですが。

>>201 >>218 >>222 >223
皆さん大変ありがとうございました。
これからは自分で作れるように努力したいと思います。
0225デフォルトの名無しさん2009/04/27(月) 03:04:24
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
穴埋め問題2問です
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9095.txt
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9096.txt

[3] 環境
 [3.1] OS:windows xp
 [3.3] 言語:C++
[4] 期限: 2009年4月28日23:59まで

どうかよろしくお願いします
0226デフォルトの名無しさん2009/04/27(月) 12:44:49
[1] 授業単元: 演習課題
[2] 問題文(含コード&リンク):
nCrを計算するプログラムを,(再帰的呼び出しを用いずに)作成せよ.但し,nは0以上5以下とする
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 早ければ早いほどいいが、無期限
[5] その他の制限: 初心者
0227デフォルトの名無しさん2009/04/27(月) 14:04:44
>>226
joyful/img/9097.c


・・・ここまで書いて、条件を満たしてないことに気づいた。
ま、まぁ、参考までに。
0228デフォルトの名無しさん2009/04/27(月) 14:07:43
>>226
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9098.c
0229デフォルトの名無しさん2009/04/27(月) 14:33:46
>>227 (・∀・)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9097.c
02302262009/04/27(月) 15:00:39
>>227
>>228
ありがとうございます!
おかげで一つ謎が解けそうです。
あとは自分で作れるよう、このソースを解読してみます。
0231デフォルトの名無しさん2009/04/27(月) 15:13:29
>>225
問1 1 :: 2 : 3 バッファオーバーラン 4 strncpy 5 strncpy(this->phone, phone, MAXNAME-1);
・・・「ぜいじゃくせい」じゃないのかなぁ?

2-1 β 2-2 bool 2-3 x 2-4 y 2-5 "四角形の内側です\n"
0232デフォルトの名無しさん2009/04/27(月) 15:15:38
[1] 授業単元:プログラミング演習
[2]
実行例のように表示されるプログラムを作製せよ。
課題は2つあります。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9099.zip

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C
[4] 期限:5/1
[5] その他の制限:お手数かけますが宜しくお願いします。
0233デフォルトの名無しさん2009/04/27(月) 15:29:29
>>232はスタックを作れとは書いてないから
そのまま文字列表示しちゃってもいいのか?w
0234デフォルトの名無しさん2009/04/27(月) 16:51:09
課題1
#include <stdio.h>
int main()
{
char buf[32]; int a, b;
printf("A?"); fgets(buf, sizeof(buf), stdin); a = atoi(buf);
printf("B?"); fgets(buf, sizeof(buf), stdin); b = atoi(buf);
printf("\n");
printf("A+B = %d\n",(a+b)%10);
printf("A-B = %d\n",(a-b)%10);
printf("A*B = %d\n",(a*b)%10);
printf("A/B = %d\n",(a/b)%10);
printf("A%B = %d\n",(a%b)%10);
return 0;
}
0235デフォルトの名無しさん2009/04/27(月) 16:52:33
課題2
#include <stdio.h>
int main()
{
char buf[32]; int s;
printf("身長を入力してください?:"); fgets(buf, sizeof(buf), stdin);
s = atoi(buf);
printf("\n標準体重は %4.1fkg です.\n",((double)s - 100.0) * 0.9);
return 0;
}
0236デフォルトの名無しさん 2009/04/27(月) 17:23:27
>>225
問2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9100.txt
0237デフォルトの名無しさん 2009/04/27(月) 17:31:27
>>225
問1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9101.txt
0238デフォルトの名無しさん2009/04/27(月) 18:07:39
突然の質問ですいません
#include <stdio.h>

int main (){
int i;
double a;

a=0.0;
for(i=0;i<20;i++) {
a=a+0.1;
printf("a=%f\n",a);
if(a==1.0)
break;

}
printf(" a = %f \n", a );
return 0;
}

この答えが2になるのは何故でしょうか?
0239デフォルトの名無しさん2009/04/27(月) 18:16:31
if(a==1.0)が真にはならない
0240デフォルトの名無しさん2009/04/27(月) 18:20:37
こういうのって0.1ずつ足していくと
1.0にならずに0.9999999とかになるんじゃなかったっけ。
0241デフォルトの名無しさん2009/04/27(月) 18:43:39
>>238
2にならない。
0242デフォルトの名無しさん2009/04/27(月) 18:51:33
a=a+0.125;
とか1/2^nであらわせる数なら誤差は出ない
0243デフォルトの名無しさん2009/04/27(月) 18:54:27
printf("a=%.16f\n",a);
にすれば1.0じゃないのがわかる
0244デフォルトの名無しさん 2009/04/27(月) 19:04:50
>>226
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9102.txt
0245デフォルトの名無しさん2009/04/27(月) 19:14:29
TEST
0246デフォルトの名無しさん2009/04/27(月) 19:19:23
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9086.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9087.txt
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Borland C++ 5.5
 [3.3] 言語: C
[4] 期限: 一週間後
[5] 追加です。なるべく簡単にお願いします
  2問目は全く解らないので特に簡単にわかりやすくして下さい。

0247デフォルトの名無しさん2009/04/27(月) 19:34:47
>>242
それは実装系依存(FLT_RADIX依存?)。
238は環境を提示していないので、239以上のことは言えんと思う。
0248デフォルトの名無しさん2009/04/27(月) 19:45:28
>>226 nCrを計算するプログラムを,(再帰的呼び出しを用いずに)作成せよ.
但し,nは0以上5以下とする
>>227 >>228 >>244
n にC言語側で制限つける必要ある?
0249デフォルトの名無しさん2009/04/27(月) 21:25:35
>>246
9086.txt
#include <stdio.h>
int main()
{
int i = 1; double sum = 0.0;
while (1) {
sum += 1.0 / (i * (i + 2));
if (sum > 0.74)
break;
i++;
}
printf("%d %g\n", i,sum);
return 0;
}
9087.txt
(a) [now > 0]
(b) [max < prod]
(c) [max = prod]
(d) [prev = now]
(e) [scanf("%d", &now)]
0250デフォルトの名無しさん2009/04/27(月) 21:58:23
>>248 日本語でおk。論より証拠。ならばお主がソースで具体的に
自分が言いたかったことを示したら?コードでおk。
0251デフォルトの名無しさん2009/04/27(月) 22:01:11
>>248
> C言語側で制限つける
ユーザが0から5の間で入力すれば良いと言いたいのか?
それならそれで良いんだが。ただ、入力できる数は何も0から5の間に
限ったことではないんでね。
0252デフォルトの名無しさん2009/04/27(月) 22:13:03
>>248の書いたソースコードマダー?(チンチンAA略)
■ このスレッドは過去ログ倉庫に格納されています