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

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

■ このスレッドは過去ログ倉庫に格納されています
0001ぼるじょあ ◆yBEncckFOU 2006/12/10(日) 11:33:41
(・3・)エェー ぼるじょあです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++の宿題を片づけますYO! 66代目
http://pc8.2ch.net/test/read.cgi/tech/1149349035/
0053デフォルトの名無しさんNGNG?2BP(202)
>>52
>>39-40
0054デフォルトの名無しさん2006/12/14(木) 11:42:51
char*とcharを比較してるってこと?
0055デフォルトの名無しさん2006/12/14(木) 12:16:37
[1] 授業単元:コンピュータ・サイエンス
[2] 問題文(含コード&リンク): テキストファイル「myfile.txt」を読み込み、文末にcinで入力した文字列を書き足すプログラムを作成せよ
[3] 環境
 [3.1] OS:Windowsxp
 [3.2] コンパイラ名とバージョン:BCC
 [3.3] 言語: C++優先だがどちらでもOK
[4] 期限: 2006年12月16日
[5] その他の制限:なし
0056デフォルトの名無しさん2006/12/14(木) 12:33:02
>>53
char* ptr に対して if( ! ptr ) が気に食わんのかなぁ。
だとすると >>40 が意味不明なんだが。
『NULLが非0の可能性も有る』って書いてくれれば『そんな環境は今のところは無い』って
答えるんだけど。
そもそもNULLを非0にするご利益が浮かばないんだよなぁ...

>>54
char* と char を比較してる?
0057デフォルトの名無しさん2006/12/14(木) 12:37:02
>>55
読み込む必要無いんじゃない?
fopen( path, "at" ) で開いて入力した文字列を書き込めば良いだけだと思うけど。
0058デフォルトの名無しさん2006/12/14(木) 13:19:18
>>57
ofstreamを使用しても同じことはできますか?
0059デフォルトの名無しさん2006/12/14(木) 14:12:39
>>55
#include <iostream>
#include <fstream>
#include <string>

int main()
{
using namespace std;

const char* file_name = "myfile.txt";

//追加書き込みモード+シーク可能状態でファイルオープン
ofstream out(file_name, ios_base::out | ios_base::ate);
if (!out.is_open()) {
out.open(file_name); //ファイルが見当たらない場合は新規作成
if (!out.is_open()) {
cerr << "Can't open txt file¥n";
return 1;
}
}
string s;
cin >> s;
out << s;

return 0;
}


ぼるじょあさんがんばれ
0060デフォルトの名無しさん2006/12/14(木) 17:49:34
>>56
みんなが突っ込んでるのは、>>39だと思うよ。
ptr !='\0'
↑
これ、ptrがcharじゃなきゃ成り立たなくない?
ptr[0]ならわかるけど。
0061デフォルトの名無しさん2006/12/14(木) 18:13:55
>>39
もしかして'\0'とNULLって必ず同じなの?
>>60
自分もそう思ったけど・・。
0062デフォルトの名無しさん2006/12/14(木) 19:58:13
'\0' = ナル文字 = すべてのビットが0のバイト
0063デフォルトの名無しさん2006/12/14(木) 21:02:35
「ゼロと評価される汎整数定数式を空ポインタ定数と呼ぶ。」 (JIS X 3014:2003 4.10)
X 3010:2003 6.3.2.3にもほぼ同じような規定がある。
ただしこちらはそれをvoid*にキャストした式も空ポインタ定数に含めている。

'\0'はCではint、C++ではcharになるが共に整数型であることに変わりはなく、
ptr !='\0'はptrがポインタ型でもptrがヌルポインタか比較する有効な式になる。
0064デフォルトの名無しさん2006/12/14(木) 21:31:53
ナルポど
006537=41=51=562006/12/14(木) 22:19:46
>>60
>>37 に対するレスだと思ってた。
>>39 俺じゃねぇし...
そもそも if( ! ptr ) を if( ptr != '\0' ) じゃ動作が反対じゃん。
ちゃんとアンカー付けなよ。話が噛み合わない。
0066デフォルトの名無しさん2006/12/14(木) 22:50:42
つまり、プログラムも2chのレスも紛らわしい書き方はやめよう、ということだな。
0067デフォルトの名無しさん2006/12/15(金) 01:21:52
分からなかった奴はこれくらい読もう。
http://www.kouno.jp/home/c_faq/c5.html
0068602006/12/15(金) 02:48:19
>>63
一つ賢くなった。ありがとう。
ポインターと'\0'の比較って、出来るんだね。

