[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/05 20:54 / Filesize : 366 KB / Number-of Response : 964
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)]
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

前スレ
C/C++の宿題を片付けます 115代目
pc11.2ch.net/test/read.cgi/tech/1217741118/

445 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 13:02:07 ]
>>444
正常の定義は?
エラーを出して止まるのが正常なのか
書式を無視するのが正常なのか

446 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 13:07:44 ]
>>445
空白の行を無視して次の行から配列に代入する処理というのが正常です

447 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 19:03:24 ]
[1]授業 c言語
[2] 問題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7807.txt
[3] 環境
 [3.1] OS:linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限 10/20

448 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 19:56:05 ]
&s[i].id
s[i].name
&s[i].score[j]

449 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:10:12 ]
[1] 授業単元:プログラミング基礎
[2] 問題文
体重と身長をキーボードから入力し、BMIを計算して出力するプログラムを書け。
BMIの計算はユーザ定義の関数を用いて行い、データの型にはdoubleを用いよ。
ただし、BMIの計算式は以下の通り。
BMI=体重(kg)/身長(m)^2   例:65kg/(1.70m * 1.70m) =22.49

[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年10月21日まで
[5] その他の制限: かなり初歩の段階みたいです。

よろしくお願いします。

450 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:27:55 ]
>>449
>>424-425

451 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:31:24 ]
>>449
#include<stdio.h>
double bmi(double weight, double height)
{
return weight / (height * height);
}
int main()
{
double weight, height;
printf("体重(kg)?");
scanf("%lf", &weight);
printf("身長(m)?");
scanf("%lf", &height);
printf("BMI=%g\n", bmi(weight, height));
return 0;
}

452 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:56:20 ]
>>450>>451
すいません。説明不足でしたがelseやifなんかはまだ習ってないくらい初歩なので
>>424-425はよくわからないんです。
お早いレスで助かりました。ありがとうございます。

453 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 02:08:14 ]
>>425
こんなに早くやって下さり、本当に有難う御座いました。
助かりました。



454 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 05:04:55 ]
>>453
elseやifについてどう思うかを>>452に伝えてやってくれまいか

455 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 13:54:08 ]
[1] 授業単元:プログラミング
[2] 問題文:
"A>B"と入力すると"AはBより大きい"のように、不等式を文章に変換するプログラムを作成せよ。また、入力データと実行結果は以下の通りとし、変換された文章をテキストファイルに順番に出力すること。

実行結果
データ1:A>B
データ2:B<C
データ3:A<C
○○○.txtに出力しました

○○○.txt
AはBより大きい
BはCより小さい
AはCより小さい

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:10/21
[5] その他の制限:可能な限り初歩的なものでお願いします

456 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 14:38:08 ]
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fpr, *fpw;
char s1[1000], s2[1000], c;
if (argc != 3) { fprintf(stderr, "引数にこでたのむ\n"); return 1; }
if (!(fpr = fopen(argv[1], "r"))) {fprintf(stderr, "ファイルが\n"); return 1; }
if (!(fpw = fopen(argv[2], "w"))) {fprintf(stderr, "ファイルが\n"); return 1; }
while (fscanf(fpr, " %[^<> ] %c%s", s1, &c, s2) == 3) {
switch (c) {
case '<':
fprintf(fpw,"%sは%sより小さい\n", s1, s2);
break;
case '>':
fprintf(fpw,"%sは%sより大きい\n", s1, s2);
break;
default:
fprintf(stderr, "なかみが\n"); return 1;
}
}
fclose(fpr);
fclose(fpw);
return 0;
}


457 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 15:42:56 ]
[1]授業 c言語
[2] 問題:
 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7807.txt
[3] 環境
 3.1 OS:linux
 3.2 gcc
 3.3 言語:C
[4] 期限 10/20
 
  すいません、よろしくお願いします。

458 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 15:48:02 ]
>>447
>>448


459 名前:デフォルトの名無しさん [2008/10/19(日) 16:04:58 ]
>>457
まず、リスト@はmain関数の外で定義な。中でもいいけど、個人的には外の方が分かりやすい。
 
で、○○○は上から順に
&s[i].id
s[i].name
&s[i].score[j]

あんまり偉そうなこといいたくないが、これって構造体の基本問題だろ??
できるだけ自分で解けるようにしないと後々、辛い目にあうぞ。

