C/C++の宿題を片付けます 75代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/10/19(木) 20:39:01【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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++の宿題を片付けます 74代目
http://pc8.2ch.net/test/read.cgi/tech/1158844912/
【過去スレ一覧】
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
0552デフォルトの名無しさん
2006/10/31(火) 16:08:03「サーバが見つかりませんでした」と出て問題文が見えないよ
0553デフォルトの名無しさん
2006/10/31(火) 16:11:46>>533 で答え出てる
0554デフォルトの名無しさん
2006/10/31(火) 17:33:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2857.c
0555デフォルトの名無しさん
2006/10/31(火) 17:41:52[2]
the shortest remaining time next (SRTN) job scheduling algorithm.
入力: 0 6
1 1
2 5
2 6
3 2
から以下の実行結果を出力するプログラムのrun_srtn関数を作成しプログラムを完成させよ。
*出力結果
Job 0 Arrival Time 0 Service Time 6
Job 1 Arrival Time 1 Service Time 1
Job 2 Arrival Time 3 Service Time 5
Job 3 Arrival Time 5 Service Time 6
Job 4 Arrival Time 8 Service Time 2
--- Scheduling Statistics ---
JOB # Arr Fin Svc TA
0 0 7 6 7
1 1 2 1 1
2 3 14 5 11
3 5 20 6 15
4 8 10 2 2
*{arr= arrival time, Fin = finish time,Svc =service time,TA= turn around time(finish-arrival_time)}
0556デフォルトの名無しさん
2006/10/31(火) 17:45:05typedef struct job {
int job_id; /* job id */
int arr_time; /* arrival time */
int srv_time; /* service time */
int rem_time; /* remaining time */
int finish; /* finish time */
int turn_around; /* turn around time */
struct job *prev, *next; /* pointer to the previous and next jobs in
the list */
} job;
job *front, *tail; /* front and tail pointers to the job queue */
void append_job();
void remove_job();
void run_srtn();
0557デフォルトの名無しさん
2006/10/31(火) 17:46:59char line[80];
int job_id =0;
int cur_time = 0;
int dat, svt;
job *tmp_job;
/* read delta arrival time and service time from stdin.
Allocate a memory chunk for a 'job' struct, which is pointed to by
tmp_job. Set arr_time and srv_time using the data read from stdin */
while(scanf("%d %d",&dat, &svt) != EOF){
tmp_job = malloc(sizeof(job));
tmp_job->job_id = job_id++;
tmp_job->arr_time = (cur_time + dat);
tmp_job->srv_time = svt;
/* initialized other fields of the job here */
cur_time += dat; /* advance the clock */
printf("Job %d Arrival Time %d Service Time %d\n", tmp_job->job_id,
tmp_job->arr_time, tmp_job->srv_time);
/* append the created job at the end of the list
append_job(tmp_job);*/
}
/* set finish, turn_around for each job in the queue,
and then print the job statistics*/
run_srtn();
/*use the following printf statements to write out the job scheduling
result.*/
printf("--- Scheduling Statistics ---\nJOB #\tArr\tFin\tSvc\t TA\tNTA \n");
printf("%3d\t %3d\t %3d\t %3d\t %3d\n",tmp_job->job_id,tmp_job->arr_time,tmp_job->finish,tmp_job->srv_time,tmp_job->turn_around);
}
0558デフォルトの名無しさん
2006/10/31(火) 17:48:40if( front == NULL ){
front = tmp_job;
tail = tmp_job;
}
else{
tail->next = tmp_job;
tmp_job->prev = tail;
tail = tmp_job;
}
}
void remove_job( job *tmp_job ){
job *l = tmp_job->prev, *n = tmp_job->next;
if( tmp_job == front ){
front = tmp_job->next;
front->prev = NULL;
}
else if( tmp_job == tail ){
tail = tmp_job->prev;
tail->next = NULL;
}
else{
l->next = n;
n->prev = l;
}
free( tmp_job );
}
void run_srtn(void){
}
0559デフォルトの名無しさん
2006/10/31(火) 17:49:57[3.1] OS:Unix
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:今週中
連続カキコ失礼しました。よろしくお願いします。
0560デフォルトの名無しさん
2006/10/31(火) 18:04:59マウスボタンを押したときの時刻じゃないかなと勝手な想像妊娠
0561デフォルトの名無しさん
2006/10/31(火) 18:05:03void append_job( job *tmp_job )
void remove_job( job *tmp_job )
のバグは放っておいておk?仕様?っていうかバグ取りしろってか!
0562デフォルトの名無しさん
2006/10/31(火) 20:13:39バグもあるんですか・・・。
run_srtn関数だけじゃなくプログラム全体を修正する問題みたいです
0563デフォルトの名無しさん
2006/10/31(火) 20:39:010564542
2006/10/31(火) 20:52:41課題は 部屋に3台のスピーカーが左、中、右と配置されています
音は3回出ますが、
真中のスピーカーから2回音が鳴り、3回目で左右どちらか
から音が鳴ります もし左から音がすれば、マウス左ボタンを
右の音なら右ボタンを押します この時、3番目の音と
マウスを押したときの反応時間を出す課題です
どなたか分かりますか? おそらく、プロシージャーを
変えると出来る?と思うのですが。。。よろしくお願いします
0565デフォルトの名無しさん
2006/10/31(火) 21:05:54stringのコンストラクタにcharだけを受け取るものがある。
explicitは付いていないのでキャスト演算子も可。
0566デフォルトの名無しさん
2006/10/31(火) 21:11:14音を出す制御は必要無い?もし必要なら適当なダミーの関数いれたほうがいい?
それともマウスボタンをクリックした時刻を記録するだけでおk?どっち?
例.
enum{SPEAKER_CENTER, SPEAKER_RIGHT, SPEAKER_LEFT};
sound(SPEAKER_CENTER);
みたいなのをいれるか?ってこと
クリックのイベントを取るのは適当なウインドウを作って、ウインドウでのイベント取得でいいの?
それともAPIフックして、PCで他の作業中(ワープロ打ちながらとか)であっても反応しないとダメ?
専用のウインドウを作るとしたら全画面?サイズ指定あり?
>>564 の書き方からすると、元になるソースコードがありそうだけどアップロードできない?
0567デフォルトの名無しさん
2006/10/31(火) 21:13:14クラスじゃなくて、stringか何かのメソッドでありますでしょうか?
0568デフォルトの名無しさん
2006/10/31(火) 21:14:210569デフォルトの名無しさん
2006/10/31(火) 21:22:15>>565 氏が書いてあるけど、コンストラクタじゃだめなの?
0570デフォルトの名無しさん
2006/10/31(火) 21:36:36要求定義を聞き出すのって難しい・・・
0571デフォルトの名無しさん
2006/10/31(火) 21:49:27よろしくお願いします。
0572デフォルトの名無しさん
2006/10/31(火) 21:50:58>>1
0573デフォルトの名無しさん
2006/10/31(火) 22:00:15意味がわからんので適当に超解釈を入れて書いた。
もし、超解釈が希望と違ってもめんどいからなおさん。
#include<vector>
#include<iostream>
#include<algorithm>
#include<iterator>
using namespace std;
struct Data{
string name,addr,tel;
int age;
};
istream&operator>>(istream&cin,Data&d){return cin>>d.name>>d.addr>>d.tel>>d.age;}
ostream&operator<<(ostream&cout,const Data&d){return cout<<d.name<<" "<<d.addr<<" "<<d.tel<<" "<<d.age;}
int main(){
vector<Data>a;
copy(istream_iterator<Data>(cin),istream_iterator<Data>(),back_inserter(a));
copy(a.begin(),a.end(),ostream_iterator<Data>(cout,"\n"));
}
0574デフォルトの名無しさん
2006/10/31(火) 22:01:24[2] 問題文(含コード&リンク):STLを用いて、名前、年齢、住所、電話番号を入力、格納、出力ができるプログラムを作れ。(STLは何をしようしてもよい)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC++EE
[3.3] 言語: C++
[4] 期限: 来週の月曜日
[5] その他の制限: STLはvector, list の基本的なことをならいました。クラスは使ってお願いします。
0575デフォルトの名無しさん
2006/10/31(火) 22:29:55入力、格納、出力だけでいいのかな。
iostream 使ったの久しぶりだ…
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2858.txt
0576デフォルトの名無しさん
2006/10/31(火) 23:09:10ありがとうございます!!
これで宿題は完成しました。
感謝☆
0577542
2006/10/31(火) 23:14:13音を出す制御は完成しています。 適当なダミー関数は入れても大丈夫です
三番目の音を基準に0とし、マウスのボタンが押されるまでのわずかな時間です.
>enum{SPEAKER_CENTER, SPEAKER_RIGHT, SPEAKER_LEFT};
>sound(SPEAKER_CENTER);
>クリックのイベントを取るのは適当なウインドウを作って、ウインドウでのイベント取得でいいの?
はい、それで良いです。
>専用のウインドウを作るとしたら全画面?サイズ指定あり?
特に指定はありません。全画面で無くても良いです。マウスでの反応時間
を取っている間はPCは使われない事とします。
実はほぼプログラムは出来ていますが、アップロードのやり方が分かりません
全文載せようとしても文字数オーバーになってしまいます。どうしたらよろしいでしょうか?
説明不足ですがよろしくお願いします Eメールアドレス 載せときます
0578デフォルトの名無しさん
2006/10/31(火) 23:56:35>>574
横スレですが、勉強になりました。
STLが、何なのか分からなかったので一から調べてみました。
コンテナの種類には、複数あってそれぞれに適したクラスが既に用意されているのね。
C++って結構便利なのねぇ。
0579デフォルトの名無しさん
2006/11/01(水) 00:37:08[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2859.txt の実行結果を簡略化
もしくは、別の入力で同様の結果を出す。
[3] 環境
[3.1] OS:MacOSX
[3.2] Xcode
[3.3] 言語: C言語
[4] 期限: 11月1日正午まで
[5] その他の制限: ポインタまでは習っています。それまでの範囲でお願いします。
よろしくお願いします。
0580デフォルトの名無しさん
2006/11/01(水) 01:04:34インデントが汚い。コンパイルすら通らない。コードから何をしたいのか掴むのは不可能。
まずこのコードはどんな動作をして欲しいのか日本語で説明したほうが良い。
0581デフォルトの名無しさん
2006/11/01(水) 01:19:44失礼しました。
問題は0〜360度を18度ずつ進むSinカーブを
アスタリスクで縦に表示するプログラムを作成するものです。
説明下手なので分りにくければ、Sinカーブをアスタリスクで縦に表示するプログラムを作成すると考えて下さい。
よろしくお願いします。
0582デフォルトの名無しさん
2006/11/01(水) 01:20:110583579
2006/11/01(水) 01:31:46プリントをうpできる環境も無いし・・・
大人しく諦めます、お手数お掛けしました。
0584582
2006/11/01(水) 01:36:10ほいこれ・・・ってもういないか。
#include<stdio.h>
#include<math.h>
#define PI 3.14159
#define HABA 40
int main(void)
{
int i, t, x;
char line[HABA + 1];
line[HABA] = '\0';
for (i = 0; i < HABA; ++i)
line[i] = '-';
line[HABA/2] = '+';
puts(line);
for (t = 0; t < 360; t += 18) {
for (i = 0; i < HABA; ++i)
line[i] = ' ';
line[HABA/2] = '|';
x = (int)(HABA/2 * sin(PI * t / 180)) + HABA/2;
line[x] = '*';
puts(line);
}
return 0;
}
0585デフォルトの名無しさん
2006/11/01(水) 02:10:42http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2862.cpp
#include のあたりだけ C++ の表現だけど全然 C++ の意味がない orz
適当に書きなおしてね
0586デフォルトの名無しさん
2006/11/01(水) 04:10:02*
***
*****
******
*****
***
*
***
****
*****
****
***
*
0587デフォルトの名無しさん
2006/11/01(水) 07:09:18[2] 問題文(含コード&リンク):
【与えられた漸化式に基づいて数列の第0項から第N項までの値を表示する。】
【A0 = A1 = 1, An = An-1+An-2 (n≧2のとき) 】
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:よくわかりませんが、Visual Studio2005のC++(Win32)でやってます。
[3.3] 言語:◆ C++ ◆
[4] 期限:11月3日金曜日
[5] その他の制限:どこまで習っているか:習い始めて演習の講義を5時限分経験のみ
よくわかりませんが、
#include <iostream>
using namespace std; から始まるようにと言われています。
0588デフォルトの名無しさん
2006/11/01(水) 07:17:38using namespace std;
int main() {
int N = 10;
int Ax = 1, Ay = 1;
for (int i = 0; i <= N; ++i) {
// Ax = A[i], Ay = A[i+1]
cout << "A[" << i << "] = " << Ax << endl;
int temp = Ax + Ay;
Ax = Ay;
Ay = temp;
}
}
0589デフォルトの名無しさん
2006/11/01(水) 07:30:42#include<iostream>
using namespace std;
#include<vector>
#include<numeric>
#include<functional>
#include<iterator>
#include<algorithm>
template<typename It>It next (It it){return ++it;}
template<typename It>It prior(It it){return --it;}
int main(){
cout << "n? ";int n;cin>>n;
vector<int>a(n+1);
a.front() = 1;
adjacent_difference(a.begin(),prior(a.end()),next(a.begin()),plus<int>());
copy(a.begin(),a.end(),ostream_iterator<int>(cout," "));
cout << endl;
}
0590デフォルトの名無しさん
2006/11/01(水) 08:05:52// A_i
// A_{i-1}
// A_{i-2}
// 添字
// (1) 第0項と第1項の値を求めて表示する。
// (2) 添字iを2から上限値まで1ずつ増やしながら以下の処理を繰り返す。
// (2-1) A_iの値を求めて表示する。
// (2-2) A_{i-1}の値をA_{i-2}に移す。
// (2-3) A_iの値をA_{i-1}に移す。
っていうふうにお願いできますか?
(途中に足りない所があれば自分で追加するようにと言われてます)
0591デフォルトの名無しさん
2006/11/01(水) 08:21:51条件の後だしウゼーーーーーーー
#include<iostream>
#include<boost/numeric/ublas/vector.hpp>
#include<boost/numeric/ublas/matrix.hpp>
#include<boost/numeric/ublas/io.hpp>
using std::cout;using std::cin;using std::endl;
using namespace boost::numeric::ublas;
int main(){
int n=10;
matrix<int>b(2,2);b(0,0) = 0;b(0,1) = b(1,0) = b(1,1) = 1;
matrix<int>c(b);
// A_i
// A_{i-1}
// A_{i-2}
vector<int>a(2);
int i;// 添字
// (1) 第0項と第1項の値を求めて表示する。
a[0]=1;
a[1]=1;
cout << a[0] << endl;
cout << a[1] << endl;
// (2) 添字iを2から上限値まで1ずつ増やしながら以下の処理を繰り返す。
for(i=2;i<=n;++i){
// (2-1) A_iの値を求めて表示する。
// (2-2) A_{i-1}の値をA_{i-2}に移す。
// (2-3) A_iの値をA_{i-1}に移す。
a = prod(a,b);
cout << a[1] << endl;
}
}
0592デフォルトの名無しさん
2006/11/01(水) 08:37:30ありがとうございました。
0593デフォルトの名無しさん
2006/11/01(水) 08:41:130594デフォルトの名無しさん
2006/11/01(水) 09:29:08まあいいか
0595デフォルトの名無しさん
2006/11/01(水) 09:59:110596デフォルトの名無しさん
2006/11/01(水) 11:23:17[2] 問題文(含コード&リンク):waveファイルのヘッダー情報を取得して、表示する。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン:
[3.3] 言語: Microsoft Visual C++ 2005
[4] 期限: 今週中
[5] その他の制限: バイナリで読み込むのだが、そのバイナリの値を表示する必要はないとのこと。
表示するヘッダー情報は、ファイル容量・フォーマット(PCMとか)・チャンネル数・周波数・ビット数です。
0597デフォルトの名無しさん
2006/11/01(水) 11:24:32ダイアログベースMFCです。
0598PIC
2006/11/01(水) 13:22:000599デフォルトの名無しさん
2006/11/01(水) 14:24:58できる*かも*しれない。
メモリは4kまでとか、intは16bitとか色々な制限あると思うんだが…
0600デフォルトの名無しさん
2006/11/01(水) 15:59:23その手の問題は解答がつかない可能性が高いです。
なんせ、ここの人等は
文字列を逆順にしたり、四則演算程度の算数
等、なんの役にも立たないプログラムなら得意ですからねw
0601デフォルトの名無しさん
2006/11/01(水) 16:19:380602デフォルトの名無しさん
2006/11/01(水) 16:23:380603デフォルトの名無しさん
2006/11/01(水) 16:26:090604デフォルトの名無しさん
2006/11/01(水) 17:16:10fread(&wave_info, sizeof(wave_info), 1, fp);
SetDlgItemInt(dlgWnd, dlgItem, wave_info.???, TRUE)
でできるじゃん
Hit&Blow の方が余程面倒だよ
0605291,393 卒論
2006/11/01(水) 17:58:16その節はありがとうございました。
以前の入力データは問題なく行えました。追加で、このようなデータもあるのですが
以下の条件で変更を行いたいのですが。
C-01-0(削除)
001 152.473 179.709 -0.22 -0.12(削除)
002 152.484 179.823 -0.47 -0.36(削除)
002100 -97217.32 111872.02 529.36(先頭が0は削除)
400100 -99483.17 110373.47 576.80
160100 -96582.70 108696.32 364.00
160200 -98327.02 111334.33 311.60
002 152.484 179.823 -0.47 -0.36(削除)
003 152.477 179.754 -0.11 0.04(削除)
002100 -97217.32 111872.02 529.36(先頭0は削除)
400200 -97778.83 110554.77 427.08
160100 -96582.70 108696.32 364.00(数字重複は削除)
/EOF
↓
400100 -99483.17 110373.47 576.80
160100 -96582.70 108696.32 364.00
160200 -98327.02 111334.33 311.60
400200 -97778.83 110554.77 427.08
このようなファイルを作成したのちに、>391 の名前変更ルールでリネームを行った
ファイルを出力したいのですが。
すれ違いですが、すみませんがよろしくお願いします。
0606デフォルトの名無しさん
2006/11/01(水) 18:28:16awk または gawk で
/^[1-9]+.*$/{
if(!($1 in already_print)){
already_print[$1]=1;
}
}
例)a.awkの内容は上記のプログラム通り。余計な改行は入れないこと(動作が変わるので)
gawk -f a.awk a.txt > b.txt
0607デフォルトの名無しさん
2006/11/01(水) 18:33:54その程度のデータ処理なら、>>606みたいにUNIXコマンドを使って処理した方が楽だよ。
0608デフォルトの名無しさん
2006/11/01(水) 18:45:42gawk for win32 http://www.vector.co.jp/soft/win95/util/se015007.html
0609291,393 卒論
2006/11/01(水) 19:04:21のようなプログラムで処理ということはできませんでしょうか?
0610579
2006/11/01(水) 19:14:01そして本当に申し訳ないのですが、>>584さんの作ってくれた
プログラムの実行結果の左側に
コレを↓足していただけないでしょうか?条件の後出しになってしまい申し訳ありません。
角度
0:
18:
36:
54:
72:
90:
108:
126:
144:
162:
180:
198:
216:
234:
252:
270:
288:
306:
324:
342:
360:
0611デフォルトの名無しさん
2006/11/01(水) 19:17:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2863.c
使い方
./a.exe < 入力ファイル > 出力ファイル
例
./a.exe < a.txt > b.txt
なんで C,C++ にこだわるのやら…
0612デフォルトの名無しさん
2006/11/01(水) 19:19:53puts(line);
↓
printf("%3d:%s\n", t, line);
0613579
2006/11/01(水) 19:51:36実行してみたのですが、縦の数値が360まで表示されず
342で止まってしまいます・・・
0614291,393 卒論
2006/11/01(水) 19:54:07ありがとうございます。
すみません。。
0615291,393 卒論
2006/11/01(水) 20:01:03このようなエラーが出る原因はなんでしょうか?
error C2440: '=' : 'void *' から 'struct tag_print_data *' に変換することはできません。(新しい動作 ; ヘルプを参照)
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
あと質問なのですが、>606は同じ結果になるということなんでしょうか?
0616デフォルトの名無しさん
2006/11/01(水) 20:02:45new_member=malloc(sizeof(print_data));
ここでエラーが出ているようなのですが。。
0617デフォルトの名無しさん
2006/11/01(水) 20:03:470618デフォルトの名無しさん
2006/11/01(水) 20:05:21new_member=malloc(sizeof(print_data));
↓
new_member=(print_data*)malloc(sizeof(print_data));
0619デフォルトの名無しさん
2006/11/01(水) 20:09:42宿題というか宿題の一部みたいなもので・・・よろしくお願いします。
0620デフォルトの名無しさん
2006/11/01(水) 20:14:41d[0] および d[1] が 1 か 0 の値しか取らないのであれば、大丈夫。
あとは自分で試せば分かる
0621291,393 卒論
2006/11/01(水) 20:16:33ありがとうございます
0622デフォルトの名無しさん
2006/11/01(水) 20:16:45想定する値にもよるけど。多分無理。
!(~-d[0]|~-d[1]|~-d[2])なら可
0623デフォルトの名無しさん
2006/11/01(水) 20:20:59なるほど。1以外の値もとるんでこういう風にはかけないんですね。てかこういう書き方自体しないみたいですね。
>>622
~ と − の意味がわかりません><
0624291,393 卒論
2006/11/01(水) 20:38:03で作成された↓のデータ。>391と同じ要領でリーネームを行いたい場合、
>392のどこを変えればよいのでしょうか?
400100 -99483.17 110373.47 576.80
160100 -96582.70 108696.32 364.00
160200 -98327.02 111334.33 311.60
160300 -98881.64 112843.92 411.20
160400 -98744.69 112829.23 426.60
400200 -97778.83 110554.77 427.08
0625291,393 卒論
2006/11/01(水) 20:42:03今回は入力データが↓のように変わっていますが、ほかは391と同じ条件です
001(←この行なし)
400100 -99483.17 110373.47 576.80(ここが3列)
160100 -96582.70 108696.32 364.00
160200 -98327.02 111334.33 311.60
0000((←この行なし)
0626デフォルトの名無しさん
2006/11/01(水) 20:57:09char data[2][BUF_SIZE];
↓
char data[3][BUF_SIZE];
それと
ret=sscanf(one_line, "%[0-9] %[-.0-9] %[-.0-9]", left_code, data[0], data[1]);
if(ret==2 || ret==3)
↓
ret=sscanf(one_line, "%[0-9] %s %s %s", left_code, data[0], data[1], data[2]);
if(ret>=2 && ret<=4)
オレってスルー力皆無だな
0627デフォルトの名無しさん
2006/11/01(水) 21:04:460628デフォルトの名無しさん
2006/11/01(水) 21:29:50かなりできる人が暇つぶしでもしてるんだろうな…
0629デフォルトの名無しさん
2006/11/01(水) 21:57:00ここで宿題訊くような奴は端からマになろうなんて思ってないから
一時しのぎで人のを写しても別に問題ないのだろうな。
0630デフォルトの名無しさん
2006/11/01(水) 21:57:35ありがとうございました
0631デフォルトの名無しさん
2006/11/01(水) 22:28:52[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2864.zip
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限: 11月2日16:00まで
[5] その他の制限:なし(ソースファイルのView.cppを使っています)
0632デフォルトの名無しさん
2006/11/01(水) 22:33:05view.cppって何?
VBAでやれば?
0633デフォルトの名無しさん
2006/11/01(水) 22:34:54[2] 問題文(含コード&リンク):
レポート課題:フェルマーの予想
フェルマーは、x^n+y^n=z^n (x,y,z,n:整数)においてn≧3に対して、
この式を満たすものはないと断言した。これはつい最近になって証明された。
n=3に対して、x,y,z≦100の範囲内でこれに対する反例がないか確認せよ。
ヒント:
一見すると、3重ループになるようであるが、
うまく工夫して2重ループにせよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual C++ 6.0
[3.3] 言語: C++
[4] 期限: 2006年11月7日まで
[5] その他の制限: 基礎的な知識で出来るプログラミングでおねがいします。
0634デフォルトの名無しさん
2006/11/01(水) 23:05:10#include<stdio.h>
/* 1≦x≦y≦z≦100 */
int main(void){
int x, y, z;
long data[100+1];
for(x=0;x<=100;x++)
data[x]=x*x*x;
for(z=1;z<=100;z++){
y=z;
for(x=1;x<=z;x++){
if(data[z]-data[x]<data[y]){
y--;
if(y<x) break;
}
if(data[z]-data[x]==data[y])
printf("反例 x=%d y=%d z=%d\n", x, y, z);
}
}
return 0;
}
0635デフォルトの名無しさん
2006/11/01(水) 23:07:100636デフォルトの名無しさん
2006/11/01(水) 23:10:44>>634
0637デフォルトの名無しさん
2006/11/01(水) 23:14:36初歩的な質問ですいません。
0638デフォルトの名無しさん
2006/11/01(水) 23:15:59http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2865.zip
授業でVC2005が使えるのか。うらやますぃ。
うちの大学は予算が少ないからなぁ。
0639デフォルトの名無しさん
2006/11/01(水) 23:16:52去年提出したソースかも。
0640デフォルトの名無しさん
2006/11/01(水) 23:25:18内の大学はBCB3だった
6〜7年前の話
0641デフォルトの名無しさん
2006/11/01(水) 23:31:08できたら解説をお願いします。
0642デフォルトの名無しさん
2006/11/01(水) 23:32:370643デフォルトの名無しさん
2006/11/01(水) 23:40:06すいません。
0644デフォルトの名無しさん
2006/11/01(水) 23:49:17今後、後出ししません。
お願いします<m(__)m>
0645デフォルトの名無しさん
2006/11/01(水) 23:49:24x≦y の時
(x+1)^3-x^3 ≦ (y+1)^3-y^3
なので
x←x+1 の時、y←y 又は y←y-1 のどちらかで追従できる
0646デフォルトの名無しさん
2006/11/01(水) 23:51:00ありがとうございます
プログラミング能力が凄いですね
感謝です。
0647デフォルトの名無しさん
2006/11/02(木) 00:39:13[2] 問題文(含コード&リンク):
数値を順番に読み込んで、計算結果を返す次のどちらかのプログラムを書け。
まず係数 a, b を標準入力より読みとる。次に変数 x の値を読み込んで y=a*x+b を計算して表示する。
この x の読み込みと y の表示を、x に数値以外が入力されるまで繰り返す。
x と y の数値の対を読み込むことを繰り返す。
数値以外が入力されると最小二乗法による回帰直線 y=a*x+b の係数 a, b を計算して表示する。
注) 直線回帰係数 a, b は、実験指導書はじめの誤差論の式(6.5)で、c=0のときの上2つの式で、
データ個数と x, y, x2, y2, xy の総和から求めることができる。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
期限: 2006年11月9日まで]
0648デフォルトの名無しさん
2006/11/02(木) 00:50:19#include<stdio.h>
#define BUF_SIZE 1024
int main(void)
{
double a, b, x, y;
char buf[BUF_SIZE];
int scanf_ret;
printf("Input a, b:");
scanf("%lf %lf", &a, &b);
while(1)
{
printf("Input x:");
scanf("%s", buf);
scanf_ret=sscanf(buf, "%lf", &x);
if(scanf_ret!=1)
break;
y=a*x+b;
printf("y=a*x+b y=%f x=%f a=%f b=%f\n", y, x, a, b);
}
return 0;
}
0649デフォルトの名無しさん
2006/11/02(木) 01:06:570650デフォルトの名無しさん
2006/11/02(木) 01:17:190651デフォルトの名無しさん
2006/11/02(木) 01:31:25[1] 授業単元:プログラミング
[2] 問題文(
問題1
キーボードから入力した5 件のデータのうち、最大値と最小値を調べ、最後に
表示してください。なお、プログラム作成時は以下の仕様に従ってください。
ファイル名: kadai2.c
【 問題作成時の注意点 】
・キーボードから入力したデータはint 型配列で管理してください。
・データを入力する際にはscanf 関数を利用してください。
・画面にメッセージを表示する際にはprintf 関数を利用してください。
なお、結果表示時は、最大値/最小値となる要素の添字もあわせて
表示してください。また、最大値/最小値が複数ある場合は、
すべての要素を表示してください。
【 実行時のイメージ 】
-----------------------------
data[0] ... 69 ←「...」の後ろはキーボード入力部
data[1] ... 91 ←「...」の後ろはキーボード入力部
data[2] ... 91 ←「...」の後ろはキーボード入力部
data[3] ... 72 ←「...」の後ろはキーボード入力部
data[4] ... 86 ←「...」の後ろはキーボード入力部
Max : data[1] = 91
Max : data[2] = 91
Min : data[0] = 69
-----------------------------
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C++
[4] 期限: ([2006年11月2日17:30まで
[5] その他の制限:なし
0652デフォルトの名無しさん
2006/11/02(木) 01:37:25[1] 授業単元:プログラミング
[2] 問題文(
キーボードから入力したメニュー番号に沿った図形を「*」で表示するプログラムを
作成してください。なお、プログラム作成時は以下の仕様に従ってください。
ファイル名: kadai3.c
【 問題作成時の注意点 】
・メニュー番号と図形の種類は以下の通りとします。なお、キーボードから
入力した値が以下の番号以外の場合、再びメニュー番号を入力するように
してください。
1 三角形
2 四角形
・図形の段数(高さ)は、キーボードから入力してください。なお、キーボード
から入力した数が1 以下の場合、エラーメッセージを表示し、exit 関数で
プログラムを終了してください。
エラーメッセージの例) wrong number
・図形の表示には関数を利用してください。関数のプロトタイプ宣言は以下の
通りとします。
void DrawTriangle(int);
void DrawRectangle(int);
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C++
[4] 期限: ([2006年11月2日17:30まで
[5] その他の制限:なし
■ このスレッドは過去ログ倉庫に格納されています