ぼるじょあがC/C++の宿題を片づけますYO! 68代目at TECH
ぼるじょあがC/C++の宿題を片づけますYO! 68代目 - 暇つぶし2ch317:デフォルトの名無しさん
07/07/06 18:45:56
問題文[1] 授業単元:C言語
[2] 問題文: :入力した人の年齢の合計と平均を出力させるプログラムを作成して下さい。
※入力時に累積の人数を表示 ※年齢入力時に数字属性と範囲のチェックを行う※nullは不許可とする
※0 ~ 9 の文字のみで、かつ 1 ~ 99 の範囲のみを許可する※年齢の平均は小数点第二位まで出力する
※名前に空が入力された場合に年齢の合計と平均を出力してプログラムを終了する
-実行結果-

1人目の名前:human1
1人目の年齢:
入力エラー(年齢を入力してください)
1人目の年齢:30

2人目の名前:human2
2人目の年齢:abc
入力エラー(年齢は数字のみで入力してください)
2人目の年齢:20

3人目の名前:human3
3人目の年齢:0
入力エラー(年齢は1から99の範囲で入力してください)
3人目の年齢:25

4人目の名前:
年齢の合計は75歳、年齢の平均は25.00歳

[3] 環境
 [3.1] OS:Windows
 [3.2] LCpad
 [3.3] 言語: C
[4] 期限: 2007年7月9日hhまで
[5] 初心者です。


318:デフォルトの名無しさん
07/07/06 18:46:59
>>312
スペルミスしたとき、例えばretrun 0;はコンパイル時エラーになるが、
retrun (0);ではretrunという名前の関数を呼び出す式としてコンパイルできてしまう。
もちろんリンカエラーにはなるはずだが、エラーが表示されるときは早いほうがよい。

319:デフォルトの名無しさん
07/07/06 18:51:29
>>318
なるほど、C++ならコンパイル時にエラーになるから構わないわけだな

320:デフォルトの名無しさん
07/07/06 19:06:41
実際にvoid retrun(int)なる関数があったら……

321:デフォルトの名無しさん
07/07/06 19:55:14
retrun()という関数を自分で作っておいて
retrun(1);
とかreturnのつもりで書くってのは相当にアホだろ

322:デフォルトの名無しさん
07/07/06 19:57:11
switch()でのdefault:のスペルミスに比べれば害は少ないよな

retrunというスペルミス云々って話は昔からよく聞くけど
どうもこじつけ臭い
単にカッコは不要で冗長だから嫌われてるだけだろう
他人にスタイルを押し付けるほどの根拠は無いと思うがどうよ

323:デフォルトの名無しさん
07/07/06 20:03:07
今時大抵の奴はキーワードに色がつくエディタか統合開発環境使ってるから
どうせすぐ気づくわな

324:デフォルトの名無しさん
07/07/06 20:29:13
> 単にカッコは不要で冗長だから嫌われてるだけだろう
そうだろうね。昔はreturnに括弧が要ったが、後から要らなくなったことの説明が付く。

325:デフォルトの名無しさん
07/07/07 01:06:43
C言語
問題
2つの符号なし整数a,b(ただし、a>bとし、bは2のべき乗とする)をキーボードから読み込み、
①a,bを2進表示し、配列の中にビットを格納しなさい。
②a,bの四則演算
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)を計算し、その結果を出力しなさい。
7月13日までです。お願いします。

326:デフォルトの名無しさん
07/07/07 01:08:34
[1] 授業単元: プログラミング実習
[2] 問題文:時宜の微分方程式を数値計算を用いて解け。
  ルンゲクッタ法または後退オイラー法を使いプログラミングすること。
  ・3*d^2x/dt^2+dx/dt+2x=4
  ・x(t=0)=0
  ・dx/dt(t=0)=0
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン: bcc32?
 [3.3] 言語:C++
[4]期限: 2007年07月08日23:00まで
[5] その他の制限:制限なし
よろしくおねがいします

327:デフォルトの名無しさん
07/07/07 01:17:33
>>325
int main( void )
{
unsigned int a,b;
schanf( "%d %d", &a, &b );
printf( "+:%d\n", a + b );
printf( "-:%d\n", a - b );
printf( "*:%d\n", a * b );
printf( "/:%d\n", a / b );
return 0;
}

>>326
どこかの宿題スレで同じ問題あったよ。
ルンゲクッタ法使ってた。

328:デフォルトの名無しさん
07/07/07 01:23:21

C言語で
1~Nの整数(Nは任意)を、ランダムな順番に並び替え,
printf で出力するようなプログラムを作成したいのですが。

良いアルゴリズムなどはありますか?
あ、動けばいいような気もしてきた・・・・orz

329:328
07/07/07 01:27:19
おらあもうだめだあ
123456

245136

こうなってほしいのに
632312

これが現実 (謎

330:デフォルトの名無しさん
07/07/07 01:28:11
>>328
簡単なのでいいならこんなの?
1.int Num[100]に1~100の値を入れる。
2.Num[rand()%100]とNum[rand()%100]を入れ替える。
3.「2」を適当な回数する。

331:デフォルトの名無しさん
07/07/07 01:44:17
おまいら、なんでそんなに rand() が好きなんだw

332:328
07/07/07 11:38:02
>>330
ありがとうございます
一応、それで作ってみます。
何回くらい入れ替えればいいんだろうか・・・

333:デフォルトの名無しさん
07/07/07 13:43:44
>>327さん、配列を使ってないきが…

334:デフォルトの名無しさん
07/07/07 14:04:16
>328

int a[N];

for(i=1; i<N; i++) {
int j = rand()%(i+1);
if(j!=i) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}


335:デフォルトの名無しさん
07/07/07 14:17:25
URLリンク(ray.sakura.ne.jp)
でも嫁

336:homoじょあ ◆5OLf4yFnuM
07/07/07 18:30:38
>>316(・3・) エェー 足し算と引き算だけNE
#include<stdio.h>
#include<ctype.h>
int calc(int ans, int i, int op){
switch( op ){
case 0: return ans + i;
case 1: return ans - i;
}
return ans;
}
main(){
char c[256];
char *p;
int i, op = 0, ans = 0;
printf("Enter a number:");
fgets(c, sizeof(c), stdin);
p = c;
while(*p != '\0'){
i = 0;
while(isdigit(*p)){
i = i*10+(*p)-48;
p++;
}
ans = calc(ans, i, op);
if(*p == '+')op = 0;
else if(*p == '-')op = 1;
else op = -1;
p++;
}
printf("You have entered: %d\n", ans);
return 0;
}

337:homoじょあ ◆5OLf4yFnuM
07/07/07 18:46:59
>>317
(・3・)あっちょんぶりけ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

338:デフォルトの名無しさん
07/07/08 01:43:22
問題文[1] 授業単元:C言語
[2] 問題文: :入力した人の年齢の合計と平均を出力させるプログラムを作成して下さい。
※入力時に累積の人数を表示 ※年齢入力時に数字属性と範囲のチェックを行う※nullは不許可とする
※0 ~ 9 の文字のみで、かつ 1 ~ 99 の範囲のみを許可する※年齢の平均は小数点第二位まで出力する
※名前に空が入力された場合に年齢の合計と平均を出力してプログラムを終了する
-実行結果-

1人目の名前:human1
1人目の年齢:
入力エラー(年齢を入力してください)
1人目の年齢:30

2人目の名前:human2
2人目の年齢:abc
入力エラー(年齢は数字のみで入力してください)
2人目の年齢:20

3人目の名前:human3
3人目の年齢:0
入力エラー(年齢は1から99の範囲で入力してください)
3人目の年齢:25

4人目の名前:
年齢の合計は75歳、年齢の平均は25.00歳

[3] 環境
 [3.1] OS:Windows
 [3.2] LCpad
 [3.3] 言語: C
[4] 期限: 2007年7月9日hhまで
[5] 初心者です。お願いします。

339:デフォルトの名無しさん
07/07/08 02:30:35
1つ上のレスぐらい見ろクズ

340:デフォルトの名無しさん
07/07/08 18:18:48
>>325お願いしますm(_ _)m

341:デフォルトの名無しさん
07/07/08 19:42:48
>>327がやってるじゃんと言おうとしたら、仕様を満たしてないのね。
②a,bの四則演算は、何も考えずにc=a+bとかやらずに
2進数で演算しないといけないのかな?


342:homoじょあ ◆5OLf4yFnuM
07/07/08 21:50:28
>>325(・3・) エェー bitに直すだけYO
              もう酔っ払ってダメぽ
#include <stdio.h>
void changeBit(unsigned long n, unsigned char bit[32]){
int i;
for(i=0; i<32; i++, n = n >> 1){
bit[31 -i] = n & 0x1;
}
}
int main(void){
unsigned long a, b;
unsigned char bita[32], bitb[32];
int i;

printf("a:");
scanf("%ld", &a);
printf("b:");
scanf("%ld", &b);
changeBit(a, bita);
changeBit(b, bitb);

for(i=0; i<32; i++){
printf("%u", bita[i]);
}
puts("");
for(i=0; i<32; i++){
printf("%u", bitb[i]);
}
return 0;
}

343:デフォルトの名無しさん
07/07/09 14:17:13
すいません。>>325のaとbは8ビットで結果は16ビットです。すいませんでしたm(_ _)m

344:デフォルトの名無しさん
07/07/09 14:44:00
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 年(西暦),月,日を入力したとき,入力した年月日の曜日を出力するプログラムを作成
しなさい.
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
お願いします。

345:デフォルトの名無しさん
07/07/09 14:46:40
>>344
URLリンク(www9.plala.or.jp)


346:デフォルトの名無しさん
07/07/09 14:51:54
>>344
グレゴリオ暦でおk?

347:デフォルトの名無しさん
07/07/09 15:16:57
// >>344
#include <time.h>
#include <stdio.h>
int main()
{
int year;
int month;
int day;
printf("Input date(year month day:Ex. 2006 12 31).\n");
if (scanf("%d%d%d", & year, & month, & day) < 3) {
fprintf(stderr, "Illegal format.\n");
return 1;
}
struct tm tmp = {0};
tmp.tm_year = year - 1900;
tmp.tm_mon = month - 1;
tmp.tm_mday = day;
mktime(& tmp);
static const char * const weekDayTable[] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
};
printf("%d/%d/%d is %s.\n", 1900 + tmp.tm_year, 1 + tmp.tm_mon, tmp.tm_mday, weekDayTable[tmp.tm_wday]);
return 0;
}