460 名前:457 mailto:sage [2008/10/19(日) 17:07:53 ]
>>459
ウザいです。
偉そうな口を聞いて欲しくないです。

461 名前:デフォルトの名無しさん [2008/10/19(日) 17:20:54 ]
>>460
本当のことだろーが
構造体の基礎の基礎も出来てないやつが喚くな餓鬼め

462 名前:457 mailto:sage [2008/10/19(日) 17:23:18 ]
>>461
スレ違いです。出て行ってください。

463 名前:457 mailto:sage [2008/10/19(日) 17:25:13 ]
そういうのは止めてください
>>458
どうもすいませんでした
>>459
ありがとうございます




464 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 18:22:51 ]
>>457
>>1
> なりすましを防ぐため、トリップを使ってください。

465 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 19:44:19 ]
ワロタ

466 名前: ◆iTaRIJflUs mailto:sage [2008/10/20(月) 00:09:33 ]
[1] 授業単元:C言語プログラミング
[2] 問題文
<その1>
以下のようなプログラムを作成しなさい.

2×10の2次元配列を定義し、1行目の配列([0][0〜9])に1から10までの数字を格
納し、2行目の配列([1][0〜9])に2の倍数を2から20まで格納し、配列に格納した
数字を画面出力するプログラム。


<その2>
以下のようなプログラムを作りなさい

10人の学生の成績が以下のようになっている。
int score[]={90,28,35,80,72,55,76,90,96,42}
このとき、0から9までの学生の偏差値を計算せよ。

[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年10月21日朝9時まで
[5] その他の制限: まだまだ初歩の段階です。

どなたかお願いします。

467 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 01:52:12 ]
>>466
int num[2][10];
int i, j;
for( i = 0; i < 2; i++ ) {
 for( j = 0; j < 10; j++ ) {
  num[i][j] = (j + 1) * (i + 1); /* (1〜10) × ( 1 or 2) */
  printf( "%2d ", num[i][j]);
 }
 printf("\n");
}


468 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 02:14:52 ]
>>466 その2
#include <stdio.h>
#include <math.h>

int main(void)
{
int score[]={90, 28, 35, 80, 72, 55, 76, 90, 96, 42};
int i, n = sizeof(score) / sizeof(score[0]);
double sum = 0., sqsum = 0., mean;

for (i = 0; i < n; i++) {
sum += score[i];
sqsum += score[i] * score[i];
}
mean = sum / n;

printf("標準偏差 = %f\n", sqrt(fabs(sqsum / n - mean * mean)));

return 0;
}

469 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 08:39:37 ]
[1] 授業単元:プログラミング
[2] 問題文:x=1y=2 が関数swapをもちいてx=2、y=1となる。関数swapを呼び出す前後のx,yのアドレスを表示し、アドレスが渡されていることをしめせ。

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:visual2005 c
 [3.3] 言語:C
[4] 期限:10/23
お願いします



470 名前:デフォルトの名無しさん [2008/10/20(月) 08:44:26 ]
【質問テンプレ】
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
前もって用意された暗号化された文のテキストファイルと暗号化されていない文のテキストファイルがあります。
暗号化されたテキストファイルの始めの3文字はXXXとなっています。
プログラムは最初の3文字をよんで、XXXだったらそのファイルを解読して新たなファイルに保存、
XXXじゃなかったらそのファイルを暗号化して新たなファイルに保存しなさい。
尚、テキストファイルが1000文字以上だったらexitすること。
(暗号はa→c,b→dのようなshift2です。)
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: Dev-C++
 [3.3] 言語: C++
[4] 期限: 今日中
どうやってファイルの最初の3文字を判断するのかがまず分かりません..。
どなたか教えて下さい。

471 名前:デフォルトの名無しさん [2008/10/20(月) 11:33:38 ]
[1] 授業単元:プログラミングC++
[2] 問題文:学籍番号、名前、姓、が記入されたリストを入力し、これを名前、姓、学籍番号の順に出力するC++ プログラムを書き、正しく動くことを確かめよ。
動作確認のためには、「実行ファイル < データリスト」のようにデータファイルを作り、コマンドラインでリダイレクションによりデータ入力せよ。
s10000001 Taro Aizu
s10000002 Jiro Aizu
s10000003 Nuri Aizu
s10000004 Taro Kin
s10000005 Atami Bandai
s10000006 Kogen Bandai
s10000007 Choucreme Hirota
s10000008 Kitakata Ramen
s10000009 Beko Aka
s10000010 Jo Tsuruga
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語:C++
[4] 期限: 2008年10月23日00:00まで
[5] その他の制限:特になし

472 名前:デフォルトの名無しさん [2008/10/20(月) 12:15:46 ]
>>471の補足ですが、ループを使うのが条件です

473 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 14:10:40 ]
>>470
1000文字未満だったらfreadでchar[1000]に読み込んではじめの三文字見ればよくね?



474 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 18:10:38 ]
授業単元: C
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7810.txt 
条件は関数 void sort3 の引数は3つの int 型の値であるが,これをポインタ変数を受け取る関数に書き換える.交換の作業はすべて関数内で処理し,main 関数では交換作業を行わないものとする

[3] 環境
 [3.1] OS: Windows/Linux
 [3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:2008年10月23日まで




475 名前:デフォルトの名無しさん [2008/10/20(月) 18:33:20 ]
[1] 授業単元:プログラミング
[2] 問題文:
Newton--Raphson法を用いて
X*X*X-7X*X+16X-10=0
の解を求めよ。

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:10/24
[5] その他の制限:初心者です。なるべく基本的な構造でお願いします。

476 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 18:48:16 ]
>>474
void sort3(int *x, int *y, int *z)
{
int tmp;

if (*y < *x) { tmp = *x; *x = *y; *y = tmp; }
if (*z < *y) { tmp = *y; *y = *z; *z = tmp; }
if (*y < *x) { tmp = *x; *x = *y; *y = tmp; }
}

477 名前:デフォルトの名無しさん [2008/10/20(月) 19:07:40 ]
#define GOSA 0.00001
#define F(X) (X*X*X-7*X*X+16*X-10)
#define dF(X) (3*X*X-14*X+16)

int main(){
double x=10,y;

while(1){
printf("計算経過 %f\n",x);
y=F(x);
if(y>-GOSA)if(y<GOSA)break;
x -= y/dF(x); }
}

478 名前:デフォルトの名無しさん [2008/10/20(月) 19:22:25 ]
#define GOSA 0.00001
#define F(X) (X*X*X-7*X*X+16*X-10)
#define dF(X) (3*X*X-14*X+16)

int main(){
double x=10,y;
do{
x -= y/dF(x);
printf("計算経過 %f\n",x);
y=F(x);
}while(y<-GOSA || y>GOSA);
}

479 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 23:25:55 ]
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7806.txt
[3] 環境
 [3.1] OS: Windows)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:関数・配列は習いましたが、ポインタは知りません。

自分で書いてみたのですが、例えば15を打つと
「素数ではありません」「素数ではありません」「素数です」とでてしまいます。

480 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 23:36:28 ]
else{
for(i=3;i<=no;i+=2){
if ((no%i)==0){
puts("素数ではありません");
break;
}
else{
puts("素数です");
break;
}
}
}


481 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 23:57:28 ]
>>479

int main(){
unsigned long int i ;
unsigned long no = 0;
printf("1から%luまで入力可能です\n", ULONG_MAX);
do {
printf("正の整数:");
scanf("%lu", &no);
if (no <= 0) {
puts("0以外、正の整数を入力してください") ;
} while(no <= 0) ;

if (no == 2) {
puts("素数です");
}
else if (no == 1 || no%2 == 0) {
puts("素数ではありません");
}
else {
for ( i = 3; i * i <= no; i += 2) {
if (no % i == 0) {
puts("素数ではありません");
return 0;
}
}
puts("素数です");
}
return 0;
}


482 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 00:06:50 ]
>>480 481
ありがとうございます!


483 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 02:39:36 ]
>>469
エスパーするとこうかな?関数swapを自分で書いて、呼び出す側とその関数内それぞれでアドレスを表示。

#include <stdio.h>
/* aの指すデータとbの指すデータを交換する */
void swap( int *a, int *b) {
int temp = *a;

printf( "swap() : &a = %p, &b = %p\n", a, b);

*a = *b;
*b = temp;
}

int main(void) {
int x = 1, y = 2;

printf( "main() : x = %d, y = %d, &x = %p, &y = %p\n", x, y, &x, &y);
swap( &x, &y);
printf( "main() : x = %d, y = %d, &x = %p, &y = %p\n", x, y, &x, &y);

return 0;
}




484 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 08:16:08 ]
>>483
俺は
int* temp = a;
a = b;
b = temp;
かと思った


485 名前:デフォルトの名無しさん [2008/10/21(火) 12:43:13 ]
>>473
ありがとうございました。調べてみます。

486 名前:デフォルトの名無しさん [2008/10/21(火) 12:53:22 ]
>>476
それでコンパイルすると3つ目の整数を入力してから入力した整数が小さい順に出力されるようにしたいんだけどそれだとエラー起きてしまうのですが・・・

487 名前: ◆3VUXqvbfSY mailto:sage [2008/10/21(火) 13:04:05 ]
【質問テンプレ】
[1] 授業単元:計算機プログラミングII
[2] 問題文(含コード&リンク):
  単精度実数型配列(float)を宣言する。その配列にn個のデータを入力する。その配
  列名をポインタとして用いて,入力したn個のデータの最大値と最小値を求め,その
  結果とそれら値が何番目に入力されたかを出力するプログラムを作成せよ。
  ただし,複数回の異なる場合について実行してみること。データ入力の際,値が昇順
  または降順にならないようにすること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
    (注) gcc -Wall -ansi -std=c89 -pedantic ファイル名.c のようにしてコンパイル
 [3.3] 言語:C
[4] 期限:2008年10月23日10:30まで
[5] その他の制限:ポインタを習い始めたばかり,for文やif文,関数,配列,文字列の基礎は学習済み

おねがいします。

488 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 14:14:37 ]
>>486
関数のプロトタイプ宣言
void sort3(int *x, int *y, int *z);

呼び出し
sort3(&n1, &n2, &n3);

489 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 17:19:27 ]
>>487
どうやって入力するのかわからなかったけど、
とりあえず標準入力から一行ずつ float の値を一つ読み込こんでいくようにしておいた

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7812.txt

490 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 18:11:11 ]
簡単なゲームを作っているのですが、今まで使っていたアイコンは32×32だったので、それを16×16のサイズにしようと思い、そのサイズの画像を取り込んだら、32×32のサイズに拡大されて表示されてしまうのですがどうしたらよいのでしょう?
アイコンファイルってサイズ指定するとこないですよね?

491 名前: ◆3VUXqvbfSY mailto:sage [2008/10/21(火) 18:30:43 ]
【質問テンプレ】
[1] 授業単元:計算機プログラミングII
  対象:学部2年次
[2] 問題文(含コード&リンク):問題2( /2問)
  次に示す手順により,入力されたデータのデータの総和を求めるプログラムを作成せよ。
  (1) 適当な要素数の倍精度実数型配列(double)を宣言する。
  (2) 上記(1)で宣言された配列の先頭アドレスをポインタ変数に代入する。ポインタ
    変数を利用して上記(1)で宣言した配列に対して,キーボードから実数データを
    入力する。ただし,Ctrl-Dが入力されたら,データの入力を終了する。
  (3) ポインタ変数を利用して,参照アドレスを移動しながら入力されたデータの
    総和を計算する。
  (4) 入力したデータおよびそれらの総和を表形式で出力せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
    (注) gcc -Wall -ansi -std=c89 -pedantic ファイル名.c のようにしてコンパイル
 [3.3] 言語:C
[4] 期限:2008年10月23日10:30まで
[5] その他の制限:ポインタを習い始めたばかり,for文やif文,関数,配列,文字列の基礎は学習済み

お願いします。

492 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:03:53 ]
>>491
いいオプションがついてるな。
ってことはいい先生って事だ。たぶん。

493 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:13:49 ]
2枚の画像を読み込んで、それを引き算をして、その引き算した画像を出力するプログラムをお願いします。



494 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:35:27 ]
[1] 授業単元:データー構造とアルゴリズム設計
[2] 入力された文字を,リストを用いて順次格納する.’−’が入力された時に文字の入力を終
了し,それまでに格納された全ての文字を表示するプログラム
(例)
a ←入力
b ←入力
c ←入力
− ←入力
c ←出力
b ←出力
a ←出力

[3] 環境
 [3.1] OS:Linux ver3.1
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 来週まで
[5] その他の制限:特にありません


495 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:38:47 ]
もう1つ
[1] 授業単元:データー構造とアルゴリズム設計
[2] 入力された小文字のアルファベットを,リストを用いて順次格納する.’−’が入力された
時に文字の入力を終了し,それまでに格納された全ての文字を表示するプログラムを作成
せよ.ただし,リストに格納する際,リストの最後に追加するようにせよ.
(例)
a ←入力
b ←入力
c ←入力
− ←入力
a ←出力
b ←出力
c ←出力

[3] 環境
 [3.1] OS:Linux ver3.1
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 来週まで
[5] その他の制限:特にありません



496 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:39:23 ]
お願いします。

497 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 20:56:21 ]
[1] 授業単元: 信号処理
[2] 問題文(含コード&リンク):
 @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。
 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。
 この作業をファイルの最後の2097152個目の値までやりなさい。

 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。
 ヒント:malloc関数

 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。)
 kissho4.xii.jp/50/src/5yoshi7327.txt.html
 DLKey:data


 A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。
 同様に3行目、4行目、・・・と順次最大値を出力させなさい。
   例:peak.txt
     472 234 800 578 ・・・・
     677 347 554 532 ・・・・
     843 637 347 551 ・・・・
     ・
     ・
     ・
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: LSI−86
 [3.3] 言語: C
[4] 期限: 2008年10月23日午後3時
[5] その他の制限: 特になし

よろしくお願いします。

498 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 22:04:04 ]
よくわからないけど平均値どこ行ったの?

499 名前:358 mailto:sage [2008/10/21(火) 23:39:49 ]
>>494,495
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7813.zip
参考程度にしてくれ

>>497
ロダ死亡
LSIのは、むかし試食版とか使ったことあるけど、もうしらねぇ。
www1.axfc.net/uploader/Ne/so/34790.zip
参考程度にしてくれ
DLkey : foo

500 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 00:02:22 ]
ちょっと修正、勘違いしていた、気がしないでもない。
ついでに、全ソースもつけといたので、環境に合わせてコンパイルとリンクしてくれ
ロダ生きてたみたい
kissho1.xii.jp/7/src/7jyou16166.zip.html
DLkey : foo
ってか、358ってなんだ、前のがそのまんまだった。

501 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 01:44:49 ]
[1] 授業単元: プログラミング実習2
[2] 問題文(含コード&リンク):カレンダー風の出力
 下に示すようなカレンダー風の出力を行うプログラムをwhile文を使って作成してください。
              ・1〜31までの範囲とします。
              ・printf関数で表示幅をそろえます。(右揃え)
                  
              1  2  3  4  5  6  7
              8  9 10 11 12 13 14
             15 16 17 18 19 20 21
             22 23 24 25 26 27 28
             29 30 31
[3] 環境 Visual C++
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ
[3.3] 言語: C言語
[4] 期限: 2008年10月23日(木)までお願いします。
[5] その他の制限: 逐次処理(順次処理)、条件分岐(選択処理)if,if-else,switch、
            繰り返し(反復処理)while,do-while,for、演算子の複合演算子(+=,-=,*=,/=,%=)
            インクリメント(++)デクリメント(--)は習いました。
お願いします。

502 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 02:23:57 ]
>>498
平均値は最大値を求めるだけに使うので、出力とかはしなくていいんです。
↓(手書きで申し訳ないですけど・・・)イメージ的には↓
kissho.xii.jp/1/src/1jyou52627.bmp.html
DLkey:foo

>>499
>>500
ありがとうございます。早速、明日学校でコンパイルしてみます。
本当に助かりました。 

503 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 03:55:43 ]
>>502
圧縮するという事を学ぼう。
テキストはzipに、bmpは形式を変更。



504 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 06:21:16 ]
>>501

#include <stdio.h>
int main(void)
{
int i=1;
while(i!=32){
printf("%2d ",i);
if(!(i%7))
printf("\n");
i++;
}
return 0;
}

505 名前::デフォルトの名無しさん [2008/10/22(水) 11:35:56 ]
>>501
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7816.txt

506 名前:デフォルトの名無しさん [2008/10/22(水) 11:47:05 ]
オブジェクト形式マクロを用いたNUMBER人の点数を配列tensuに
読込み,秀(90〜100点),優(80〜89点),良(70〜79点),可(60
〜69点),不可(0〜59点),判定不能(0未満あるいは100点より
上)の人数を,それぞれ変数a,b,c,d,e,fに格納・表示し,更に最高
点,最低点,合計点,平均点を表示するプログラムを作成せよ.た
だし,最高点,最低点,合計点,平均点の計算において,判定不能
の点数は除外すること.
なおNUMBERの値は10とし,平均点は小数点以下第2位まで表示
すること.
という問題誰か教えてください。

507 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 11:48:05 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):

5.6 29.2 ・・・・25.2
2.7 ・・・



-1.0 mozi
6.7 ・・・・
という様に数値データが書かれたファイルを読み込む。各行に100個の正の実数が書かれている。
これを1次元配列data[100]に順番に入れて、表示する。

これをファイルの終わりまで行う。

-1.0から始まる行があるが、その行は読み飛ばし、次の行から処理を行うようにすること



[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語: C
[4] 期限:今日
[5] その他の制限: なし

508 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 11:55:37 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):文字列を入力すると,英小文字を大文字に変換して出力するプログラムをポイン
タを用いてつくりなさい。但し,ライブラリ関数toupper を用いないこと。また,文字
列の入力には,ライブラリ関数であるgets 関数を用いること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:08年10月23日23:00まで

よろしくお願いします。

509 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 12:47:36 ]
[2]
・dx/dt = t という式についてx(t=0)=0として,x(t) をt=0 から1 まで求めるEuler法のプログラムを作れ.
時間刻み(h)をどの程度小さくすると,真値(解析解:x=0.5*t*t)にどの程度近づくかを調べよ.
・FitzHugh-Nagumo方程式の解軌跡を求めるプログラムを作成せよ.
・作成したプログラムを使って、興奮性を示すx,yの初期値を一組探しグラフで結果を示せ.
初期値も自由に設定して良いが、うまくパラメータが見つからない場合は、a=0.7, b=0.8, c=20, z=1.0 を使用すること.
dx/dt=c(x-x^3)/(3+y+z)
dy/dt=(a-x-by)/c


[3] 環境
 [3.1] Windows
 [3.2] コマンドプロンプト
 [3.3] C
[4] 明日17時
[5] わからないのを3つ載せましたが、1つでも構わないのでなんとかお願いします。

510 名前::デフォルトの名無しさん [2008/10/22(水) 13:08:58 ]
>>508
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7817.txt

511 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 13:52:57 ]
>>510

ありがとうございました!

512 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:32:51 ]
わざわざ文字列の長さを求めなくてもAllCharactersToUpperのfor文の条件をstr[i]!='\0'にすればいいと思う。

513 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:50:28 ]
>>509
Cじゃないけどエクセルで作ってみたw
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7818.zip



514 名前::デフォルトの名無しさん [2008/10/22(水) 15:14:32 ]
>>507
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7819.txt

515 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:41:27 ]
2つの画像を読み込んで、1つ目の画像から2つ目の画像を引き算をした画像を作りたいんですが
どのような感じで作ればいいでしょう?

516 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:55:18 ]
2つの画像を読み込んで、1つ目の画像から2つ目の画像を引き算するような感じで
作ればいいと思います

517 名前::デフォルトの名無しさん [2008/10/22(水) 16:21:40 ]
>>507
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7820.txt

518 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:25:34 ]
>>514
最初の1行しか読まれないんですが・・・

519 名前::デフォルトの名無しさん [2008/10/22(水) 16:30:51 ]
>>518
>>517で試してみて

520 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:32:18 ]
>>519
3つめでしょうか?

521 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:36:01 ]
>>518
プログラムざっとみたけど1行目しか読んでない

522 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:42:31 ]
>>519
3つめでやったら、コンパイルは通るんですが、バッファーオーバーランでとまります・・・

523 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:50:24 ]
do-while間のi初期化忘れてるな



524 名前:523 mailto:sage [2008/10/22(水) 16:53:21 ]
投稿者が見てるか分からんが

i=0;          ←追加
do{
(略)
}while(dp = strtok(NULL,gDlim));

これで動くように一見見える

525 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:54:36 ]
>>524
動きました。がやはり1行目しか読まれないみたいです

526 名前:523 mailto:sage [2008/10/22(水) 17:01:18 ]
char *dp,*p,*gDlim = " \n\r";

char *dp,*p,*gDlim = " ";

これもミスっぽいな

527 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:17:20 ]
>>504-505
お二人とも本当に有難う御座いました。
助かりました。

528 名前::デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:25:24 ]
>>525
読み込むファイルアップしてみ

529 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:29:51 ]
fgets後にstrtokで" \r\n"渡してるからじゃん?
これだと行頭しか処理されないよ。

530 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:31:44 ]
strtokとか使う必要あんの?普通にfscanfのほうがよくね?とか無責任に言ってみる

531 名前:517 mailto:sage [2008/10/22(水) 17:39:35 ]
行頭に-1.0がある行は無視するという条件だから
行中に-1.0があっても読み込むためにstrtokを使った
ちなみにfscanfつかったソースは#if 0〜#endif
の間に残してある

532 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:42:21 ]
>>529
そうなんですか?やはり1行目しか読まれません

533 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:47:15 ]
あと1行1列が2回表示されます・・・



534 名前:デフォルトの名無しさん [2008/10/22(水) 17:53:07 ]
>>533
だから読み込むファイルアップしてみ




535 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:57:21 ]
>>534
見落としてました。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7821.txt
これです。横に100個って書いたんですが、12個のファイルしかなかったです。
先ほど頂いたソースは100のところを12に書き換えました。

536 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:59:29 ]
>>534
俺も適当にddata.txt作ってみたけど1列目が2回出たなあ

537 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:03:30 ]
実数が100個並ぶのにバッファは512かあ。

538 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:15:03 ]
>>535
なんかこれでいいかわかんないけどつくってみた

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
FILE* fp;
char buf[1024],*cp;
double data[100];
int i,cnt;
if((fp = fopen("in.txt","r")) == NULL) return 1;
while(fgets(buf,sizeof(buf),fp) != NULL){
if(strnicmp("-1.0",buf,strlen("-1.0")) == 0) continue;
cp = buf; cnt = 0;
while((cp = strtok(cp," \t\r\n")) != NULL){
data[cnt++] = atof(cp); cp = NULL;
}
for(i=0;i<cnt;i++) printf("%f\n",data[i]);
}
fclose(fp);
}

539 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:19:14 ]
return 0;
わすれちゃった。

540 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:42:16 ]
>>538
うまくうごきました。ありがとうございます。

541 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:01:36 ]
[1] 授業単元:C
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7823.txt
問1.このプログラムではxの零乗が3x{0}と表示されるため3と出力されるようにする
問2.このプログラムでは入力の逆順に単項式が出力されるためそれを入力した順番に単項式が出力するようにする
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: お任せ
 [3.3] 言語: C
[4] 期限: 2008年10月24日hh:mmまで



542 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:25:10 ]
画像を読み込み、引き算したプログラムを自分なりに作ったんですが

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
#define XL 900
#define YL 900

int main(int argc, char**argv)
{
FILE *fp1, *fp2, *fp3;
int i;
float opx, px1, px2;

fp1 = open("argv[1]", "rb");
fp2 = open("argv[2]", "rb");
fp3 = open("argv[3]", "wb");

for(i=0; i<XL*YL; i++){

fread(&px1,sizeof(float),1,fp1);
fread(&px2.sizeof(float),1,fp2);
opx = px1-px2;
write(&opx,sizeof(float),1,fp3);
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0;
}
コンパイルが通らず、エラーがでてしまいます;
アドバイスを頂けるとうれしいです

543 名前:デフォルトの名無しさん [2008/10/22(水) 19:26:15 ]
380
>>407
遅くなりましたが、回答ありがとうございました!!
もっと自分で学習せないかんですね・・・



544 名前:デフォルトの名無しさん [2008/10/22(水) 19:27:58 ]
fread(&px1,sizeof(float),1,fp1);
fread(&px2.sizeof(float),1,fp2);
write(&opx,sizeof(float),1,fp3);
&いるっけ?

545 名前:デフォルトの名無しさん [2008/10/22(水) 19:28:47 ]
ごめん、いるわw
勘違いでした






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<366KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef