C/C++の宿題片付けます 125代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/04/20(月) 20:23:19【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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#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ちょっと間違えました
うるう年じゃないときに2月28日が相手に渡ったら負けるだけで、
基本的にM+Dが奇数ならAの勝ち、例外で、4月30日と6月30日はAの勝ち
だけでした
0155デフォルトの名無しさん
2009/04/24(金) 17:18:56PCを扱うに於いて
0156デフォルトの名無しさん
2009/04/24(金) 17:19:32std::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っぽかったかな。
0157123
2009/04/24(金) 17:44:43[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おねがいします
0159デフォルトの名無しさん
2009/04/24(金) 18:40:11再帰の何が嫌がらせなのか分からん。
ループ処理はどこがおかしいのか分からん。
具体的に指摘してくれ。
0160デフォルトの名無しさん
2009/04/24(金) 18:56:280161デフォルトの名無しさん
2009/04/24(金) 19:01:03(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(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:180164デフォルトの名無しさん
2009/04/24(金) 19:23:49お陰で期限に楽勝で間に合いました! 本当にありがとうございます!
0165143
2009/04/24(金) 22:05:47>>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安直にメモ化してみた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9078.c
0167デフォルトの名無しさん
2009/04/24(金) 23:09:17ostream_iterator を使うには
#include <iterator>
が必要。あと、copy も std::copy にしないと多分エラー。
0168デフォルトの名無しさん
2009/04/25(土) 00:39:05問題は、プログラムを書けといった問題や、プログラムを実行するとどのように表示されるかといった問題や、
プログラムの穴埋めなどの、プログラムに関する問題です。
内容は、具体的には、最初から、printf、scanf、if、for、while、do-while、
break、continue、switch-caseぐらいまでの内容です。
よろしくお願いします。
0169デフォルトの名無しさん
2009/04/25(土) 01:11:02本ならたくさんある
0170デフォルトの名無しさん
2009/04/25(土) 02:11:09[2] キーボードより整数型データを配列に入力し、大きさの順に並べ替えて結果を表示するプログラムを作成しなさい。
ただし、データの個数は15とし、下記に示すプログラムのポインタ変数poを利用し<プログラムの本体>を作成せよ:
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] C
[4] 4/27
0171デフォルトの名無しさん
2009/04/25(土) 02:12:13int main()
{
int x[25],i,j,temp;
int *po;
<プログラムの本体>
return 0;
}
0172デフォルトの名無しさん
2009/04/25(土) 02:29:450173デフォルトの名無しさん
2009/04/25(土) 02:33:260174デフォルトの名無しさん
2009/04/25(土) 02:48:12[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適当
#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あと数分で1つ出てくる筈
その後5分程度でもう一本
さすがにその後は出来てても揚げないみたいだけど
0177デフォルトの名無しさん
2009/04/25(土) 03:00:43C語通訳クンの競争は激しいねw
プロトコル位作りゃいいのに
0178デフォルトの名無しさん
2009/04/25(土) 03:03:59最小公倍数=x×y÷(x,yの最大公約数)
0179174
2009/04/25(土) 03:38:06ありがとうございます。
0180174
2009/04/25(土) 03:44:130181デフォルトの名無しさん
2009/04/25(土) 04:12:510182デフォルトの名無しさん
2009/04/25(土) 09:45:55#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#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むしろしばらくたっても誰も答えないような難易度の高い問題をさくっと解くほうがかっこいいですねえ。
>>54 とか
0185デフォルトの名無しさん
2009/04/25(土) 16:10:02[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)が意味不明です。よろしくお願いします。
0186185
2009/04/25(土) 16:13:44(1)は構造体の定義の後、メイン関数の前に
helloworld x;
と実際に使う必要がありました。
0187デフォルトの名無しさん
2009/04/25(土) 16:59:11[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:53std::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:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9081.txt
・・・遅かった^^;
0190デフォルトの名無しさん
2009/04/25(土) 18:35:40#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;
}
0192デフォルトの名無しさん
2009/04/25(土) 23:36:48[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[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(a) i % 3 == 0 || 30 <= i && i <= 39 || (i % 10) == 3
(b) i % 5 == 0
0195デフォルトの名無しさん
2009/04/26(日) 00:25:22#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:51http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9088.zip
・とりあえず動いてρ<1.0の時なら ̄Nが大体一致した。
・途中で飽きてコメントがいい加減になってる。
・シミュレータの正当性については理論値との誤差率を出すとかして自分で調べてくれ。
(理論値の公式はググってみてもよくわからなかった。)
0197デフォルトの名無しさん
2009/04/26(日) 09:10:18[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ありがとうございます!
すいません、
サーバの平均の処理時間を1で正規化して、これを基準とした相対的な時間を用いる仕様にして欲しいのですが、無理でしょうか?
0200デフォルトの名無しさん
2009/04/26(日) 11:37:13おまんこおーぷん
もしヌルヌルなら
おちんちん
0201デフォルトの名無しさん
2009/04/26(日) 12:17:069084.txtだけ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9092.txt
0203デフォルトの名無しさん
2009/04/26(日) 13:26:37よく言っている意味がわからないんだけど、
arrivalRate /= serviceRate;
serviceRate = 1.0;
じゃだめなの?
0204デフォルトの名無しさん
2009/04/26(日) 15:36:40シミュレーション時間の単位のことです。
実際の物理的な時間単位(sec等)でもよいが、>>199であるような仕様にしたほうがよいと書いてあるので・・
0205デフォルトの名無しさん
2009/04/26(日) 16:52:5030 <= i && i <= 39よりも、
( i / 10 ) == 3
がよさげ。
0206デフォルトの名無しさん
2009/04/26(日) 16:55:17[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/* 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キチンと動きました。!!
本当にありがとうございます!!。
0209デフォルトの名無しさん
2009/04/26(日) 17:54:50[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:44int 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:59int 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#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どれもきちんと正常に動きました。
本当に皆さんありがとうございます。助かりました!!
0215デフォルトの名無しさん
2009/04/26(日) 20:09:19[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問です。いずれも長いソースコードとなっています。
どうかよろしくお願いいたします。
0217デフォルトの名無しさん
2009/04/26(日) 21:45:560218デフォルトの名無しさん
2009/04/26(日) 22:17:329085.txt
> append 関数を直接呼び出せば実装は容易である
ってあるけど、配列で実装して構わないんだよね?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9093.txt
0219デフォルトの名無しさん
2009/04/26(日) 22:22:251-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 >>=
0222デフォルトの名無しさん
2009/04/27(月) 00:08:05リストによる実装
>>201氏のロジックを借用している
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9094.txt
0223デフォルトの名無しさん
2009/04/27(月) 00:21:15MAXENTは3として欲しい。わざわざ4にした理由がわからん
#define MAXENT 4 /* 最大3個の要素が入る待ち行列*/
/* テストのためわざと小さい大きさにしている */
int x[MAXENT-1]; /* 待ち行列用の配列の宣言 */
0224193
2009/04/27(月) 00:33:20申し訳ありません。
ただ自分が作った問題ではないのでなんとも言えないのですが。
>>201 >>218 >>222 >223
皆さん大変ありがとうございました。
これからは自分で作れるように努力したいと思います。
0225デフォルトの名無しさん
2009/04/27(月) 03:04:24[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[2] 問題文(含コード&リンク):
nCrを計算するプログラムを,(再帰的呼び出しを用いずに)作成せよ.但し,nは0以上5以下とする
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C
[4] 期限: 早ければ早いほどいいが、無期限
[5] その他の制限: 初心者
0227デフォルトの名無しさん
2009/04/27(月) 14:04:44joyful/img/9097.c
・・・ここまで書いて、条件を満たしてないことに気づいた。
ま、まぁ、参考までに。
0228デフォルトの名無しさん
2009/04/27(月) 14:07:43http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9098.c
0229デフォルトの名無しさん
2009/04/27(月) 14:33:46http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9097.c
0231デフォルトの名無しさん
2009/04/27(月) 15:13:29問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[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そのまま文字列表示しちゃってもいいのか?w
0234デフォルトの名無しさん
2009/04/27(月) 16:51:09#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#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問2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9100.txt
0237デフォルトの名無しさん
2009/04/27(月) 17:31:27問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:310240デフォルトの名無しさん
2009/04/27(月) 18:20:371.0にならずに0.9999999とかになるんじゃなかったっけ。
0241デフォルトの名無しさん
2009/04/27(月) 18:43:392にならない。
0242デフォルトの名無しさん
2009/04/27(月) 18:51:33とか1/2^nであらわせる数なら誤差は出ない
0243デフォルトの名無しさん
2009/04/27(月) 18:54:27にすれば1.0じゃないのがわかる
0244デフォルトの名無しさん
2009/04/27(月) 19:04:50http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9102.txt
0245デフォルトの名無しさん
2009/04/27(月) 19:14:290246デフォルトの名無しさん
2009/04/27(月) 19:19:23[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それは実装系依存(FLT_RADIX依存?)。
238は環境を提示していないので、239以上のことは言えんと思う。
0248デフォルトの名無しさん
2009/04/27(月) 19:45:28但し,nは0以上5以下とする
>>227 >>228 >>244
n にC言語側で制限つける必要ある?
0249デフォルトの名無しさん
2009/04/27(月) 21:25:359086.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自分が言いたかったことを示したら?コードでおk。
0251デフォルトの名無しさん
2009/04/27(月) 22:01:11> C言語側で制限つける
ユーザが0から5の間で入力すれば良いと言いたいのか?
それならそれで良いんだが。ただ、入力できる数は何も0から5の間に
限ったことではないんでね。
0252デフォルトの名無しさん
2009/04/27(月) 22:13:03■ このスレッドは過去ログ倉庫に格納されています