>>65
そんな愚痴、俺に言われても困るがな(´・ω・`)
二度目以降の書き込みから、名前欄に最初のレス番入れときゃ済んだ話でしょ。
突っ込み入れてんのも、一人じゃないだろうしさ。
俺も、60がここでの初書き込み。
>>39-40の流れは、どうみても40は39へのレスでしょ。どの書き込みへのレスだと、思い込んだの?
0069デフォルトの名無しさん2006/12/15(金) 09:58:39
結局!ptrはスタイルの違いだけかよ
わかりずらいような箇所はコメントつけてるつーの
0070デフォルトの名無しさん2006/12/15(金) 11:05:11
[1]授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
1)直線回帰の式を導出せよ。
2)決定係数の式を導出せよ。
3)1)の式を用いて「汎用性の高い直線回帰を行うプログラム」を開発せよ。
4)3)で開発したプログラムに2)の決定係数を算出する式を加えよ。
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: gcc3.4
 [3.3] 言語:C
[4] 期限: 2006.12.18
[5] その他の制限: とくになし


お手数かもしれませんが、よろしくお願いします・・・!

0071デフォルトの名無しさん2006/12/15(金) 11:34:30
>>69
Lvの低い厨房が他人を見下したくて因縁つけてるんだ。
だから、気にするな。
0072 ◆jrVK/pjl0Q 2006/12/15(金) 11:41:31
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):√xの定積分(積分範囲0〜1)をモンテカルロ法を用いて
計算せよ。ただし、生成点数が10万点と1千万点の場合について計算する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 2.96
 [3.3] 言語: C
[4] 期限: 2006年12月18日
[5] その他の制限: とくにありません

よろしくお願いいたします。
0073デフォルトの名無しさん2006/12/15(金) 11:42:07
>>70
直線回帰でもN次式回帰でも普通は最小二乗法を使うと思う。
仕事で書いたことあるけど手元にソース無いし、ちょこちょこって書ける量でもないよ。
決定係数は知らん。

多分、回答は期待できないと思う。
最小二乗法はここにソース付きの説明があるから参考にしたら?

ttp://homepage3.nifty.com/ishidate/vcpp6_19/vcpp6_19.htm
0074デフォルトの名無しさん2006/12/15(金) 12:11:58
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 宝くじの抽選番号のあたり調べをし結果を表示するプログラムを作成
最初に当選番号を入力し、買った宝くじの番号を入力しあたりかはずれか表示する
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 来週の月曜日
[5] その他の制限: ・バラ・連番より選択可にする
・連番の場合先頭の番号を入力するだけにする
・枚数チェック、文字チェックを行う。数字以外は入力できないようにする
・上位の等が当たったら下位の等は当たらない
・繰り返し入力できるように何かキーを入力したら終了できるようにする
・買った宝くじは何度でも入力できるようにする
0075ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:05:37
>>48
(・3・) エェー さすがhomoじょあ氏、大人の対応だお
          ちなみにもいらはガキみたいにいろいろ文句行ってみたお
>>49
何で?

0076ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:06:46
(・3・) エェー ところで再帰の使い方(使い道)を知らない、または
          使えないプログラマは多いみたいだね
          



          ・・・まじですか
0077ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:11:29
(・3・) エェー 漸近式をまんまプログラムに起こせるから普通に使うけどね
          まあ家庭狂死していたころに数学教えていた合間の休憩で
          自称学生プログラマにソース見せたら悩んでいたおw

          というか再帰使わないで漸近式をコンピュータプログラムにした方が
          わかりにくいと思うお
0078デフォルトの名無しさん2006/12/15(金) 21:18:14
>75
>あんまり大きい数字は入れないでね
75≠76だよな?
じゃなきゃ76の発言は冗談にしかならんぞ。
0079ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:33:27
(・3・) エェー はっきり家よぼけ
0080ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:35:24
(・3・) エェー ああ、理解した
          そりゃまああまり大きな数字はだめなのは当然のことだお
          文句言うならはっきり言おうね〜ぼくぅ
          何て煽ってみたりするわけですが
0081ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:38:27
(・3・) エェー 新しい部下(といっても派遣社員だが)が入ってきたお
          ぷータン似で顔だけでなく勝ち気な性格も似てるお
          横顔(というよりちょっと正面向きの)がとてもかわいく
          口が少女のようにぷっくりふくらんでいて首に巻いたスカーフが
          愛らしいお
0082ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 21:39:01
失礼、レスする場所を間違えたお
0083デフォルトの名無しさん2006/12/15(金) 21:49:48
ぼるじょあ語とVIP語が混ざりすぎだろ
0084デフォルトの名無しさん2006/12/15(金) 22:11:50
フィボナッチは再帰を使うべきでないかなり有名な事例だと思ったけど、そうでもないのか?
>79
使うべき所とそうでない所がわかってないと、再帰の使い方がわかってるとは言えない。
それぐらいなら全く使わない方がまし。
0085ぼるじょあ ◆yBEncckFOU 2006/12/15(金) 22:43:29
 〃∩∧_∧
⊂⌒( ・3・)  はいはいフィボナッチ博士フィボナッチ博士
 `ヽ_っ⌒/⌒c
    ⌒ ⌒

  ∧_∧
⊂(# ・3・)   うざいしみんなの迷惑だから他所でやれお!!
 /   ノ∪
 し―-J |l| |
         人ペシッ!!
       __
0086デフォルトの名無しさん2006/12/16(土) 08:46:58
フィボなんかどうでもいい
はい、次の質問どうぞ
0087デフォルトの名無しさん2006/12/16(土) 16:20:30
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3200.txt

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: visual studio2003
 [3.3] 言語: C
[4] 期限: 12月19日
[5] その他の制限: 特になし
分からなくて焦ってます。
0088homoじょあ ◆5OLf4yFnuM 2006/12/16(土) 19:14:17
>>87
(・3・) エェー http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3201.txt
0089ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 20:18:45
(・3・) エェー homoじょあ氏のプログラムに反吐が出そうだったので
          書き直してやったお
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3202.txt
          まだ少しだけむかむかするけどまあ多少は落ち着いてきたお
0090homoじょあ ◆5OLf4yFnuM 2006/12/16(土) 20:35:16
(●・3・●) エェー 吐くのはあんまり体に良くないYO
0091ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 20:40:52
(・3・) エェー おたふく風邪かお
0092homoじょあ ◆5OLf4yFnuM 2006/12/16(土) 20:50:33
(・3・) エェー ちょっと気に入っちゃっただけですお
0093デフォルトの名無しさん2006/12/16(土) 21:03:12
>>88
ありがとうございます。助かりました。
0094ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 21:17:36
(・3・) エェー もいらに例はなしかお
          ふざけんな
0095デフォルトの名無しさん2006/12/16(土) 21:30:43
(・3・) カンマ編集は?もいら風邪ひいた...
0096デフォルトの名無しさん2006/12/16(土) 21:32:15
>>95
中途半端な名無しだなw
0097デフォルトの名無しさん2006/12/16(土) 21:49:46
int comma_format(long value, char *buf)
{
long value_abs, value_div;

value_abs=abs(value);
for(value_div=1;value_abs/value_div>=1000;value_div*=1000)
;
sprintf(buf, "%ld", value/value_div);
for(value_div/=1000;value_div>0;value_div/=1000)
sprintf(buf, "%s,%03ld", buf, (value_abs/value_div)%1000);

return 1;
}
0098ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 22:09:13
┐(´3`)┌ エェー >>97きみの混乱具合が伺えるお
            もう少しシンプルにできんかね、これはキミへの課題だお
            明日の20時頃に股来るからそれまでにちゃんと第2版作っておけお
            もいらは彼女の看護で疲れたから美少女便器2でも見ながら寝るお
0099デフォルトの名無しさん2006/12/16(土) 23:19:30
>>94
ごめんなさい。もちろん>>95さんにも感謝してます。
アンカーつけ忘れorz
0100ぼるじょあ ◆yBEncckFOU 2006/12/16(土) 23:28:29
(・3・) エェー 100
0101デフォルトの名無しさん2006/12/16(土) 23:59:43
int comma_format(long value, char *buf)
{
char temp[20];
int i, temp_len;

if(value<0) *buf++='-';
sprintf(temp, "%ld", labs(value));
temp_len=strlen(temp);
for(i=0;i<temp_len;i++)
{
*buf++=temp[i];
if((temp_len-i)%3==1)
*buf++=',';
}
buf[-1]='\0';

return 1;
}
0102デフォルトの名無しさん2006/12/17(日) 00:43:59
>>100
あ、今度は100ゲトしてる。おめでとう。
0103ぼるじょあ ◆yBEncckFOU 2006/12/17(日) 10:12:40
(・3・) エェー 100だけじゃなく次も1000狙うお
          >>101きみの混乱具合が伺えるお
          *(buf-1)に'\0'を入れる理由を答えろお
          comma_format()呼び出し元に特殊な引数渡しを要求する仕様かお?
          もう少しわかりやすい仕様で作り直すよう希望するお
0104デフォルトの名無しさん2006/12/17(日) 10:17:14
int main(void){
char buf[20];

comma_format(1000, buf);
printf("%s\n", buf);

return 0;
}
0105デフォルトの名無しさん2006/12/17(日) 10:27:01
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * addStringFromIntWithComma(char * buf, int val)
{
char * p;
if (val < 0) {
p = strchr(buf, '\0');
p[0] = '-'; p[1] = '\0';
return addStringFromIntWithComma(buf, -val);
}
if (val >= 1000) {
p = addStringFromIntWithComma(buf, val / 1000);
return p + sprintf(p, ",%03d", val % 1000);
}
p = strchr(buf, '\0');
return p + sprintf(p, "%d", val);
}
void putStringFromIntWithComma(char * buf, int val)
{
buf[0] = '\0'; addStringFromIntWithComma(buf, val);
}
int main(int argc, char **argv)
{
if (argc > 1) {
char buf[100];
putStringFromIntWithComma(buf, atoi(argv[1])); puts(buf);
}
return 0;
}

0106デフォルトの名無しさん2006/12/17(日) 18:11:11
問題:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3204.txt
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3207.txt
 OS:Windows
言語:C/C++どちらでも可
期限:12月20日
この2問がどうしてもわかりません、よろしくお願いします。
0107デフォルトの名無しさん2006/12/17(日) 18:37:32
[1] 授業単元: プログラミング
[2] (1) 0 が入力されるまで正整数を読み込み、最大値、(最後の0 を除いた)最小値、全入力数値の平均(最
後の0 を含めず) を出力するプログラムを作りなさい。
(2) 正整数を入力し、それをローマ数字で表示するプログラムを作りなさい。
例: 1 I
3 III
4 IIII (またはIV)
5 V
12 XII
46 XXXXVI
73 LXXIII
111 CXI
378 CCCLXXVIII
521 DXXI
1001 MI

[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 月曜日
[5] その他の制限:できるだけ簡単で理解できるやつをおねがいします。
0108homoじょあ ◆5OLf4yFnuM 2006/12/17(日) 19:15:46
>>106
(・3・) エェー http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3211.txt
0109デフォルトの名無しさん2006/12/17(日) 19:26:27
>>107 (2)番だけ
#include<stdio.h>
typedef struct tag_roman_number{
 char *symbol;
 int value;
}roman_number;
void print_roman_number(int value){
 roman_number num_list[]={
      {"M", 1000},
      {"D", 500},
      {"C", 100},
      {"L", 50},
      {"X", 10},
      {"V", 5},
      {"I", 1},
     };
 int i;
 for(i=0;i<(sizeof(num_list)/sizeof(num_list[0]));i++){
  while(value>=num_list[i].value){
   printf("%s", num_list[i].symbol);
   value-=num_list[i].value;
  }
 }
}
int main(int argc, char *argv[]){
 int i;
 for(i=1;i<argc;i++)
  print_roman_number(atoi(argv[i])),printf("\n");
 return 0;
}
01101092006/12/17(日) 19:31:55
>>107
>>109 を下のとおり変更してね
      {"V", 5},
      {"I", 1},
↓
      {"V", 5},
      {"IV", 4},
      {"I", 1},
0111デフォルトの名無しさん2006/12/17(日) 19:36:33
>>109
ぼるじょあになってみては?
スレタイもそうなってるし
0112デフォルトの名無しさん2006/12/17(日) 19:41:49
お前モナ
0113デフォルトの名無しさん2006/12/17(日) 19:42:13
>>109
難しいです
簡単なやつじゃないとわかりません
0114デフォルトの名無しさん2006/12/17(日) 19:42:20
王
0115デフォルトの名無しさん2006/12/17(日) 19:43:05
割り込まれた王(^ω^;)
0116homoじょあ ◆5OLf4yFnuM 2006/12/17(日) 19:50:10
>>106
(・3・) エェー http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3213.txt
01171092006/12/17(日) 19:58:09
分かりやすく書いたつもりだったのに…orz

どこが分からないのか教えて
0118デフォルトの名無しさん2006/12/17(日) 20:16:18
>>117
ほんとにほとんどわかりません、、、
出来れば説明を右につけてください、、
01191092006/12/17(日) 21:41:44
構造体を使ったのがマズかった
気が向いたら別解でも考えるよ
0120デフォルトの名無しさん2006/12/17(日) 21:45:07
>>119
是非おねがいします
0121ぼるじょあ ◆yBEncckFOU 2006/12/17(日) 21:45:55
(・3・) エェー >>109くんがわかりにくいと言われているのは
          for文の条件や関数の引数のなかでごちゃごちゃ計算したり
          さらには冗長な変数名が拍車をかけているんだお
          そこんところをちゃんと理解してね
0122ぼるじょあ ◆yBEncckFOU 2006/12/17(日) 21:48:55
(・3・) エェー 例を挙げるとこことかね

 for(i=0;i<(sizeof(num_list)/sizeof(num_list[0]));i++){

  print_roman_number(atoi(argv[i])),printf("\n");


          特にfor文の条件で変化しないと分かっているのであれば
          sizeof()はあらかじめ計算してメモリにおいておくべきだお
          何で毎回計算する必要があるの?
          処理速度云々言うつもりはないけど毎回計算する必要はあるの?
          わかりにくいよ

          よって3点
0123ぼるじょあ ◆yBEncckFOU 2006/12/17(日) 21:52:10
(・3・) エェー もいらが回答してやれそうな問題けっこうあったみたいだけど
          homoじょあ氏と名無し氏が回答してくれたみたいでまたまた
          もいらの出番が無かったお
          そろそろ風呂入ってアナル破壊3でも見ながら寝るお
0124デフォルトの名無しさん2006/12/17(日) 22:01:37
>>123
>>107 の一番、二番があるよ
0125デフォルトの名無しさん2006/12/17(日) 22:01:37
>>119
ぜっ是非おねがいします
留年がかかってます(笑
0126デフォルトの名無しさん2006/12/17(日) 22:13:58
留年がかかってるのか。
そりゃぁいい。
留年してしまえ。
0127デフォルトの名無しさん2006/12/17(日) 22:32:05
>>107 (1)番
#include<stdio.h>
int main(void){
int number, maximum, minimum, count, total=0;
for(count=0;;count++){
printf("自然数を入力してください (0で終了):");
scanf("%d", &number);
if(number<=0) break;
if(count==0){
maximum=number;
minimum=number;
}
if(number>maximum) maximum=number;
if(number<minimum) minimum=number;
total+=number;
}
if(count==0) return 1;
printf("最大値:%d\n", maximum);
printf("最小値:%d\n", minimum);
printf("平均値:%f\n", (double)total/count);
return 0;
}
0128デフォルトの名無しさん2006/12/17(日) 22:52:27
if(number>maximum) maximum=number;
if(number<minimum) minimum=number;
total+=number;
}
if(count==0) return 1;

この辺をご説明ねがえませんでしょうか?

あと
printf("平均値:%f\n", (double)total/count)
は何を表しているのでしょうか?
0129デフォルトの名無しさん2006/12/18(月) 00:21:29
>>128
>if(number>maximum) maximum=number;
numberがmaximumよりも大きければnumberをmaximumに代入。
つまり最大値を得る。
>if(number<minimum) minimum=number;
これは最小値を得る。
>total+=number;
totalにnumberを加算する。つまり入力された数の合計を求める。
>if(count==0) return 1;
正数が全然入力されずにいきなり0が入力されたら
最大値も最小値も平均も求められないのでプログラムを終了する。
>printf("平均値:%f\n", (double)total/count)
画面に平均値を表示する。
%fはこの部分を平均値の数字(小数)で置き換えるって意味。
>(double)total/count
これはtotal(整数しか扱えない型)を小数を扱える型に変換して入力された数の個数で割る。
0130デフォルトの名無しさん2006/12/18(月) 00:25:13
if(number>maximum) maximum=number; ←入力した数値が今までの最大値よりも大きいとき最大値を更新する
if(number<minimum) minimum=number; ←入力した数値が今までの最小値よりも小さいとき最小値を更新する
total+=number; ←入力した数値の総和を計算する
}
if(count==0) return 1; ←自然数が一回も入力されていなかったら途中で終了する

count は自然数を入力した回数
(平均)=(数値の総和) / (数値の個数)

あと、留年は避けられないかも
0131デフォルトの名無しさん2006/12/18(月) 00:45:17
>>129>>130
ありがとうございます

留年は避けられないかも 
その一言かなりくらいました

二問目わかりやすくおねがいします、、、
0132デフォルトの名無しさん2006/12/18(月) 02:26:37
>131
これならわかるか?
#include <stdio.h>
int main(void)
{
int i, j, n;
char roman[7] = {'M','D','C','L','X','V','I'};
int num[7] = {1000, 500, 100, 50, 10, 5, 1};
scanf("%d", &n);

for(i=0; n; i++) {
for(j=0; j<n/num[i]; j++) putchar(roman[i]);
n %= num[i];
}
return 0;
}
0133デフォルトの名無しさん2006/12/18(月) 02:37:33
>>132
一応横に説明つけてもらえませんか^^;
0134デフォルトの名無しさん2006/12/18(月) 02:38:48
>>133
まず自分でつけてみてよ。
間違ってれば教えてあげるからさ。
0135デフォルトの名無しさん2006/12/18(月) 02:53:13
>>134
すみません
やってみます

#include <stdio.h>                 おまじない
int main(void)                     void?
{
int i, j, n;                          箱を用意する
char roman[7] = {'M','D','C','L','X','V','I'};           ローマ字を用意する?
int num[7] = {1000, 500, 100, 50, 10, 5, 1};        num?七つの数字を用意する?
scanf("%d", &n);                        nを読み込む

for(i=0; n; i++) {                        iを0から1ずつふやして
for(j=0; j<n/num[i]; j++) putchar(roman[i]);       その時jを1つずつ増やして、、putcharがわかりません
n %= num[i];                          nをnum[i]で割った余りをまた戻す?
}
return 0;
}
0136デフォルトの名無しさん2006/12/18(月) 03:14:43
>>135
>>132ではないけど
putchar()は()の中の一文字を出力してる
あとはおk?
0137デフォルトの名無しさん2006/12/18(月) 03:28:02
ローマ数字の 9 って IX って書かない?
0138デフォルトの名無しさん2006/12/18(月) 12:51:54
>>135
その「おまじない」はscanfやputcharを使えるようにするためのもの。
そのおまじないを書けばこれら↓の関数が使えるようになる。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/stdio.3.html

>int main(void)
このvoidは関数の引数が無いという意味。
この関数を呼び出すときにパラメータを設定しない。
0139デフォルトの名無しさん2006/12/18(月) 15:05:27
[2] 今現在、縦シューのようなもので敵の座標を入力して、
   迎撃可能か不能かを求めるところまで行きました。そのプログラムを拡張して
   どの道を使ったら最大点数を取れるのかを出力させるような(最大経路)
   プログラムにしたいのですがご指摘願います。
   敵の得点はすべておなじで各1点です
   ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3217.txt
[3] 環境
 [3.1] XP
 [3.2] Borland C++ Compiler 5.5
 [3.3] C
[4] 3日以内
0140デフォルトの名無しさん2006/12/18(月) 16:01:33
[1]プログラミング演習
[2]次に示すデータに関して以下の計算を行え
              一次式に当てはめてその式を示す。同時に2乗累積誤差Eを求める。
              二次式に当てはめ上と同じことを行う。
[3.1]Windows
[3.2]bcc32
[3.3]どちらでも可
[4]2006年12月22日
[5]ガウスジョルダン法を用いて計算する。

x -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6
y 13.4, 7.2, 2.7, 1.2, 0.6, 3.1, 6.9, 12.5, 20.8, 31.7, 44.0
0141homoじょあ ◆5OLf4yFnuM 2006/12/18(月) 21:17:13
(・3・) エェー 両方とも意味がわからないからできないYO
          最大経路の意味がわからないYO
          xとyの数値をどう1次式、2次式にするのかわからないYO
0142デフォルトの名無しさん2006/12/18(月) 22:03:56
>>140
>>70 も同じ内容の要件だ。最小二乗法は 70 レスおきに発生するのか?
>>73 で書いたけどそれ大変だからここでは回答を得られないと思うぞ。
ここ見てる暇があったらググれ。サンプルソースも見つかると思うぞ。
0143デフォルトの名無しさん2006/12/18(月) 23:30:53
>>107 (1)番
#include <stdio.h>
なんとなくif文とbreak文削ったの作ってみた。
他意はない。

int main(void)
{
int i=0,min=0,max=0,count=-1;
double sum=0;
do{
sum += i;/*sum=sum+iと同じ sumには入力された整数の合計を入れておく*/
if(i<min) min=i; /*もし、minよりもiが小さかったら、minにiの値を代入 */
if(i>max) max=i;/* 上の逆版 */
scanf("%d",&i);/*数値を読み込む*/
count++;/*count = count+1と同じ 何回目の入力かを数えておく(平均値を出すため)*/
}while(i);/*読み込んだ値が0でなければ続ける */
printf("最大値=%d 最小値=%d 平均値=%lf\n",max,min,sum/count);
return 0;

}
0144シロート2006/12/18(月) 23:36:08
すみません、板違いかも知れませんが分かる方教えてください。
私、最近仕事でpicを多少触るようになったのですが、
書き込み済みのデータをプロテクトだけする方法ってございますか?
仕事上1日何百という基板を検査し、
出荷しておりますが、その基板のpicにプロテクトをかけて
出荷しなければなりません。が、オペレータが聞き込みの際に
プロテクトなしで書き込みを行ってしまって動作検査へ進んでしまいました。
今からプロテクトありで書き込んでいたら動作検査手番上出荷に間に合いません。
中データはそのままにプロテクトだけ書き込む事は不可能でしょうか?
データをそのままにプロテクトだけかける事が出来れば、再動作検査は
免れます。同一データをプロテクトありで書き込むのが一番簡単な方法
かもしれませんが、データを書き込んだら書き込み不良を防ぐため、
必ずべリファイで確認し、その後動作検査をしなくてはなりません。
どなたか助けてください。
0145デフォルトの名無しさん2006/12/19(火) 00:03:46
>>144
picってこれの事?
http://www.hobby-elec.org/pic.htm
0146デフォルトの名無しさん2006/12/19(火) 00:18:24
っぽいね
アセンブラスレか、ハード板のほうが良いような気もするが。
0147デフォルトの名無しさん2006/12/19(火) 02:44:05
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3223.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2003
 [3.3] 言語: C
[4] 期限: 12月21日
[5]特になし

0148デフォルトの名無しさん2006/12/19(火) 03:09:00
1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):ラプラシアンフィルターを実現させる関数laplacianを作成せよ
void laplacian (int data[][Y_SIZE][3],int width,int height);
また、3点を与えると三角形を描く関数riangleを作成せよ。y1<y2<y3と仮定してよい
void triangle(int data[][Y_SIZE][3],int x1,int y1,int x2,int y2,int x3,int y3); main関数を以下のようにせよ
void main{
int image [X_SIZE][Y_SIZE][3]; init_image(image,X_SIZE,Y_SIZE);
triangle(int image[][Y_SIZE][3],64,5,120,30,20,100);
save_bmp("temp1.bmp",image,X_SIZE,Y_SIZE); laplacian(image,X_SIZE,Y_SIZE); save_bmp("test2.bmp",image,X_SIZE,Y_SIZE); }
[3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C++
[4] 期限:12月22日
01491392006/12/19(火) 14:25:49
>>最大経路の意味がわからないYO
一番得点が高くなる経路です(迎撃可能→迎撃可能な道を通って)
”最大の得点が得られる経路”ですね、すみません
まだ不明な点があったらご指摘お願いします
0150452006/12/19(火) 14:38:16
シェーカーソートで昇順に並べるプログラムをおねがいします。後移動回数もわかるやつでお願いします。
0151デフォルトの名無しさん2006/12/19(火) 15:04:06
>>150
テンプラ嫁
0152ぼるじょあ ◆yBEncckFOU 2006/12/19(火) 19:30:27
>>144
(・3・) エェー もうおそいかもしれんけど
          無理に決まってるお
          ちゃんとプロテクトビットはデフォルトONで書き込むようにと
          馬鹿オペレータを躾けようね
■ このスレッドは過去ログ倉庫に格納されています