348:デフォルトの名無しさん
07/07/09 15:28:57
>>325もう一度書かして下さい。
C言語です。
二つの符号なし整数a,b(ただしa>bとし、bは2のべき乗とする。またaとbは8ビットで、演算の結果は16ビットです。)をキーボードから読み込み、
①a,bを2進表示し、配列の中にビットを格納しなさい。
②a,bの四則演算(上のを使って、相手に10進で入力させ、それを2進表示する)
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)
を計算し、その結果を出力しなさい。
習ったのはfor文、if文、do文、while文、シフト演算子{(>>)(<<)}、ビット単位のAND演算子(&)、OR演算子(|)、排他的OR演算子(^)、1の補数(~)です。結果は2進の16ビットです。
7月14日までです。お願いしますm(_ _)m

349:デフォルトの名無しさん
07/07/09 19:06:20
とりあえずテンプレに沿って質問しろよ

350:デフォルトの名無しさん
07/07/09 19:46:08
[1] コンピュータ・サイエンス
[2] C++でUDPのechoサーバを作れ
[3] 環境
 [3.1] Windows
 [3.2] VisualC++系
 [3.3] C++
[4]無期限
[5]wsock32.lib  UDPで

おねがいします。

351:177
07/07/09 20:27:59
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):
(2)例えば式1+2[ENTER]を入力すると3を出力するように足し算の出来る
プログラムに改造したいです。他にも掛け算や割り算、引き算も出来るように
お願いします。

#include <stdio.h>
#include <ctype.h>

main(){
char c[10];
char *p ;
int i=0;

printf("Enter a number: ");

fgets(c,6,stdin);
p = &c; //ここでWarningが出るが問題にはならない
While(isdigit (*p));{
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n", i);
}
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 明日中
[5] その他の制限:特になし



352:デフォルトの名無しさん
07/07/09 20:46:43
それは本当にC++か・・・

353:デフォルトの名無しさん
07/07/10 11:03:42
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: XP pro2
[3.2] VISUALU STUDIO 2005
 [3.3] 言語: C++
[4] 期限:~7/11 09:00
[5] その他の制限:無し

どうかお願いします


354:デフォルトの名無しさん
07/07/10 14:06:54
// ヘッダファイルここから
class Player
{
int point;
public:
Player();
Player(int p);
int get_point();
void set_point(int p);
int rand();
int judge(Player &opp);
void show();
};

void show_winner(int result, const char *a, const char *b);
void show_point(Player &man, Player &woman);


355:デフォルトの名無しさん
07/07/10 14:07:27
// ソースファイルここから
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <ctime>
#include "player.h"

using namespace std;

Player::Player() : point(100) {std::srand((unsigned)time(NULL));}
Player::Player(int p) : point(p) { std::srand((unsigned)time(NULL)); }
int Player::get_point() { return point; }
void Player::set_point(int p) { point = (p < 0) ? 0 : p; }
int Player::rand() { return std::rand() % 20; }
int Player::judge(Player &opp) {
 int i = this->rand();
 int you = (opp.rand() * 8) / 10;
 if (i > you) {
   opp.set_point(opp.get_point() - i);
   return 1;
 }


356:デフォルトの名無しさん
07/07/10 14:21:09
以下(ry

357:デフォルトの名無しさん
07/07/10 15:06:01

[1] 授業単元:C言語
[2] 数字だけからなる文字列をchar型の配列へ読み込み、それをint型のデータに変換する関数myatoi()
を作成せよ、ただし文字列中に数字以外の文字が含まれれる場合は戻り値としてー1を返すようにすること
さらにmyatoi()を用い、標準入力から与える文字列を数値として(printfの%dを用いて)表示するプログラムを作成せよ
[3] 環境
 [3.1] Linax
 [3.2] gcc
 [3.3] 言語: C言語
[4] 期限: できるだけはやく
[5] できるだけ特殊じゃないので

[3] 環境
 [3.1] OS: linax
 [3.2]gcc gnome emacs
 [3.3] 言語: C
[4] はやめ

お願いします


358:デフォルトの名無しさん
07/07/10 15:08:57
追加

%./ファイル名
入力:14314
入力された数値は14314です
入力:abc
数字以外の文字が入っています
入力:                [c]+d
%

実行結果です

359:デフォルトの名無しさん
07/07/10 15:17:31
[1]授業単元:プログラミング演習
[2]問題文:二つの符号なし整数a,b(ただしa>bとし、bは2のべき乗とする。またaとbは8ビットで、演算の結果は16ビットとする。)をキーボードから読み込み、
①a,bを2進表示し、配列の中にビットを格納しなさい。
②a,bの四則演算(上のを使って、相手に10進で入力させ、それを2進表示する)
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)
を計算し、その結果を出力しなさい。
[3]環境
[3.1]Windows XP
[3.2]VisualC++,UNIX
[3.3]C言語
[4]2007年7月14日まで。
[5]習ったのはfor文、if文、do文、while文、シフト演算子{(>>)(<<)}、ビット単位のAND演算子(&)、OR演算子(|)、排他的OR演算子(^)、1の補数(~)、符号なしありの表し方(unsignなど)です。お願いしますm(_ _)m

360:デフォルトの名無しさん
07/07/10 17:03:35
>>357
URLリンク(kansai2channeler.hp.infoseek.co.jp)

361:みえ
07/07/10 17:14:21
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 次を元にして、足し算などの式を入力すると計算結果を表示するプログラムを作ることを考える。たとえば式1+2ENTERを入力すると結果の3が表示されるようにプログラムを作り直してください、エラー処理は無視してよい。
他の演算ができるようになっているとさらに高く評価する。
#include<stdio.h>
#include<ctype.h>
main(){
char c[10];
char *p;
int i=0;
printf("Enter a number:");
fgets(c,6,stdin);
p=&c;
while(isdigit(*p)){
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n",i);
}

 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月11日
よろしくお願いします

たとえば式1+2ENTERを入力すると結果の3が表示される

362:デフォルトの名無しさん
07/07/10 18:16:29
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2]gcc
 [3.3] 言語: C
[4] 期限: 7/11まで
[5] その他の制限: 特になし

よろしくお願いします。

363:デフォルトの名無しさん
07/07/10 18:18:40
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
実行例
1:コーラ 2:ミルクティー 3:ビール 4:オレンジジュース 5:緑茶
110円 140円 210円 190円 120円
希望の飲み物の番号を入力(終了する場合はCTRL+D) 1
商品はコーラ(価格=110円) お金を入れてください。
1000円:1
500円:0
100円:0
50円:0
10円:0

商品価格=110 釣銭あり
投入貨幣 =1000円(1), 500円(0), 100円(0), 50円(0), 10円(0)
釣銭 =1000円(0), 500円(1), 100円(3), 50円(1), 10円(4)
釣銭用貨幣=1000円(1), 500円(9), 100円(7), 50円(9), 10円(6)

希望の飲み物の番号を入力(終了する場合はCTRL+D)

[3] 環境
 [3.1] OS: WindowsXP
 [3.2]gcc
 [3.3] 言語: C
[4] 期限: 7/11まで
[5] その他の制限: 特になし
よろしくお願いします。

364:デフォルトの名無しさん
07/07/11 12:55:58
>>362は出来たのですが
>>363ができません。
今日の22時までなんです。どなたかお願いします。

365:デフォルトの名無しさん
07/07/11 13:15:47
>>364
昨日やってできたけど、バカバカしくなって消した

366:363
07/07/11 13:24:42
バカバカしくなるぐらい簡単ってことなんでしょうか?
だったら少し頑張って自分でやってみます

367:デフォルトの名無しさん
07/07/11 13:28:55
>>366
できたところまででいいから晒せばヒントあげるよ
すべて人任せはイクナイ

368:デフォルトの名無しさん
07/07/11 18:47:35
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):ニュートン法
出力が
値入力⇒○
解の値は ○ 収束するのに ○ 回かかりました

[3] 環境
 [3.1] OS:WindowsVISTA
 [3.2] コンパイラ名とバージョン:コンパイラが動かないですorz
 [3.3] 言語:C言語
[4] 期限:考える時間であっというまに・・・7/13(金)17:00です。
[5] その他の制限:
#include<math.h>とdouble、fabsは必ず使うようです。

369:homoじょあ ◆5OLf4yFnuM
07/07/11 23:00:46
(・3・) エェー ニュートン法って式いらんのかいNA

370:デフォルトの名無しさん
07/07/11 23:57:17
>>359お願いしますm(_ _)m

371:デフォルトの名無しさん
07/07/11 23:59:27
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク): コンビニの売り上げ伝票ファイルを集計し、20歳代、30歳代それぞれの売り上げ総額を求める処理
のプログラムを作る。売り上げ伝票ファイルは以下のような形式で記録されるものとする。1行に1品目の売り上げ記録があり、第
1項目が商品コード、第2項目が単価、第3項目が数量、第4項目が客の性別、第5項目が客の年齢層。年齢層の値は19歳以下
なら1、20~29歳なら2、30~39歳なら3、40~49歳なら4、50歳以上なら5である。性別は0が男、1が女を表す。商品コードが0の
または負のとき、それ以後のデータがないことを表すものとする。また、データが不正のときも記録はないものとする。
[3] 環境  
 [3.1] OS:Windows Visual stdio 2003
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:7月12日朝6時まで
[5] その他の制限:switch文を必ずいれて下さい。

他スレでスルーされてしまいました(´;ω;`)
助けて下さい。よろしくおねがいしますm(_ _)m



372:デフォルトの名無しさん
07/07/12 07:22:26
ぎりぎり杉

373:デフォルトの名無しさん
07/07/12 07:31:20
全くだ
やろうと思ったら6時過ぎてたよw

374:デフォルトの名無しさん
07/07/12 14:42:26
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
よろしくお願いします。


375:デフォルトの名無しさん
07/07/12 14:56:32
#include <stdio.h>
int main(void)
{
int i, n;
int min, sec;
int minsum = 0, secsum = 0;
printf("曲数を入力して下さい. --> ");
scanf("%d", &n);
for(i = 0; i < n; i++) {
printf("<%d 曲目>\n", i);
printf("何分ですか. --> ");
scanf("%d", &min);
printf("何秒ですか. --> ");
scanf("%d", &sec);
minsum += min;
secsum += sec;
}
printf("総時間%d 分%d 秒", minsum, secsum);
return 0;
}

376:デフォルトの名無しさん
07/07/12 15:01:24
>>375 いちいち突っ込むのもあれだけど、とりあえず(鼻からブーーのAA略) ブーーッ!

377:デフォルトの名無しさん
07/07/12 16:43:15
>>359お願いします。

378: ◆lIN/ESgxWw
07/07/12 17:01:58
[1]単元:プログラミング技術
[2]問題文:アップローダーのno.4600にアップしておきました

[3]環境
OS:リナックス
コンパイラ:gcc
言語:C
[4]期限:来週の水曜までに
 よろしくお願いします。

379:368
07/07/12 17:51:51
>>369 式いります。
do{
(式)
}while();
みたいな感じなのですが、私には理解できませんorz

380:デフォルトの名無しさん
07/07/12 18:22:25
>>359
c言語ブランク暦13年の俺様のテクニックをしかと見届けよ

#include<stdio.h>
char b8[9],b16[17];
void d2b8(int n){
for(int i=0;i<8;i++)b8[7-i]=(n&1)+'0',n/=2;b8[8]='\0';
}
void d2b16(int n){
for(int i=0;i<16;i++)b16[15-i]=(n&1)+'0',n/=2;b16[16]='\0';
}
int main(void){
int a,b,i;
while(1){
printf("a=");scanf("%ud",&a);
if(a<0||a>255){printf("8bit\n");continue;}
printf("b=");scanf("%ud",&b);if(b>=a){printf("b<a\n");continue;}
if(b!=1&&b!=2&&b!=4&&b!=8&&b!=16&&b!=32&&b!=64&&b!=128){printf("b=2^n\n");continue;}
d2b8(a);printf("a = %3d (%s)\n",a,b8);
d2b8(b);printf("b = %3d (%s)\n",b,b8);
d2b16(a+b);printf("c = %3d + %3d = %5d (%s)\n",a,b,a+b,b16);
d2b16(a-b);printf("d = %3d - %3d = %5d (%s)\n",a,b,a-b,b16);
d2b16(a*b);printf("e = %3d * %3d = %5d (%s)\n",a,b,a*b,b16);
d2b16(a/b);printf("f = %3d / %3d = %5d (%s)\n",a,b,a/b,b16);
}
//return 0;
}}

381:デフォルトの名無しさん
07/07/12 18:42:45
計算も2進でやらせたいんじゃないん?

382:デフォルトの名無しさん
07/07/12 20:36:53
引数にクラスを指定するのってどうやるの?
下のやり方だとだめだっだ。

TEST_CLASS Sizuoka;

int *p;
p = &Sizuoka;

func(p);



383:デフォルトの名無しさん
07/07/12 20:39:32
funcの型が書かれてないし
意味不明だよ^^

384:デフォルトの名無しさん
07/07/12 21:06:36
>>383
何で笑ってるのか教えてほしい。

385:デフォルトの名無しさん
07/07/12 21:15:14
^^はにこやかに意味がわからないよ~って言ってるだけで
笑っているわけじゃない


386:デフォルトの名無しさん
07/07/13 10:24:49
すいません。>>359は2進で計算しますm(_ _)m

387:デフォルトの名無しさん
07/07/13 13:55:42
357お願いします

388:デフォルトの名無しさん
07/07/13 13:59:22
>>357

389:デフォルトの名無しさん
07/07/13 14:03:37
>>387
>>360にあるのに、気に入らないのか?

390:デフォルトの名無しさん
07/07/13 14:03:44
>>357
#include <stdio.h>
int myatoi(char *buf)
{
char *p = buf;
int n = 0;
while(*p != '\0') {
if(isdigit(*p)) { n *= 10; n += *p - '0'; p++; }
else return -1;
return n;
}
int main(void)
{
int n;
char buf[128];
scanf("%s", buf);
n = myatoi(buf);
printf("%d\n", n);
return 0;
}

391:デフォルトの名無しさん
07/07/13 14:08:06
>>390 #include <ctype.h> を忘れてた。

392:デフォルトの名無しさん
07/07/13 14:08:46
whileの閉じ括弧もわすれちょるよ

393:デフォルトの名無しさん
07/07/13 14:44:14
>>359お願いします。

394:デフォルトの名無しさん
07/07/13 15:35:31
すみません、>>378よろしくお願いします

395:デフォルトの名無しさん
07/07/13 15:37:33
>>394
リンク先書いとけって
手間省くな

396:デフォルトの名無しさん
07/07/13 16:00:56
>>395
URLリンク(kansai2channeler.hp.infoseek.co.jp)

397:デフォルトの名無しさん
07/07/13 18:56:28
>>390
実行結果が358にならないです。
おねがいします

398:デフォルトの名無しさん
07/07/13 19:02:24
>>396
bccだとcursesがないからできなかった

399:デフォルトの名無しさん
07/07/13 21:04:06
>>383
>>385
お前痛いな。

400: ◆lIN/ESgxWw
07/07/14 00:22:48
[1]単元:プログラミング
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
  コンパイラ:cc
OS:リナックス
  言語:C
[4]期限:7月19日
 よろしく頼みます。

401:デフォルトの名無しさん
07/07/14 00:42:49
[1] 授業単元:情報科学Ⅱ
[2] 問題文(含コード&リンク):URLリンク(brain.is.kyushu-u.ac.jp) の課題11
[3] 環境
 [3.1] OS: Windows
 [3.2] 普段はcygwinつかっているのでgcc 3.4 だとおもいます。
 [3.3] 言語: Cです。
[4] 期限: 2007・07・16まで

よろしくおねがいします。

402:デフォルトの名無しさん
07/07/14 01:28:23
>400
ほとんど答えが書いてあるようなもんなのに、なんで自分でやらないかねぇ

403:デフォルトの名無しさん
07/07/14 02:38:58
>>401
int push(int data, int *sp, int *STK)
{
if (*sp == 0) return 0;
(*sp)--; *(STK + *sp) = data;
return 1;
}
int pop(int *dataP, int *sp, int *STK)
{
if (*sp == N) return 0;
*dataP = *(STK + *sp); (*sp)++;
return 1;
}
void dsp_stack(int top, int *a)
{
int i;for (i = top; i < N; i++) {
printf("%d:%3d\n",i, *(a + i));}
}


404:もり
07/07/14 10:34:36
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):次のプログラムは、式を入力すると計算結果を表示するプログラムであるが、
誤っている点があります。現在の内容を理解し、誤りを訂正してコメントをつけてください。
#include <stdio.h>   #include <stdlib.h>     #include <ctype.h>
char *p; char c[100];  int expression(void);   int term(void);
int number(void);    main(){ int ans;      while(1){
printf("Enter expression : ");  fgets(c,90,stdin);   p=&c;
if(*p == '\n')     break;      ans = expression();
printf("Answer:%d\n", ans); } }     int expression(){ int ans;
ans = term();       while(1){     if(*p == '+'){
ans = ans + term();       }else if(*p == '-'){
ans = ans - term(); }else    break; }
return(ans); }         int term(){
int ans,x;           ans = number();
while(1){           if(*p == '*'){
ans = ans * number();     }else if(*p == '/'){
x = number();         if(x == 0){
printf("Division by 0\n");   exit(1); }
ans = ans / x; }else      break; }
return(ans); }         int number(){
int i=0;            while (isdigit(*p)){
i=i*10+(*p++)-48;}       return(i); }
[3] 環境
 [3.1] OS: Windows [3.2] gcc 3.4 [3.3] 言語: C言語
 [4] 期限: 2007/7/17 改行が多すぎて、乗せられなかったためこんな形になりますた。すみません。宜しくお願いします。


405:デフォルトの名無しさん
07/07/15 09:18:02
うpろだ使えよww

406:デフォルトの名無しさん
07/07/15 14:09:09
>>404
スレリンク(tech板:868番)


407:デフォルトの名無しさん
07/07/15 15:44:54
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
よろしくお願いします。


408:デフォルトの名無しさん
07/07/15 15:50:40
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):  フィボナッチ数列の第n 番目(1 ≤ n ≤ 50)の数を出力するプログラムを作成しなさい.
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
よろしくお願いします。

409:デフォルトの名無しさん
07/07/15 16:02:05
>>408
#include <stdio.h>

int main(void){

int i, max;
int tanka, kosuu, total = 0;
double tax_total = 0.0;

printf("商品数を入力してください. --> ");
scanf("%d", &max);

for(i=0; i<max; i++){
printf("<商品%d>\n", i+1);
printf("単価を入力してください. --> ");
scanf("%d", &tanka);
printf("個数を入力してください. --> ");
scanf("%d", &kosuu);

printf("** 単価×個数 ** ==> %d\n", tanka * kosuu);
total += tanka * kosuu;
printf("** 累積合計代金 ** ==> %d\n", total);
tax_total += total * 1.05;
printf("** 消費税込み累積合計代金** ==> %lf\n", tax_total);
}

return 0;
}

コンパイル通してないからどっかエラーでたら教えてね☆

410:デフォルトの名無しさん
07/07/15 16:04:09
#include <stdio.h>
typedef struct
{
int nValue;
int nNums;
int nPrice;
} DATA;
int main(void)
{
int n, i;
DATA *dt;
int nSmPrc = 0;
double dSmPrcTaxin = 0;
printf("商品数を入力して下さい --> "); scanf("%d", &n);
dt = (DATA *)malloc(sizeof(DATA) * n);
for(i=0; i<n; i++)
{
printf("<商品%d>\n単価を入力して下さい. --> ", i); scanf("%d", &dt[i].nValue);
printf("個数を入力して下さい. --> "); scanf("%d", &dt[i].nNums);
dt[i].nPrice = dt[i].nValue * dt[i].nNums;
nSmPrc += dt[i].nPrice;
dSmPrcTaxin = (double)nSmPrc * 1.05;
printf("** 単価×個数**       ==> %d\n", dt[i].nPrice);
printf("** 累積合計代金**      ==> %d\n", nSmPrc);
printf("** 消費税込み累積合計代金** ==> %g\n", dSmPrcTaxin);
}

return 0;
}


411:デフォルトの名無しさん
07/07/15 16:10:56
>>409
#include <stdio.h>

int main(void){
int i, n;
unsigned int fibonacci[50];

fibonacci[0] = fibonacci[1] = 1;

for(i=2; i<50; i++){
fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
}

printf("何番目を表示させたいか入力してください\n");
scanf("%d", &n);
printf("フィボナッチ数列の %d 番目は %d です\n", n, fibonacci[n-1]);

return 0;
}

こっちも通してないからエラーでたら教えてね☆

412:舞子
07/07/15 16:11:29
自宅でマイコン開発をはじめようと考えているものです。
(現在マイコンの知識はほとんどないです。)

そこで、マイコン開発に必要なハードウェア、アプリケーションを知りたいんですが、
お知恵をおかりできませんでしょうか?

ハードウェアとしてはできればUSBで接続で
マイコンにそのまま書き込めるようなものがあれば最適です。

USBとかって安くうってるのでしょうか?
自宅で行うのでできれば安く簡単にと考えてます。
(当然レベルの高い製品はできないと思いますが)

よろしくお願いいたします。

413:デフォルトの名無しさん
07/07/15 16:11:33
じゃあ俺も
#include <stdio.h>
int main(void)
{
int shouhinsuu,tanka,kosuu,daikin,ruiseki=0;
printf("商品数を入力して下さい --> ");scanf("%d",&shouhinsuu);
for(int i=1;i=<shouhinsuu;i++){
printf("<商品%d>\n単価を入力して下さい. --> ",i);scanf("%d",&tanka);
printf("個数を入力して下さい. --> ");scanf("%d",&kosuu);
printf("** 単価×個数**       ==> %d\n",daikin=tanka*kosuu);
printf("** 累積合計代金**      ==> %d\n",ruiseki+=daikin);
printf("** 消費税込み累積合計代金** ==> %.1f\n",ruiseki*1.05);
}
}

414:デフォルトの名無しさん
07/07/15 16:13:02
intじゃあふれない?

415:デフォルトの名無しさん
07/07/15 16:14:30
今やってみたらあふれた
泣いた

416:デフォルトの名無しさん
07/07/15 16:16:41
首吊って死んでくるねっ☆


417:デフォルトの名無しさん
07/07/15 16:21:09
わかるだろうが一応死ぬ前に
fibonacci を int から double 型に変更して printf のところを %0.lf ってしといてくれ…とだけ言っておく
俺はもうだめだ


418:デフォルトの名無しさん
07/07/17 12:15:18
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):任意の回数だけコンピュータを相手にじゃんけんをするプログラムを作成しなさい.
ただし,コンピュータは時間によって変わる乱数により実現すること.また,あいこの場合は回数のカウントには含めないこととする
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:今日17時まで
[5] その他の制限:なし
できるだけ速くお願いします!!


419:デフォルトの名無しさん
07/07/17 12:23:08
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):正整数n を入力し,n× n の正方行列において,以下のような○と●のパターンを出力す
るプログラムを作成しなさい
n=1

n=2
●○
○○
n=3
○●○
●●○
○○○
n=4
●○●○
○○●○
●●●○
○○○○
n=5
○●○●○
●●○●○
○○○●○
●●●●○
○○○○○
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
お願いします。

420:デフォルトの名無しさん
07/07/17 12:33:46
>>409

フィボナッチは配列イラナイwww
int宣言でゴミ箱を作ればいいw

馬鹿ジャンw>>411 ワロタw


421:デフォルトの名無しさん
07/07/17 12:36:12
1→1→2→3→5といくのだから

a=1;b=1;c==a+b;
forでループさせてcを出力すればいいw

馬鹿ジャンw>>411 出来るだけ軽くしろw無能乙w


422:デフォルトの名無しさん
07/07/17 12:40:08
>>418
その程度で質問ってなんなの?

423:デフォルトの名無しさん
07/07/17 12:46:32
遅レスだが
>>32
「やさしいC(高橋麻奈著)」を読みながら
コマンドプロンプトで出来るテトリス作成(俺の時は無知から初めて2週間で形にはなった)

424:デフォルトの名無しさん
07/07/17 12:56:21
>418
(・3・) きっと、Windwsへのgccのインストール方だYO

425:デフォルトの名無しさん
07/07/17 13:29:10
>419
#include <stdio.h>

int main(void)
{
int i, j, n;

printf("n=");
scanf("%d", &n);

for(i=n; i > 0; i--) {
if(i%2) for(j=0; j<=n-i; j++) printf("○");
else for(j=0; j<n-i; j++) printf("●");
for(j=0; j<i/2; j++) printf("●○");
putchar('\n');
}

return 0;
}


426:デフォルトの名無しさん
07/07/17 14:43:29
>>418
URLリンク(kansai2channeler.hp.infoseek.co.jp)

427:426
07/07/17 14:51:53
初歩的な間違いをしていた。
>>418
修正版
URLリンク(kansai2channeler.hp.infoseek.co.jp)

428:デフォルトの名無しさん
07/07/17 16:20:07
Cのプログラミングでタイピングゲームを作るんだけど
クリアするのにかかった時間ではなく、
「1分あたりに入力したキー数」を結果として表示させるにはどうしたらいいだろう?

試行のたびに1分以上タイピングゲームするのが嫌だから、
10秒毎に入力数を記憶して、その平均を6でかけてやろうと思ったんだけど
10秒毎っていうのにひっかかってる。
秒数カウントするのはsleep関数での方法しか知らないから、
タイピングゲームを滞らせることなく実行しながら秒数をカウントって
どうすればいいのか全くわからん。

ネットのC言語講座とかでも調べてみたけどわからない…
友達に、教えてって言われたんだけど私もわからず、てんてこまい。誰か助けてー

429:デフォルトの名無しさん
07/07/17 17:45:32
clock使えばいいんでないの?
timeで十分か

430:デフォルトの名無しさん
07/07/17 18:05:17
具体的にどうすれば……

int main(void)
{
FILE *fp;
int i,len,ch,j,mojisu=0,nyu=0,key,seida,speed;
char buf[256];
char level;
clock_t start,end;
double jikan;

fp = fopen("file.txt","r");
if(fp == NULL) {
printf("File Open Error");
return 0;
}

printf("以下の文字列をタイプしてください。\n");
start=clock();

431:デフォルトの名無しさん
07/07/17 18:07:11
while(fgets(buf,256,fp)!=NULL) {
len = strlen(buf);
buf[len-1] = '\0';
len = strlen(buf);
mojisu = mojisu + len;

for(i=0;i<len;i++) {
printf("%s \r",&buf[i]);
fflush(stdout);
while(1){
ch = getch();
nyu = nyu + 1;
if(ch==buf[i]) {
printf(" \b");
break;
}
}
}
}

end = clock();
fclose(fp);
jikan = (double)(end - start) / CLOCKS_PER_SEC;
seida = mojisu * 100 / nyu;
speed = key * 6;

432:デフォルトの名無しさん
07/07/17 18:09:04
if(seida >= 90) {
if(speed <= 25) {
level = 'A';
} else if(speed <= 40) {
level = 'B';
} else {
level = 'C';
}
} else if(seida >= 60) {
if(speed <= 25) {
level = 'B';
} else {
level = 'C';
}
} else {
level = 'C';
}

printf("\n%3.1lf秒かかりました。\n",jikan);
printf("正打率は%d%\n",seida);
printf("タイプスピードは%d\n",speed);
printf("あなたのレベルは%c\n",level);
return 0;
}

いまこんなかんじ。speedの大体の値がどうなるかまだわからないので、テキトーに25と40に設定してあります

433:デフォルトの名無しさん
07/07/18 00:28:51
[1] 授業単元:IT入門B1
[2] 問題文:繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 (1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c
[4] 期限:2007年7月30日
[5] その他の制限: 特になし
参考プログラムです→URLリンク(www-it.sci.waseda.ac.jp)

よろしくお願いします。


434:デフォルトの名無しさん
07/07/18 02:03:13
>>433
マルチポスト(複数のスレに同じレスをつけること)は駄目だ
あと君の場合は元のスレの過去レスを読め
マルチポストじゃないのなら スレリンク(tech板) の過去レス読め

435:デフォルトの名無しさん
07/07/23 09:50:34
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux 3.4
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:c
[4] 期限:2007年7月30日
[5] その他の制限: 特になし
よろしくお願いします

436:デフォルトの名無しさん
07/07/23 16:09:55
訂正お願いします
URLリンク(kansai2channeler.hp.infoseek.co.jp)

437:デフォルトの名無しさん
07/07/23 16:22:34
>>436
どんな変数を使ったかは把握しておこうぜ?
とりあえず

while(length--)
*start++ = ch;

ってやればコンパイルは通る

438:デフォルトの名無しさん
07/07/23 16:42:00
なんか変な文字がでてきて・・・
下のような結果にならないんです
4 -89 0 1 5 43 ... 112 ← cmemset 使用前
0 0 0 0 0 0... 0 ← 0 で埋めたとき
88 88 88 88 88 88 ... 88 ← 88 で埋めたとき

439:デフォルトの名無しさん
07/07/23 17:00:02
>>438
どうみてもそうなるようには作られて無いからねww
表示は文字列じゃなくて数列なんでしょ?

440:デフォルトの名無しさん
07/07/23 17:26:30
数列だと思います
問題は435なんですが全然分からないんです

441:デフォルトの名無しさん
07/07/23 17:59:58
解けるようにできる問題ではないんですか?

442:デフォルトの名無しさん
07/07/23 18:08:48
#include <stdio.h>
#include<stdlib.h>

void cmemset(char *start, int value, int length);

int main(void)
{
int i, size = 10;
char *str;
//埋める前
str = (char *)malloc(sizeof(char) * size);
for(i=0; i<size; i++) printf("%3d ", (int)*(str+i));
putchar('\n');
//0で埋める
cmemset(str, 0, size);
for(i=0; i<size; i++) printf("%3d ", (int)*(str+i));
putchar('\n');
//88で埋める
cmemset(str, 88, size);
for(i=0; i<size; i++) printf("%3d ", (int)*(str+i));
putchar('\n');

return 0;
}

void cmemset(char *start, int value, int length)
{
while(length--) *start++ = (char)value;
return;
}


443:デフォルトの名無しさん
07/07/23 18:11:29
ありがとうございます!

444: ◆DpMW3bRjps
07/07/23 19:11:48
1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク): 任意の文字列を入力し、その文字列の中に任意の文字がいくつはいっているかを出力する
プログラム
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2007年7月24日17:00まで
[5] その他の制限: こないだ初めて文字列の入力を習いました、初心者です!
よろしく
お願いします


445:デフォルトの名無しさん
07/07/23 19:33:23
int CountChar(char *str, char ch)
{
int num = 0;
do {
if(*str == ch) num++;
} while(*str++);
return num;
}

入力は適当に作ってくれ

446: ◆UoNQqijD4I
07/07/23 20:26:11
>>444ですが、配列を使ってお願いします。
無理いってすみませんが…(;;)

447:デフォルトの名無しさん
07/07/24 15:28:06
あっちの宿題スレにレスあったで

448:デフォルトの名無しさん
07/07/24 16:03:21
[1] 授業単元:C言語 応用
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:YS2005
 [3.3] 言語:C
[4] 期限:2007/07/25 12:00
[5] その他の制限:なし

使用する関数(getstring)等も一緒に書いたため
見づらいかもしれませんがよろしくお願いいたします。

449:デフォルトの名無しさん
07/07/24 16:34:08
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):”rand1000.dat”というデータの個数nとその個数分の整数データが保存されているファイルがある
URLリンク(kansai2channeler.hp.infoseek.co.jp)


このデータをファイルから読み込み

挿入ソート
基数ソート
ヒープソート
クイックソート
マージソート

によってソートできるよう各プログラムを作成せよ

データ数が100,000個のときでも対応できるようメモリを確保しておいてください。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7月28日
[5] その他の制限:出来る限り単純なアルゴリズムで作ってください。合計5つのプログラムを作成してください。

大変な問題で申し訳ありませんがどなたか詳しい方よろしくお願いいたします

450:デフォルトの名無しさん
07/07/24 18:40:39
>>449
挿入ソート
URLリンク(kansai2channeler.hp.infoseek.co.jp)

451:デフォルトの名無しさん
07/07/24 18:48:08
>>449 ちょい変更、挿入ソートのみ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

452:デフォルトの名無しさん
07/07/24 19:32:23
>>450-451

ありがとうございます。助かります。

残りのもできればお願い致します


453:デフォルトの名無しさん
07/07/24 19:44:09
>>449 クイック
URLリンク(kansai2channeler.hp.infoseek.co.jp)

454:デフォルトの名無しさん
07/07/24 19:50:40
URLリンク(www1.cts.ne.jp)
このサイトからソースをパクッてw

455:デフォルトの名無しさん
07/07/24 20:04:37
>>449 
URLリンク(www1.cts.ne.jp)

基数ソート 、ヒープソート、マージソートはなんか面倒くさいから俺はパスw

456:デフォルトの名無しさん
07/07/24 20:18:36
>>449
いつもC++だからソートとか書かないしってことでリンクだけ
URLリンク(jyoken.net)
もしくは、URLリンク(oku.edu.mie-u.ac.jp) からZIP落とせ
(挿入ソートinssort.c 基数ソートradsort.c ヒープソートheapsort.c
マージソートmergsort.c クイックソートqsort1.c qsort2.c)


457:デフォルトの名無しさん
07/07/25 05:00:25
[1] 授業単元:演習
[2] 問題文(含コード&リンク): エレベーターの乗客の待ち時間をシミュレートするプログラムを書け
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC5.5
 [3.3] 言語: C
[4] 期限:7/26まで
[5] その他の制限:とくになし

URLリンク(kansai2channeler.hp.infoseek.co.jp)
まで書いたんですが明らかに変な出力しかされず困ってます
どこがおかしいか教えてもらえないでしょうか?

458:ぼるじょあ ◆hZ8e4Wjqvw
07/07/28 11:49:47
>>457
(・3・) エェー 期限過ぎてるけどやったほうがいいのかNA?
          どんな入力に対してどんな出力が欲しいか書いてくれYO!

459:名無しさん@そうだ選挙に行こう
07/07/29 15:05:47
宿題スレで解決しなかったのでこっち来ました

お尋ねしたいのですが以下のプログラムに、
「rand100000.dat(ランダムに数値が100000個並んでいるデータ)」
から読み込んでソートするというのを追加したいのですがどうすればよいでしょうか?

void BubbleSort(int Data[], int n)
{
int BeginPlace, ComparePlace;
//比較を始める位置を最初からn-1まで変えていく
for(BeginPlace = 0;BeginPlace < n;BeginPlace++)
{
//n - BeginPlaceまで比較する
for(ComparePlace = 1;ComparePlace < n - BeginPlace;ComparePlace++)
{
//右のほうが小さかったら交換する
if(Data[ComparePlace - 1] > Data[ComparePlace])
{
Swap(&(Data[ComparePlace - 1]), &(Data[ComparePlace]));
}
}
}

return;
}


460:ぼるじょあ ◆yBEncckFOU
07/07/29 16:11:22
>>459
(・3・)エエー rand100000.datの書式が分からないと答えられないYO

461:名無しさん@そうだ選挙に行こう
07/07/29 16:14:37
>>460
URLリンク(kansai2channeler.hp.infoseek.co.jp)

これは1000個のデータですけど


462:名無しさん@そうだ選挙に行こう
07/07/29 16:44:23
データファイルの先頭レコードに、データ件数がある場合と、
データ件数が固定件数か分かっている、ファイルの中はデータだけでは
処理の仕方が違うと思うがな。
このデータファイルって、予め件数がわからないという条件でなかったか?

463:名無しさん@そうだ選挙に行こう
07/07/29 16:52:41
いや、件数は分かってるんでとりあえずファイルから読み込むというmain関数を作ってほしいです

464:名無しさん@そうだ選挙に行こう
07/07/29 17:07:59
>>463

int main()
{
FILE * fp = fopen("4151.txt", "r");
int lines;
if (fscanf(fp, "%d", & lines) < 1) return 1;
int * array = calloc(sizeof(* array), lines);
if (array == NULL) return 1;
for (int ic = 0; ic < lines; ++ic) {
if (fscanf(fp, "%d", & array[ic]) < 1) return 1;
}
fclose(fp);
#if 0
for (int ic = 0; ic < lines; ++ic) printf("%d\n", array[ic]);
#endif
free(array);
return 0;
}

465:名無しさん@そうだ選挙に行こう
07/07/29 17:08:24
>>463 dataに読み込んでいる。
#include <stdio.h>
#define DATAFILE "rand100000.dat"
#define DATASIZE 100000
int data[DATASIZE];
int main()
{
FILE *fp;
char buf[80];
int i=0,size;
fp=fopen(DATAFILE, "r");
if(fp==NULL){
fprintf(stderr,"Can't open %s",DATAFILE);
return 1;}
while(fgets(buf,sizeof(buf),fp)!=NULL){
data[i]=atoi(buf);
i++;}
size=i;
printf("data count=%d\n",size);
for(i=0;i<size;i++)
printf("%d ",data[i]);
printf("\n");
return 0;
}

466:465
07/07/29 17:12:40
いけない。fclose(fp)が抜けている。
return 0;する前に入れてくれ。

467:デフォルトの名無しさん
07/07/30 09:34:26
[1] 授業単元:数値計算
[2] 問題文(含コード&リンク):
ガウスの消去法(ピボット選択ありで、計算時間表示あり)をプログラミングせよ
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2007/7/31

よろしくお願いします。。

468:デフォルトの名無しさん
07/07/30 10:24:42
URLリンク(tonosiki.mbnsk.net)
この問題の(3)標準偏差と(4)相対係数が分かりません。
どうか教えて頂けないでしょうか・・・?
よろしくお願い致します。

469:デフォルトの名無しさん
07/07/30 10:34:13
大変失礼致しました。
もしお時間がございましたらよろしくお願いいたします。

[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):URLリンク(tonosiki.mbnsk.net)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限: 07/8/1
[5] その他の制限: 特にありませんが、出来る限り単純なプログラムでお願いいたします。


470:デフォルトの名無しさん
07/07/30 10:38:00
>>468
相関係数や一時回帰はExcelでグラフを作れば計算してくれるからそれを参考に。
それ以外は判るのならそこまで自分で書いたものを寄越したまえ。

471:デフォルトの名無しさん
07/07/30 19:28:02
ぼるじょあって何?
昔麻原ショーコーのAAの三段活用をコピペしまくってた馬鹿がたしかそんなHN名乗ってたが。。

472:デフォルトの名無しさん
07/07/30 21:00:41
ぐぐれよ

473:デフォルトの名無しさん
07/07/30 21:15:12
>>469
> [2] 問題文(含コード&リンク):URLリンク(tonosiki.mbnsk.net)

404

474:デフォルトの名無しさん
07/07/31 11:06:46
>>473
マルチだ。ほっとけ。

475:デフォルトの名無しさん
07/08/01 21:05:38
[1] 授業単元:C言語
[2] 問題文:
指定された段数numの図形を画面に表示するプログラム部分である
□に適当なプログラムを書なさい。(プログラム中のi,jはint型変数)

for(i=1;□;i++){
for(j=1;j<=□;j++){
printf(□);
}
for(j=1;□;j++){
printf("%d",i);
}
putchar(□);
}

[3] 環境
 [3.1] OS:WINDOWS XP
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語: C
[4] 期限: 8月1日まで

実行結果
何段?num=5
1
22
333
4444
55555


よろしくお願いします

476:ぼるじょあ ◆yBEncckFOU
07/08/01 21:30:17
(・3・)アルェー? for文多くないかNA?

for(int i=1;i<=num;i++)
{
// for(j=1;j<=□;j++)
// {
// printf(□);
// }

 for(int j=1;j<=i;j++){
  printf("%d",i);
 }

 putchar('\n');
}

477:デフォルトの名無しさん
07/08/06 23:14:22
[1] 授業単元:応用ネットワークプログラミング2
[2] 問題文

TCPおよびUDPのチェックサムを計算するプログラムを作成せよ
なお、IPは以下のようにする。
src 200.199.198.197
dest 1.2.3.4

[3] 環境
 [3.1] OS: Linux
 [3.2] Gentoo
 [3.3] 言語:C言語
[4] 期限:6月9日の水曜日まで
[5] その他の制限:Cが苦手で困っています。

478:ぼるじょあ ◆hZ8e4Wjqvw
07/08/07 19:39:58
>>477
(・3・) エェー 2010年6月9日までまだまだあるから自分でやれYO!

ここを見ればスグだYO!
URLリンク(www.geekpage.jp)

479:デフォルトの名無しさん
07/08/07 22:17:29
[1] 授業単元:C
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WINDOWS XP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C
[4] 期限: 8月8日

480:デフォルトの名無しさん
07/08/07 22:21:35
>>479
スレリンク(tech板:681番)

481:デフォルトの名無しさん
07/08/07 22:50:58
>479
宿題スレと同じ?
向こうは少し条件足りてないけど。
int arr_min_pos(int arr[], int n)
{
int pos;
if(n==1) return arr[0] < 0 ? -1 : 0;
pos = arr_min_pos(arr, n-1);

return arr[n-1] < 0 || arr[n-1] > arr[pos] ? pos : n - 1;
}

482:デフォルトの名無しさん
07/08/29 12:59:49
言語:C
コンパイラ名とバージョン:ボーランド
OS:XP

問題:ユーザー関数の作成
再帰関数を使って、xのn乗を求めるプログラムを作成しなさい
プロトタイプ宣言:int power(int x,int n);
実行画面
文字列入力==>2
文字列入力==>0
値:1

文字列入力==>2
文字列入力==>3
値:8

文字列入力==>6
文字列入力==>4
値:1296

483:デフォルトの名無しさん
07/08/29 13:29:55
int power(int x,int n)
{
return n <= 1 ? x : x * power(x, n-1);
}

484:デフォルトの名無しさん
07/08/30 04:55:24
日本オワタな

485:ぼるじょあ ◆hZ8e4Wjqvw
07/08/30 22:19:11
>>483
(・3・) エェー 惜しいYO!

x=2 n=0

486:homoじょあ ◆5OLf4yFnuM
07/08/31 00:20:34
(・3・) エェー 久々に来たけどもみあがってないNE

487: ◆uWJL1MSv.M
07/09/01 23:19:03
[1] 授業単元: データ構造とアルゴリズム
[2] 問題文: ①Cell型のオブジェクトa,b,c,d,eを用意し、
        それぞれvalueに10,20,30,40,50を設定し、
       a→b→c→d→eと連結する。valueの値を順に出力しなさい。

       ② ①のプログラムに書き足し、オブジェクトcの次(オブジェクトd)を削除し、
         valueの値を順に出力しなさい。次にオブジェクトaを削除し、
         valueの値を順に出力しなさい。

       ③ ②のプログラムに書き足し、オブジェクトcの次にオブジェクトaを挿入し、
         valueの値を順に出力しなさい。次に先頭にオブジェクトdを挿入し、
         valueの値を順に出力しなさい。
      
       ④ ①のプログラムを双方向リストにし、valueの値を逆順に出力しなさい。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VisualC++.net
 [3.3] 言語: C++
[4] 期限: 2007年9月3日まで

よろしくお願いします。


488:homoじょあ ◆5OLf4yFnuM
07/09/02 11:12:09
(・3・) エェー Cell型ってどんなんだYO

489:デフォルトの名無しさん
07/09/02 11:17:38
細胞に関するクラスじゃね?

490:homoじょあ ◆5OLf4yFnuM
07/09/02 11:23:08
(・3・) エェー そりは難しそうですNE

491:デフォルトの名無しさん
07/09/02 13:36:36
乾電池かも知れず。

492:デフォルトの名無しさん
07/09/02 14:02:41
直列に繋いで電圧を調べるのか

493:デフォルトの名無しさん
07/09/02 14:08:59
貨車かもしれんぞ

494: ◆uWJL1MSv.M
07/09/02 14:24:09
すいません。

セル

連結リストはセル (cell) というデータを繋げて作ります。
セルにはデータを格納する場所と、次のセルを指し示す場所から構成されます。
図でいうと、箱がひとつのセルを表していて、左側にデータを格納し、
右側に次のセルへの参照を格納します。

セルの型の定義
class Cell{
private:
Cell* next; //次のセルへのポインタ
int value; //値
public:
Cell(){next = NULL; value = 0;} //コンストラクタ
void setNext(const Cell* p){next = p;} //nextを設定する
void setValue(int a){value = a;} //valueを設定する
Cell* getNext(){return next;} //nextの値を得る
int getValue(){return value;} //valueの値を得る

   …
};

495:デフォルトの名無しさん
07/09/02 15:08:55
なんだ。もうできてんじゃん

496:homoじょあ ◆5OLf4yFnuM
07/09/02 18:29:36
>>487
(・3・) エェー ①だけやってみたお
int main(){
Cell *list = new Cell();
Cell *header = list;

for(int i=1; i<=5; i++){
list->setNext(new Cell());
list->getNext()->setValue(i*10);
list = list->getNext();
}

while(header->getNext() != NULL){
header = header->getNext();
std::cout << header->getValue() << std::endl;
}

return 0;
}


497: ◆uWJL1MSv.M
07/09/02 20:58:11
ありがとうございます。
すいません、②、③、④もお願いします。

498:homoじょあ ◆5OLf4yFnuM
07/09/02 21:30:19
(・3・) エェー つーか①間違ってたお

int main(){
Cell *a, *b, *c, *d, *e;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);

Cell *header = a;

while(header != NULL){
std::cout << header->getValue() << std::endl;
header = header->getNext();
}
return 0;
}


499:homoじょあ ◆5OLf4yFnuM
07/09/02 21:42:41
(・3・) エェー ②ってこんなん?
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;

c->setNext(c->getNext()->getNext());
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
header = header->getNext();
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}


500:homoじょあ ◆5OLf4yFnuM
07/09/02 21:47:59
(・3・) エェー ③・・なんか意図が違う気がしてきたお
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;
//②の処理
c->setNext(c->getNext()->getNext());
header = header->getNext();

//③で追加
a->setNext(c->getNext());
c->setNext(a);
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
d->setNext(header);
header = d;
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}


501:homoじょあ ◆5OLf4yFnuM
07/09/02 21:52:53
(・3・) エェー そろそろ書き込みが規制される予感
④のクラスの変更

class Cell{
Cell *next;
Cell *front;
int value;
public:
Cell();
void setNext(Cell*);
void setFront(Cell*);
void setValue(int);
Cell* getNext();
Cell* getFront();
int getValue();
};

Cell::Cell(){next = NULL; front = NULL; value= 0;}
void Cell::setNext(Cell *next){this->next = next;}
void Cell::setFront(Cell *front){this->front = front;}
void Cell::setValue(int value){this->value = value;}
Cell* Cell::getNext(){return next;}
Cell* Cell::getFront(){return front;}
int Cell::getValue(){return value;}


502:homoじょあ ◆5OLf4yFnuM
07/09/02 22:00:00
(・3・) エェー ④
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
Cell *array[] = {NULL, a, b, c, d, e, NULL};
for(int i=1; i<=5; i++){
array[i]->setFront(array[i-1]);
array[i]->setNext(array[i+1]);
}
header = a;
list = header;
while(list->getNext() != NULL)list = list->getNext();
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getFront();
}
return 0;
}


503: ◆uWJL1MSv.M
07/09/03 01:35:15
助かりました。ありがとうございました。

504:デフォルトの名無しさん
07/09/08 20:37:58
この痛いやつのリアルアドレス求む

URLリンク(www.nicovideo.jp)

505:デフォルトの名無しさん
07/09/09 00:25:09
>>504
そんなもんTCP/IPバイブル読み尽くしたらすぐにわかるわ。
そんな努力もせんと、人に聞くな。何するつもりや。

506:homoじょあ ◆5OLf4yFnuM
07/09/09 02:18:05
(・3・) エェー 素晴らしい説明でしたお

507:デフォルトの名無しさん
07/09/13 09:15:37
授業単元:C言語
問題文(含コード&リンク):文字列を入力し、圧縮しながら他の文字列配列に格納しなさい
使用する主な標準関数:strlen()、sprintf()など

実行画面
入力文字列(m1)==>AAAAAAABBBCddEEEE####
圧縮(m2):@7A@3BC@2d@4E@5#
圧縮比:72.7%

環境
OS: Windows
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:



508:デフォルトの名無しさん
07/09/13 10:02:28
>>507
マルチすんな
C/C++ に今答えを書き込んだけど消したくなった

509:507
07/09/13 10:16:30
>>508
m9(^Д^)プギャー

510:ぼるじょあ ◆hZ8e4Wjqvw
07/09/26 21:19:21
>>507
(・3・) エェー 暇だYO!

#include<stdio.h>
#include<string.h>

int main(void){
char m1[100+1], m2[100*3+1], *ptr=m2;
int m1_len, i;

printf("入力文字列(m1)==>");
scanf("%100s", m1);
m1_len=strlen(m1);
for(i=0;i<m1_len;i++) ptr+=sprintf(ptr, "@1%c", m1[i]);
printf("圧縮(m2):%s\n", m2);
printf("圧縮比:%.1f%%\n", strlen(m2)*100./m1_len);
return 0;
}

511:デフォルトの名無しさん
07/09/28 00:16:11
短!って思ったら、、ちょwww

もうPerlでいいよw
s/(.)\1+/"@".length($&).$1/ge

512:デフォルトの名無しさん
07/09/28 02:30:25
ぼるじょあへ挑戦状

君に花札のプログラムを作れるかな?
ルールは花合わせだ
おっと、無理ならやらなくてもいいんだぜ?
それじゃ、goodluck!

513:ぼるじょあ ◆hZ8e4Wjqvw
07/09/28 03:27:19
>>512
(・3・) エェー 挑戦ってことはAI同士の対戦ってことかYO!

514:デフォルトの名無しさん
07/09/28 14:44:39
->
を使ったプログラムを作れ

515:デフォルトの名無しさん
07/09/28 20:52:12
>>514
#include <stdio.h>
int main(void) {
printf("->");
return 0;
}


516:デフォルトの名無しさん
07/09/28 21:21:57
#include <stdio.h>
int main(void) {
int n = 0;
printf("%d", n-->0);
return 0;
}

517:デフォルトの名無しさん
07/10/06 18:44:59
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):
「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。
【条件】
(1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。
(2)カレンダークラスはカプセル化されていること。
(3)カレンダー表示には,年,月および曜日,日を表示すること。
(4)「閏年」「祝日」「節句」「二十四節気」の表記を可能にする。
(5)上記以外については自由に作成してよい。

[3] 環境
 [3.1] OS: Windows VISTA or XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2007/10/7 23:00まで。
[5] その他の制限: 特になし

よろしくお願いします。

518:ぼるじょあ ◆hZ8e4Wjqvw
07/10/06 19:52:43
>>517
(・3・) エェー 太陽暦から旧暦に変換する数式はないのかYO!

519:デフォルトの名無しさん
07/10/07 12:16:21
>>518
六曜でしょうか?
すみません、変換式わからないです


520:デフォルトの名無しさん
07/10/07 13:41:28
>>518
(4)でわからない数式の部分は省いてもらって良いです。
申し訳ないです

521:デフォルトの名無しさん
07/10/07 14:57:23
今日中は辛いな…
今日は研究が忙しい…


522:デフォルトの名無しさん
07/10/07 23:59:48
>>517です

>>521
期限は切れてしまってますが、待てます
研究のほうがんばってください


523:デフォルトの名無しさん
07/10/08 04:40:21
作るけどレイアウトとかは自分で調整してね

524:デフォルトの名無しさん
07/10/08 05:13:49
祝日設定が面倒だったので断念


525:デフォルトの名無しさん
07/10/08 13:42:01
ええ!?
突き落とされた気分です・・・

526:デフォルトの名無しさん
07/10/08 15:02:06
ためしにやってみてるけど面倒すぎるんだよな

527:デフォルトの名無しさん
07/10/08 16:58:08
途中まで。祝日とか二十四節気の表示は自分でやって。面倒すぎる。

#include "stdafx.h"
#include <iostream>
#include <string>
#include <map>
#include <cassert>

#define numof(a) (sizeof(a) / sizeof((a)[0]))

/** ある年ある月の日
 */
class CDay {
private:
int m_year;
int m_month;
int m_day;

public:
CDay(int year, int month, int day) : m_year(year), m_month(month), m_day(day)


528:デフォルトの名無しさん
07/10/08 16:59:26
{
assert(month >= 1 && month <= 12);
assert(year >= 0);
}

~CDay() {}

/** 曜日
*/
std::string GetDayOfWeek()
{
int nDayOfWeek = (5 * m_year / 4 - m_year / 100 + m_year / 400 + (26 * m_month + 16) / 10 + m_day) % 7;

static const char *szDayOfWeek[] = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };
return szDayOfWeek[nDayOfWeek];
}


529:デフォルトの名無しさん
07/10/08 17:01:04

/** 節句
*/
bool GetSeasonalFestival(std::string& name)
{
struct SeasonalFestival {
int month;
int day;
char *name;
} stSeasonalFestivals[] = {
{ 1, 7, "Jinjitsu"},
{ 3, 3, "Joushi"  },
{ 5, 5, "Tango"   },
{ 3, 9, "Chouyou" }
};

name = "";

for (int i = 0; i < numof(stSeasonalFestivals); ++i) {
if (stSeasonalFestivals[i].month == m_month && stSeasonalFestivals[i].day == m_day) {
name = stSeasonalFestivals[i].name;
return true;
}
}

return false;
}


530:デフォルトの名無しさん
07/10/08 17:01:50

private:
CDay(CDay&);
CDay& operator =(CDay&);
};

/** ある年ある月のカレンダー
 */
class CCalender {
private:
int m_year;
int m_month;

public:
CCalender(int year, int month) : m_year(year), m_month(month)
{
assert(month >= 1 && month <= 12);
assert(year >= 0);
}

~CCalender() {}

/** カレンダーをコンソールに表示
*/
void Show()
{
ShowTitle();
ShowBody();
}


531:デフォルトの名無しさん
07/10/08 17:02:37

private:
/** その月の日数

@ref URLリンク(bal4u.dip.jp)
*/
int NumOfDay() const
{
static int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if (m_month == 2) {
return days[1] + (m_year % 4 == 0 && m_year % 100 != 0 || m_year % 400 == 0);
} else {
return days[m_month-1];
}
}


532:デフォルトの名無しさん
07/10/08 17:07:09

/** 閏年
*/
bool IsLeapYear() const
{
return (0 == (m_year % 400)) || ((0 != (m_year % 100)) && (0 == (m_year % 4)));
}

/** タイトルを表示
*/
void ShowTitle() const
{
std::cout << std::endl;
std::cout << '\t'
     << m_year << '/' << m_month
     << (IsLeapYear() ? " (Leap Year)" : "") << std::endl;
std::cout << std::endl;
}


533:デフォルトの名無しさん
07/10/08 17:07:48

/** 日を表示
*/
void ShowBody() const
{
int nNumOfDay = NumOfDay();
for (int i = 1; i <= nNumOfDay; ++i) {
CDay day(m_year, m_month, i);

std::string strSeasonalFestival;
day.GetSeasonalFestival(strSeasonalFestival);

std::cout << i << "\t(" << day.GetDayOfWeek() << ")"
     << "\t" << strSeasonalFestival << std::endl;
}
}

private:
CCalender(CCalender&);
CCalender& operator =(CCalender&);
};

int _tmain(int argc, _TCHAR* argv[])
{
CCalender calender(2000, 1);
calender.Show();
return 0;
}



534:デフォルトの名無しさん
07/10/08 17:12:53
終わり。

ちなみに >>526 じゃないです。

535:ぼるじょあ ◆yBEncckFOU
07/10/08 19:14:44
(・3・) 一応できたけど我ながらひどい出来
     エラー処理とか表示の整形は自分でやってNE!
URLリンク(kansai2channeler.hp.infoseek.co.jp)

536:デフォルトの名無しさん
07/10/08 19:58:50
>>534
>>535
ありがとうございました。
お二人のプログラム使わさせていただきます^^

537:デフォルトの名無しさん
07/10/08 21:12:48
つかこんなもんをわざわざ作らせるなんて面倒な授業だな…。


538:デフォルトの名無しさん
07/10/08 21:49:07
ええ、この教授のだす課題はいつもこんな感じで
毎週地獄です

539:デフォルトの名無しさん
07/10/18 17:17:40
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: XP VISTA
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 10/20 ~10:00
[5] その他の制限: 特になし

濃い内容ですが
よろしくお願いします。

540:デフォルトの名無しさん
07/10/22 13:41:11
1] 授業単元: c++プログラミング
[2] 問題文(含コード&リンク):
10個の製品の在庫管理のプログラムを作成しなさい。
全ての製品は初期在庫として、1000個の在庫を持っている。毎日80~120個ランダムに減っていく。
また、製品によって減っていく量は異なるものとする。
在庫量が300個(発注点)以下になった製品は発注をかけ、その三日後に500個納品される。
終了条件:1000日
単位時間: 日
出力の例:
製品A
 前日在庫量 需要量 当日在庫量
  320    120   200
  200    100   100
  100    110    0
○日に10個欠品しました!!
500個納品されました!!
  490    90   400

各製品ごとに上記のように表示されるようにしなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ: bcc
 [3.3] 言語: C++
[4] 期限:22日19時
[5] その他の制限: できれば、後から簡単に、初期在庫量・発注点・製品数などを変更できるようにしてください。

よろしくお願いします。


541:デフォルトの名無しさん
07/10/22 22:14:49
いくらなんでも期限ギリギリすぎるだろ

542:さとみ
07/10/23 20:22:42
#include <stdio.h>
#include <stdlib.h>
struct node{ int data;
struct node *next;
};
struct node *head;
void add_head(int x)
{ struct node *p;
p = (struct node *)malloc(sizeof(struct node));
p->data = x;
p->next = head;
head = p;}
void print_list(struct node *q)
{ struct node *p;
printf("list\n");
for(p = q;p != NULL;p = p->next){
printf("%d\n"p->data);}}
main(int argc, char *argv[])
{ int i, val, n;
head = NULL;
n = atoi(argv[1]);
for(i = 0;i < n; i++){
scanf("%d",&val);
add_head(val);}
print_list(head);
return(0);}
コンパイルしてみた結果二箇所にエラーが発生しました
間違えたどころどうか直してもらえないでしょうか
お願いします

543:デフォルトの名無しさん
07/10/23 21:40:46
>>542

宿題スレに回答あげたぞ

544:デフォルトの名無しさん
07/11/05 18:40:58
保守

545:00ち
07/11/08 16:19:05
[1] 授業単元:
[2] 問題文(含コード&リンク):0~99までランダムで得た値の平均と総計を求めるプログラムですが
      currentを使い、書き直したいですが教えてください。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{   int rints[30];
int i, sum=0;
int j = 0;
float avrg;
srand((unsigned)time(NULL));
for(j=0; j<1; j++){
printf("\n");
for(i=0; i<30; i++)
{    rints[i] = rand()%100;
printf( " %d ", rints[i] );
sum += rints[i];}
printf("\n");
avrg = sum / 10.f;
printf( " 総計: %d , 平均: %.2f\n", sum, avrg );
sum = 0; }
return 0;}
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限:本日
[5] その他の制限:なし

546:デフォルトの名無しさん
07/11/08 16:22:06
[1] 授業単元:
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月9日10:00まで]
[5] その他の制限: 特にありません
どうぞよろしくお願いします

547:デフォルトの名無しさん
07/11/08 16:23:36
>>546
マルチ乙
スレリンク(tech板:120番)

548:デフォルトの名無しさん
07/11/08 18:27:33
>>545
currentってなんでつか?

549:デフォルトの名無しさん
07/11/08 20:09:20
任意の自然数をキーボードから入力し、
素因数分解を行った結果を画面に出力するプログラムを作成すること

この問題をお願いします(^^)

550:デフォルトの名無しさん
07/11/08 20:35:22
>>549
任意と言うことは、グーゴルプレックスも入力できないとダメかしら。
む、難しいなぁ。

551:デフォルトの名無しさん
07/11/08 20:50:11
数字を入力して因数分解するだけでいいです

552:デフォルトの名無しさん
07/11/08 21:13:54
>>549
ヒント: テンプレ

553:デフォルトの名無しさん
07/11/08 21:16:26
#include <stdio.h>

int main(void)
{
int i, n;
scanf("%d", &n);

for(i=2; i<n; ) {
if(n%i==0) {
printf("%d * ", i);
n /= i;
}
else i++;
}
printf("%d\n", n);

return 0;
}


554:デフォルトの名無しさん
07/11/09 00:19:57
11月10日までなので急いでください。お願いします。ちなみに、
for文とif文だけでお願いします(^_^)


555:デフォルトの名無しさん
07/11/09 00:30:39
ありがとうございました。o(^o^)o
本当に助かります。o(^ヮ^)o

556:グーゴルプレックスは10の(10の10乗)乗だっけ?
07/11/09 10:28:31
>>551
だから、どんな数字?
単に「任意」では巨大な数字も入力できないといけないのか、
それとも1000程度の数字まで出いいのか判らないでしょ。

557:デフォルトの名無しさん
07/11/09 15:47:42
>>556
じゃあ巨大な数のほうで

558:デフォルトの名無しさん
07/11/11 06:29:06
JavaでいうところのBigIntegerを作れというのか
アホか

559:デフォルトの名無しさん
07/11/16 11:56:40
da

560:デフォルトの名無しさん
07/11/16 12:02:00
[1]C言語上級
[2]
入力ファイルフォーマット:
source-node destination-node packet-loss-rate
a b 0.3
a c 0.1
.
z w 0.9


Step1: 二行目からデータを読み込みます.例えば,node a から node bまで
のパケット損失率0.3から最後までに読むこと.ノードペア毎のパケット損失率
を記録する.
※ 下記変数が必要
char *node_pair_name[1000]; //ノードペア名を記録する,行ごとは一記録と
します.何行があるならば,何個の記録がある.後で使う.
double packet_loss_rate[1000];//ノードペア毎に記録する,
Step2: 読み込んだデータpacket_loss_rateをJI(double *x, int n)に
渡して,JIを計算します.
Step3: JI出力

以上のプログラムを作りなさい
[3]C言語
[4]11月18日

このプログラムがわかりません.よろしくお願いします.



561:デフォルトの名無しさん
07/11/16 14:39:57
[1] 授業単元: C
[2] 問題文:????を埋めよ
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: (C
[4] 期限:2007 11.16

562:デフォルトの名無しさん
07/11/16 14:43:32
#include <stdio.h>
#include <stdlib.h>
#define NMAX 20

/* リストの構成要素となる構造体 node_tag */
struct node_tag {
int num;
char name[NMAX];
??????? /* 自己参照:次のデータへのポインタ next */
};


int main(void)
{
/* 12の要素をもつ構造体配列の定義 */
struct node_tag Month[12] = { {1, "January", NULL},
{2, "February", NULL},
{3, "March", NULL} };
struct node_tag *p; /* ポインタ p */


???????
    p=&Month[0];
while (p!=NULL){
printf("%d %s\n", ???????, ???????); /* p の num と p の name を表示する */
p=??????? /* p を p の next とする */
}
return 0;
}



563:デフォルトの名無しさん
07/11/16 14:44:58
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
#define MMAX 100
struct node_tag {
int num;
char name[NMAX];
??????? /* 自己参照:次のデータへのポインタ */
};
int main(void)
{
struct node_tag Meibo[MMAX]; /* 構造体配列の定義 */
int n=0; /* 配列の番号を格納する整数 n,初期値は 0 */
struct node_tag *head, *p; /* リストの先頭を指すポインタ head,新しく追加するノードを指すポインタ p */
head=NULL;
while ( scanf("%s", ???????) != EOF ){
Meibo[n].next=???????; /* 新しく追加するノード(Meibo[n]) の next が指すものは? */
head=???????;
???????=n++; /* Meibo[n] の num に配列番号を格納する整数を入れる */
}
     p=head;
while (p!=NULL){
printf("%d %s\n", ???????, ???????); /* p の num と p の name を表示する */
p=???????; /* p を p の next とする */
}
return 0;
}
以上の二つです
見づらいですが解答おねがいします

564:デフォルトの名無しさん
07/11/16 19:05:15
????なんて無くね?

565:デフォルトの名無しさん
07/11/16 19:47:55
?の個数が違うのはスルーで^^;

566:デフォルトの名無しさん
07/11/16 20:10:01
s/\?/梅/g

567:デフォルトの名無しさん
07/11/16 21:21:42
[1] 授業単元:プログラミング、関数基礎
[2] 問題文(含コード&リンク):
メイン関数において、2つの放物線
 y=ax2+bx+c
 y=px2+qx+r
の係数a、b、c、p、q、rをキーボードから入力し、その数値を関数に引数として渡す。
関数はその数値を用いて2曲線の交点の有無を調べ、その交点の個数を戻り値とし
てメイン関数に渡す(交点が無い場合は0、交点が1つの場合は1、交点が2つの場
合は2、交点が無限に存在する場合はー1を戻り値にする)。また関数は、もし交点が
有限個存在するならばそれらの交点の座標値をメイン関数に渡す。メイン関数は関数
から得たこれらの情報を得て、交点の個数を画面に表示し、さらにもし交点が有限個
存在するならばそれらの座標値を画面に表示する。そのようなプログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C
[4] 期限: 2007年11月19日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
C言語の基礎しか習っていません。
どなたかよろしくお願いします。


568:デフォルトの名無しさん
07/11/17 02:24:01
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
① 3×10の2次元配列を用意する。
② キーボードから任意の文字列を3つ入力し、配列に入れる。
③ その入力データーから文字tがあるかどうかを判定し、見つけた場合、下図のように
   その2次元配列の場所をすべて画面に表示し、見つけた個数も表示する。
  入力データ;Computer、Data、Internet
  
  図 [0]行目の文字列を入力_>Computer
[1]行目の文字列を入力_>Data
[2]行目の文字列を入力_>Internet

[0]行目[5]列目に文字tを発見
    [1]行目[2]列目に文字tを発見
    [2]行目[2]列目に文字tを発見
    [2]行目[7]列目に文字tを発見
    
    文字tを全部で4文字見つけました  
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 指定なし
[3.3] 言語: C
[4] 期限: 2007年11月19日
[5] その他の制限: 特にありません。お手数ですがよろしくお願いします。

                            


569:デフォルトの名無しさん
07/11/17 02:25:23
1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
① 3×10の2次元配列を用意する。
② キーボードから任意の文字列を3つ入力し、配列に入れる。
③ その入力データーから文字tがあるかどうかを判定し、見つけた場合、下図のように
   その2次元配列の場所をすべて画面に表示し、見つけた個数も表示する。
  入力データ;Computer、Data、Internet
  
[0]行目の文字列を入力_>Computer
[1]行目の文字列を入力_>Data
[2]行目の文字列を入力_>Internet

[0]行目[5]列目に文字tを発見
[1]行目[2]列目に文字tを発見
[2]行目[2]列目に文字tを発見
[2]行目[7]列目に文字tを発見
    
文字tを全部で4文字見つけました  
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 指定なし
[3.3] 言語: C
[4] 期限: 2007年11月19日
[5] その他の制限: 特にありません。お手数ですがよろしくお願いします。

                            


570:デフォルトの名無しさん
07/11/17 02:44:53
>>569
static char inputbuf[REPEAT][BUFSIZE];

int
main(void)
{
char *p = NULL;
int nfound = 0, i;

for (i = 0; i < REPEAT; i++) {
printf("[%d]行目の文字列を入力_>", i);
if (fgets(inputbuf[i], BUFSIZE, stdin) == NULL) {
perror("fgets");
exit(1);
}
}
for (i = 0; i < REPEAT; i++) {
p = inputbuf[i];
while ((p = strchr(p, CHAR)) != NULL) {
printf("[%d]行目[%d]列目に文字%cを発見\n", i+1, p-inputbuf[i]+1, CHAR);
nfound++;
p++;
}
}

printf("文字%cを全部で%d文字見つけました\n", CHAR, nfound);

return 0;
}

571:デフォルトの名無しさん
07/11/17 03:02:59
>>569
>>570がコンパイルできなかったら、ソースの先頭に以下の行を追加シル。
それと多重投稿は、ヤメレ。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define REPEAT 3
#define BUFSIZE 10
#define CHAR 't'

572:デフォルトの名無しさん
07/11/17 03:25:36
多重投稿すみません。図のところのずれが少し気になりましたので。

573:デフォルトの名無しさん
07/11/17 03:26:38
あと助けてもらってありがとうございます。

574:デフォルトの名無しさん
07/11/17 03:49:02
ここのスレってもうひとつの宿題のスレとどうちがうの?

575:デフォルトの名無しさん
07/11/17 10:49:16
[1] 授業単元:統計学
[2] 問題文:
対数の足し算をするプログラムをつくれ。ただし計算
で用いるのはlog(x)=-1.966113,log(y)=-103.23,log(z)=-80.98,log(w)=0を用いよ。
(1)log(X+Y)
(2)log(X+Y+Z)
(3)log(W+X+Y+Z)

x=0.14 x=0.000000000000000000422
y=0.000000000000000023134 w=1ですが、w,x,y,z,を足してlogかけた値が
(4)になります。
しかしこの問題ではlogの値をexpかけずに計算せよ。
対数の足し算は以下を用いよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月17日24時
[5] その他の制限:
お願いします。
それぞれ分けてつくってほしいんですが。

576:デフォルトの名無しさん
07/11/17 19:16:23
神経衰弱を行うゲームを作成すること。
ただし、カードは52枚全て使用し、絵柄の
区別は無いものとする。

このプログラムをお願いします。(^o^)
期限は、11月18日までです。

577:デフォルトの名無しさん
07/11/17 23:14:10
ぼるじょあいないのかーい?

578:homoじょあ ◆5OLf4yFnuM
07/11/18 01:42:53
(・3・) エェー 忙しいか酔っ払ってるかだお

579:デフォルトの名無しさん
07/11/18 03:17:08
575
ですけどもうOKです。
小数点とlogの関係をみてみたら
logの2くらいの差でもかなり大小ありました。

580:デフォルトの名無しさん
07/11/18 16:06:09
C言語ではなく、Fortranなんですが宿題教えてくれませんか。

・xとyの2つの数値の約数と最小公倍数、最大公約数を求めなさい。

581:デフォルトの名無しさん
07/11/18 16:09:52
>>580
C でやればいいんじゃないかな?

582:デフォルトの名無しさん
07/11/18 19:41:58
>>574
投稿が少ないから比較的スルーされにくいが、
能力が低いので難しい問題は解けない

583:デフォルトの名無しさん
07/11/18 19:47:17
>>580
Fortranつっても77と90じゃ違いすぎるんでどのFortranかハッキリしてもらえますか?
あと期限と、xとyはキーボードから入力するのか、コードに直接書き込むのかその辺の所も
ハッキリ書いて貰えますかね?

584:デフォルトの名無しさん
07/11/18 21:01:50
576ですけど、カードは54枚です。
期限は、明日までです。

585:デフォルトの名無しさん
07/11/18 21:16:06
詳細な説明が全く無いし、テンプレに従ってないからできません

586:デフォルトの名無しさん
07/11/18 21:16:11
>>584
おお、期限が迫ってきて、じょじょに小出しの情報が揃ってきたな。
もう少し待てば、重要な情報が得られるかもな。

587:デフォルトの名無しさん
07/11/18 21:17:49
580ですが、f77でコンパイルしているので、たぶん77だと思います。
unix環境で、端末エミュレータからmuleを起動して、xとyをキーボードから
入力していますが、参考になりますでしょうか・・・

588:デフォルトの名無しさん
07/11/18 22:20:40
>>580
Fortranはほとんど使わないんで酷いコードだが取りあえず動くはず(Salford FTN77で作動確認)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

589:ぼるじょあ ◆hZ8e4Wjqvw
07/11/18 22:58:20
>>576
(・3・) エェー カード枚数間違えちゃったYO!
          直しておいてくれYO!
URLリンク(kansai2channeler.hp.infoseek.co.jp)

#define CARD_NUM 14

#define CARD_NUM 54

590:デフォルトの名無しさん
07/11/19 05:23:33
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):1次元変数c[2]を関数polyに送り、
c[0]x^2+c[1]x+c[2]=0の二つの解(実部と虚部:xre[2],xim[2])を
polyから受け取って、2つの解を表示するプログラム
(引数は、c,xre,ximとなる)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: [2007年11月19日14:30まで]
[5] その他の制限:なし
期限は短いですが、よろしくお願いします

591:デフォルトの名無しさん
07/11/19 11:18:55
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: XP VISTA
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語: C++
[4] 期限: 11/21 ~10:00
[5] その他の制限: 特になし

よろしくお願いします。


592:デフォルトの名無しさん
07/11/19 13:15:11
>>590
出来たYO BCCだと発狂するYO
URLリンク(kansai2channeler.hp.infoseek.co.jp)


593:デフォルトの名無しさん
07/11/19 14:48:36
>>592
ありがとうございました
すごい助かりました

594:デフォルトの名無しさん
07/11/19 22:25:24
[1] 授業単元:C言語
[2] 問題文
ある打撃点から目標に向かってまと狙いを行い、命中させるプログラム。
打撃点から目標点までの距離、障害までの距離
障害の幅と高さ、および風速を初期設定条件とし、
ゲームをする時は距離と風速のみ表示
打撃点からの玉の発射角(θ)初速度(Vo)を設定すると到達距離を計算し
目標点との差を表示するプログラム
障害物に当たると失敗と表示させる。
目標点より手前に落ちても失敗と表示。
目標点からの玉の距離を表示させる。
[3] 環境
 [3.1] OS: XP VISTA
 [3.2] コンパイラ名とバージョン: BCC
 [3.3] 言語: C
[4] 期限: 11/21 ~9:30
[5] その他の制限: 特になし

595:デフォルトの名無しさん
07/11/19 23:15:08
XP VISTAって何?

596:デフォルトの名無しさん
07/11/20 02:02:35
xpとvista両方可能です、と

597:デフォルトの名無しさん
07/11/20 18:52:08
すいまんせん。マルチになってしまうのですが
時間がないのでこちらでできたらおねがいします。
[1] アルゴリズムとデータ構造
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] Windows
 [3.2] Visual Studio 2005
 [3.3] C
[4] 期限: 11月20日


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch