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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ]
あなたが解けない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++の宿題を片付けます 102代目
pc11.2ch.net/test/read.cgi/tech/1197132472/

495 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 07:36:23 ]
>>486
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5872.c

496 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 10:23:18 ]
[1] 授業単元:プログラミング
[2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5873.txt
 このプログラムを実行すると1つのxにつき100個の誤差付きのyが出てくるので
 それぞれのxにおけるyの平均値(=(狽凵j/100)を求めたい
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語: C
[4] 期限: 2008/1/24
[5] その他の制限:

よろしくお願いします

497 名前:デフォルトの名無しさん [2008/01/23(水) 11:29:13 ]
#include <stdio.h>
#include <stdlib.h>

void fileread(int,char *);
void filewrite(int,char *);

int main(int argc ,char *argv)
{
if(argc!=3){
printf("次回から引数を入力してください\n");
return 0;
}
fileread(argc,argv);
filewrite(argc,argv);
return 0;
}

void fileread(int argc,char *argv){
FILE *fp;
char *buffer;
fpos_t start_fpos;
int filesize;
if(!strcmp(argv[2],"r")){
fp=fopen(argv[1],"r");
fgetpos(fp,&start_fpos);

498 名前:デフォルトの名無しさん [2008/01/23(水) 11:29:44 ]
fseek(fp,0,SEEK_END);
filesize=ftell(fp);
fsetpos(fp,&start_fpos);
buffer=(char *)malloc(sizeof(char)*filesize);
while(fgets(buffer,filesize,fp))printf("%s",buffer);
free(buffer);
}
}


void filewrite(int argc,char *argv){
FILE *fp;
char *buffer,*stock;
int buffer_size=1000,count=0;
if(!strcmp(argv[2],"w")){
fp=fopen(argv[1],"w");
buffer=(char *)malloc(sizeof(char)*buffer_size);
while(fgets(buffer,buffer_size,stdin)){
count++;
stock=realloc(buffer,sizeof(char)*count);
sscanf(buffer,&stock[count-1]);
}
fputs(stock,fp);
free(buffer);
}
fclose(fp);
}

499 名前:497 [2008/01/23(水) 11:33:24 ]
>497-498
コンパイルエラーが出ます。
passing argument 1 of ‘fopen’ makes pointer from integer without a cast
fopenの箇所が整数値を吐き出してるのだとは分かるのですが、
どう修正していいのか理解できません。ご教授ください。

500 名前:390 mailto:sage [2008/01/23(水) 11:53:55 ]
>>437

大変参考になりました、ありがとう御座います。
strcmp()とstrcpy()については授業でそれを教えたから
とにかくそれを使わせて習得させるという方針っぽいです。

構造体structも次回の講義で始めて習うという初歩っぷりですので
基礎的な部分から稚拙さが漂ってくるのかもしれませんが…
structの勉強もできて非常にためになりました、多謝です

501 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:04:02 ]
>>497
スレ違い.

main( int argc, char * argv ) ;じゃなくて
main( int argc, char * argv[] ) ;

void fileread(int argc,char *argv) じゃなくて
void fileread(int argc,char *argv[]) にしないと


502 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:38:41 ]
>>496
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, j;
double x, y, sum;
char buf[100];
FILE *fp;
if (argc != 2)
return 1;
fp = fopen(argv[1], "r");
if (fp == NULL)
return 1;
for (i = 0, sum = 0.0; i <= 10; i++) {
for (j = 0; j < 100; j++) {
fgets(buf, sizeof(buf), fp);
sscanf(buf, "%lf %lf\n", &x, &y);
sum += y;
}
printf("%lf\t%lf\n", x, sum/100);
}
return 0;
}

503 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:55:40 ]
>>501
馬鹿発見。スレ違いと言う点には同意するので、どこら辺が馬鹿なのかは割愛。



504 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:13:10 ]
>>503
501じゃないけど解説求む

505 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:15:49 ]
そこだけ変えても意味がないってことだろ。根本的に作りがおかしいんだから。

506 名前:デフォルトの名無しさん [2008/01/23(水) 13:40:59 ]
>>494
ありがとうございます。
因みにLCMが最大公約数でGCMが最小公倍数なんですかね?

507 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:42:12 ]
>>506
いいえ。

508 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:42:41 ]
>>506
lcm と gcd でググれば何の略か分かる

509 名前:デフォルトの名無しさん mailto:sage!=501 [2008/01/23(水) 16:17:14 ]
>>503
fopenの引数が間違ってる、という説明に留めろという理解でよろしい?
確かに、
>main( int argc, char * argv ) ;じゃなくて
>main( int argc, char * argv[] ) ;
というのは先走り感が否めないが。

510 名前:395 mailto:sage [2008/01/23(水) 16:29:49 ]
>>444
argument error
と出てしまいます

511 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:33:20 ]
プログラム実行時に data.txt を後に加えて実行すればおk

512 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 17:55:25 ]
[1] 授業単元:プログラム入門
[2] 問題文:2つあるので下に書いていきます
[3] 環境
 [3.1] OS:Windows
 [3.2] gcc 3.4
 [3.3] 言語:C
[4] 期限: 明後日

1.0から1000までの数を1行に10個ずつカンマ区切りで表示する。
  末尾にはカンマを加えない。

実行例
  0,1,2,3,4,5,6,7,8,9
10,11〜〜〜〜
  〜〜〜〜〜〜998,999
1000

2.文字列を入力して、その文字列の中にアルファベットと数字をそれぞれカウントして結果を表示する。
実行例
  入力して:nurupo ga!!!!1111
  アルファベットは8文字
  数字は4文字
  それ以外は4文字

2つも出してしまい、申し訳ないですがかなり切羽詰ってます。
プログラムに関しては先月始めたばかりで初心者中の初心者です、なのでそこまで難しいことは習ってないと思います。
ですが分からないのでお力を貸してください。

513 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:01:12 ]
>>512
スペースは普通その他だろ



514 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:04:17 ]
>>513
すいません、見落としてました。スペースもそれ以外に追加します。

515 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:34:24 ]
>>512
#include<stdio.h>
int main(void){
int i;
for(i=0;i<=1000;i++){
if(i%10==0) printf("%d", i);
else printf(",%d", i);
if((i+1)%10==0) printf("\n");
}
return 0;
}

#include<stdio.h>
#include<ctype.h>
int main(void){
char buf[256];
int i, alphanum=0, digitnum=0, othernum=0;
printf("入力して:");
fgets(buf, sizeof(buf), stdin);
for(i=0;buf[i]!='\0';i++){
if(isalpha(buf[i])) alphanum++;
else if(isdigit(buf[i])) digitnum++;
else othernum++;
}
printf("アルファベットは%d文字\n", alphanum);
printf("数字は%d文字\n", digitnum);
printf("それ以外は%d文字\n", othernum);
return 0;
}

516 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:41:40 ]
>>515
>for(i=0;buf[i]!='\n';i++){

の方がいいかもNE!

517 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:48:57 ]
>>515、516
ありがとうございます。
今、外なんで家に帰ってから実行してみようと思います。

518 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:01:42 ]
[1] 授業単元: C言語
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5874.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語: C言語
[4] 期限: 今日中です。。。
[5] その他:長くてめんどくさいかもしれませんが、どうかよろしくお願い致します。

519 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:22:42 ]
1] C言語
[2] 台形公式を用いて∫0^2 √4-x^2 の近似値を求めるプログラミングを作成しなさい
[3] 環境
 [3.1] OS: Linux
 [3.3] 言語: (C言語
[4] 期限:明日
[5] その他の制限: お願いします

520 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:32:49 ]
>>519

#include <iostream.h>

void main(){cout << "どう見ても0です << endl;}

521 名前:デフォルトの名無しさん [2008/01/23(水) 20:47:29 ]
>>519
#include <stdio.h>
#include <math.h>
#define E 0.00001

double TrapMethod(double (*f)(double), double a, double b, double e)
{
    if (fabs(b - a) < e) return 0.5 * (f(a) + f(b)) * fabs(b - a); 
    else {
        double t = 0.5 * fabs(b - a);
        return TrapMethod(f, a, a + t, e) + TrapMethod(f, a + t, b, e);
    }
}

double func(double x) { return sqrt(4 - x * x); }

int main(void)
{
    printf("%.10f\n", TrapMethod(func, 0.0, 2.0, E));
    return 0;
}

522 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:54:30 ]
>>487
つ265252859812191058636308480000000

523 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:41:10 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5879.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/26
[5] その他の制限:特になし

よろしくおねがいします



524 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:44:04 ]
[1] 授業単元:C言語
[2] 問題文:ファイル中の文字数,単語数,行数をカウントするプログラムを作成せよ。
単語の切れ目はアルファベット以外の文字、行の終わりは改行文字またはファイルの終端とします。
この課題のソースファイルで動作確認しなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/25
[5] その他の制限:特になし

お願いします

525 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:53:51 ]
>>523
#include <stdio.h>

int main(void)
{
int i, j, n, num[] = {1000, 500, 100, 50, 10, 5, 1};
char roman[] = "MDCLXVI";

while(1) {
printf("Input integer (0 quit) ====>");
scanf("%d", &n);
if(n==0) break;
printf("%d ====> ", n);
for(i=0; n; i++) {
int c = n / num[i];
for(j=0; j<c; j++) putchar(roman[i]);
n %= num[i];
}
putchar('\n');
}
return 0;
}


526 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:10:52 ]
>>523
繰り返しでやってみた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5881.txt

527 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:12:42 ]
去年と同じ問題だw

528 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:18:31 ]
>>524
適当 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5882.txt

529 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:27:37 ]
>>524
ミスあった >>528 修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5883.txt

530 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:31:13 ]
>>526
勘違いしてたから修正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5884.txt

531 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:45:02 ]
[1] 授業単元:cprograming2
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5885.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C
[4] 期限:2008/1/25 am 0:00
[5] その他の制限: 特に無し
よろしくお願いします

532 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:31:43 ]
【時間切れ】 (1/23)
>518

【未解決問題】
>>531 1/25 0:00
>>404 1/25
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>79 無期限
>144 無期限 問題文>148

533 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:38:17 ]
>>529
なんで、そんなに括弧で囲む必要があるんだい?



534 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:39:28 ]
>>518
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5887.c

すでに時間切れ 且つ なぜかリスト構造を使ってしまったけど、一応動いたのでうp

535 名前:デフォルトの名無しさん [2008/01/24(木) 01:39:57 ]
[1] 授業単元:アルゴリズム2
[2] 問題文
 最小全域木問題

で以下のコメント文の
 e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない
をどうやって書くのか分かりません。トレースの問題で躓いてしまいます。
プログラムが分かればトレース出来そうなのでよろしくお願いします。

void mst(int i, int k, int weight) {
if (k == n - 1) {
if (weight < best_weight) {
best_weight = weight;
配列 best_tree に t をコピー;
}
}
else if (i <= m) {
if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){
t[k] = i;
mst(i + 1, k + 1, weight + w[i]);
}
mst(i + 1, k, weight);
}
}
[4] 期限:1/24 9am test..!

536 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:46:51 ]
一応情報はランダムにこんな感じで与えられます。
これをどう利用して記述して求めているのかが分かりません。

辺の番号 1 2 3 4 5 6 7 8 9 10 11 12
端点1 4 3 1 2 4 6 1 8 5 6 7 5
端点2 6 7 5 3 5 1 2 4 4 2 8 2
重み 9 16 13 8 7 12 10 5 11 15 4 2


537 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:56:17 ]
>>533
 データ(変数)を尊重し、できるだけそのデータが使われるときに、宣言し使う。
こうすることで、必要のないデータを他のブロックで誤って書き換えられることを防いでいる。
 いわゆる、データ指向プログラミング。

 >>529 fclose忘れてるな。別にいいけど。

538 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:05:12 ]
>>534
ありがとうございます!!!

539 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:42:42 ]
>>529 >>537
{NULL};が気になる。普通{0}じゃね?残りは0で埋められるわけだし。
NULLだとアドレスかと思ってしまうな

まぁ実用上はまったく問題ないと思うけど

540 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:43:52 ]
>>535
配列eのメンバがわからないことには何とも言えない。
つーか、ソースうp。

541 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:54:33 ]
スイマセン
再うp。

まず、バックトラックによって、グラフGの最小全域木を求める
次のようなアルゴリズムを考えます。ここで、n はGの 頂点数、m は辺の数で、e[i] (i = 1, ..., m) はGのi番目の 辺を表し、w[i] はその重み(正整数)を表すものとします。
また、int 型の配列 t と best_tree は大域変数であるとします。

void mst(int i, int k, int weight) {
if (k == n - 1) {
if (weight < best_weight) {
best_weight = weight;
配列 best_tree に t をコピー;
}
}
else if (i <= m) {
if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){
t[k] = i;
mst(i + 1, k + 1, weight + w[i]);
}
mst(i + 1, k, weight);
}
}


関数mstへの呼び出しと戻りを「イベント」と呼ぶことにします。 n = 8, m = 12 であり、Gの頂点が 1, 2, ..., n であって、 Gの m 本の辺の各端点と重みが次のように与えられるとします。
辺の番号 1 2 3 4 5 6 7 8 9 10 11 12
端点1 6 7 5 4 3 1 6 7 8 4 5 2
端点2 7 5 4 3 1 2 4 3 6 8 3 8
重み 14 11 15 12 4 9 6 16 8 7 10 2


542 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 03:36:47 ]
>>537
そこまでするならサブルーチン化した方がいいような気もするが。読みづらいしな。

543 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:12:22 ]
>>531
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5888.txt
ヘロンの公式は使ってないけど。眠い。



544 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:17:09 ]
>>531
純粋な興味として聞きたいんだが、どうして座標が整数値で与えられているのにヘロンの公式を使うんだろう。

545 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:36:59 ]
 >>543
 ちょ、間違ってる。

546 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 08:21:22 ]
[1] 授業単元:C入門
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5876.txt
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:study C
 [3.3] 言語:C
[4] 期限:今日の15時
[5] その他の制限:入門科目なので簡単なコードでお願いします。

547 名前:デフォルトの名無しさん [2008/01/24(木) 10:54:30 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):0<N <100,000,000の整数を入力したとき、Nの素因数分解結果を出力するプログラムを作成せよ。

 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C++
[4] 期限:1/25 15時
[5] その他の制限:
2から √Nまでの素数について、小さい順にNを割ってみて割り切れたらその素数aはNの素因数である。
割り算の結果N1についてa から √N1 までの素数について小さい順にN1を割り切れたらその素数b も
Nの素数である。以上を割り算の結果Nxが素数になるまで繰り返す。Nx もNの素因数である。
ということを使ってやれと言われました。

簡単なコードでお願いします。

548 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 10:56:22 ]
>>546
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5889.txt
入力チェックはしてない。

549 名前:デフォルトの名無しさん [2008/01/24(木) 11:24:20 ]


550 名前:546 mailto:sage [2008/01/24(木) 12:25:04 ]
>>548
助かりした
無事単位を取得できそうです
ありがとうございました!

551 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 12:35:11 ]
単位wwwどんだけしょぼい大学だよ

552 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:04:35 ]
大学行ってないから基準が分からないんだね。

553 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:06:27 ]
本来なら大学は自分で勉強するべきとか考えないとすれば
90分×14回 = 21時間 だから、無理もない
たったの二日で何が習得出来るって話だ



554 名前:548 mailto:sage [2008/01/24(木) 13:14:10 ]
>>550
これで単位か・・・羨ましいような羨ましくないような。

>>547
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5891.txt

555 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:09:37 ]
>>502
ちょっと解説してもらえませんか?

556 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:43:55 ]
>>555
回答した本人じゃないが、
for (i = 0, sum = 0.0; i <= 10; i++) {
for (i = 0, sum = 0.0; i <= 10; i++, sum=0.0) {
にすれば問題ないのでは?

557 名前:デフォルトの名無しさん [2008/01/24(木) 15:30:11 ]
>>550
ちょっWwおまWw
どこの大学だよ
それで単位認定って
笑った

558 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:33:44 ]
文系が理系をちょっとかじるようなゼミだとそんなもんじゃね?

559 名前:デフォルトの名無しさん [2008/01/24(木) 15:40:41 ]
【質問テンプレ】
[1] 授業単元:CG
[2] 問題文(含コード&リンク):対戦型シューティングゲームを作ったんですけど、
もう1つのポットから、玉が出ないんです。どうしたら、出るようになるんでしょうか?
教えてください。あと、当たり判定も作ったんですが、これよりもっといいプログラムは
ありますか?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5893.c
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: Cで書いてあります
[4] 期限: 今日の18時まで
[5] その他の制限:なし

560 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:42:32 ]
>>559
よくあるのはベクトルのノルムで判定する方法

561 名前:デフォルトの名無しさん [2008/01/24(木) 15:43:21 ]
[1] 授業単元: プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5892.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:BCC
 [3.3] 言語:C
[4] 期限: 今日中
[5] その他の制限:特にないです。。。

お願いします。

562 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 16:51:24 ]
>>561
ファイルに書き出すときのテキストのフォーマットは?

563 名前:デフォルトの名無しさん [2008/01/24(木) 18:13:49 ]
>>562
txt形式でお願いします。



564 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 18:46:30 ]
>>563
CSVとかそういうのを聞きたいんだと思うよ。

>>561
CSVにした。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5895.zip

565 名前:548 mailto:sage [2008/01/24(木) 18:47:07 ]
>>561
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5894.txt


566 名前:548 mailto:sage [2008/01/24(木) 18:51:31 ]
>>565をちょっと修正。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5896.txt

567 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:03:53 ]
>>564
>>565

ありがとうございます!

568 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:12:25 ]
>>561
出遅れたけど載せておく
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5897.txt

569 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:23:16 ]
>>568
ありがとうございます!本当に助かります。

570 名前:548 mailto:sage [2008/01/24(木) 19:40:44 ]
>>566にもミスがあったorz

ex11_2.c内の24行目
誤)p = &pmemb[count];
正)p = &pmemb[count++];

度々申し訳ない。

571 名前:デフォルトの名無しさん [2008/01/25(金) 00:22:36 ]
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5899.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年1月28日まで
[5] その他の制限:配列まで習いました。

よろしくお願いします。

572 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 00:27:56 ]
[1] 授業単元:データ構造
[2] 問題文(含コード&リンク):
ソートに関する問題です。詳細は↓
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5900.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6
 [3.3] 言語:C
[4] 期限:1/31まで
[5] その他の制限:なし
よろしくお願いします。


573 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:08:46 ]
>>571
入力されうる最大の値はないのかい?
> (* ここに解答を書き加える *)
って、他の場所に全く手を加えてはいけないのか分からないよ。
sqrt()のためにmath.hを入れたが、それ以外他の場所には記述を加えずに書いてみた。

割り切れるかのループを回すところで素数以外でも計算してるのが無駄だが、1000000以下の素数を列挙するのに10秒程度。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5901.txt





574 名前:573 mailto:sage [2008/01/25(金) 02:18:08 ]
無駄な部分があった。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5902.txt

575 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:35:02 ]
【時間切れ】 (1/24)
>404 >535 >559

【未解決問題】
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>>572 1/31
>79 無期限
>144 無期限 問題文>148

576 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 04:29:08 ]
>>572
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5903.txt

577 名前:ラッセン沖縄 [2008/01/25(金) 05:16:32 ]
[1]授業単元 プログラミングB
[2]問題文 次の仕様を満たし、入力例の通りにして実行でき、更に、出力例の通りに出力されるようなCプログラムを作成せよ。(出力の空白や桁数にも留意せよ。)


 仕様 三角形の底辺と高さ入力し、その面積を求める。

 入力例    Z:\>(kadai)
 (カッコ内を 底辺=(3.0)
   入力する)高さ=(4.5)


出力例* ----+----|----+----|----+----|----+----|----+----|
底辺=3.000, 高さ=4.500
面積=6.7500

(*目盛りは桁を示すためのもの。プログラムで出力するのではない。)

[3]期限1/25 14時まで
             急いでいます!
                    よろしくお願いします。


578 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 07:18:51 ]
[1] 授業単元: C言語
[2] 問題文:
今年のカレンダーを表示させる
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語: C言語
[4] 期限: 明日まで
[5] 意味のある定数はマクロ define文
 途中でreturn exit 外部変数は使わない。
ヨロシクお願いします


579 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 11:55:44 ]
[1] 問題文: ボンバーマンが格子状(1ブロック1辺20m、マップは縦横それぞれ100ブロック)のマップを爆弾を避けてゴールまでたどり着き、その時間を計算し表示するプログラムを作りなさい。
爆弾の位置座標は既知であり、ボンバーマンの速度は4m/sとする。
[2] 環境
[2.1] OS: Windows
[2.2] コンパイラ名とバージョン: Visual Studio
[2.3] 言語: C++
[3] 期限: 2008年1月28日まで
[4] その他の制限:無し


自分では全く手が出ませんでした…orz
先輩方のお力添えを頂ければ幸いです!
宜しくお願い致します( ´・ω・`)

580 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:03:46 ]
再度申し訳ありません。
スタート時にルートを決定するのではなく、ブロック毎に曲がれるか判断するみたいです。あとなるべく早くゴールにたどり着かないとダメみたいです(>_<)

581 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:16:56 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):短いのでここに書きます。
(1) wavファイルを解析し、音声データを読むためのプログラムを作成せよ。
(2) 音声データを半分に縮め、変換させるプログラムを書け。
(3) 音声データを反転させるプログラムをかけ。
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2008年1月28日午前9時まで
[5] その他の制限: 特にありません。
C初心者なので、どう手をつけたらいいのか全くイメージできません。
皆様方のご協力をお願いいたしますm(_ _)m
なにとぞよろしくお願いいたします。


582 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:22:47 ]
>>404
期限が切れてしまってますが、どなたかよろしくお願いします。

583 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 13:21:55 ]
>>>>578
#include<stdio.h>
int main(void){
    int year, month, day, week, tmpm, tmpy, i;
    int daymax[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    year = tmpy = 2008;
    month = tmpm = 1;
    day = 1;
    if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) daymax[1] = 29;
    if (tmpm < 3) {
        tmpy--;
        tmpm += 12;
    }
    week = (tmpy + tmpy/4 - tmpy/100 + tmpy/400 + (13*tmpm+8)/5 + day) % 7;
    for(; month <= 12; day++, week++){
        if(week == 7) week = 0;
        if(day == 1){
            printf("\n***** %04d / %2d *****\n", year, month);
            for(i=0; i < week; i++) printf(" ");
        }
        printf(" %2d", day);
        if(day == daymax[month-1]){
            putchar('\n');
            day = 0;
            month += 1;
            continue;
        }
        if(week == 6) putchar('\n');
    }
    return 0;
}



584 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:56:31 ]
>>582
その書き込みの50分後、
mixiの宿題スレに全く同じ問題を貼った奴が居る。

開発環境と期限は違うが、もしかしてお前さんか?

585 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:26:40 ]
>>579
C++っての見逃して、思いっきりCで書いてしまった
ほかにもっとうまいやり方あったと思うけど、一応できたので参考程度に見てください
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5904.c

586 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:32:33 ]
>>585
printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]+1) * 5)

printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]) * 5)
に修正してください

587 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:06:30 ]
[1] 授業単元:C++プログラミング
[2] 問題文:
(処理の中身ではなく、ファイルの読み込みに関してなのですが)
1. フォルダ内に複数存在する "***.dat"(***は数字ではない)を読み込んでそれぞれについて同じ処理を行なう。
2. 処理の中でそれぞれのファイル名(***)とその処理結果(これは2つの数値です)をまとめて別の1つのファイルに出力する。
3. フォルダ内の全ての "***.dat" について処理し終わったらプログラムを終了する。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:1/28 AM10:00

上のようなことがしたいのですが、いい方法が思いつきません…
どなたかよろしくお願いします。

588 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:22:49 ]
コマンドラインからhoge *.datとでも入力して、
好きなように繰り返しをすればいい
ここは丸投げスレなんだからもっと具体的に書け

589 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 17:38:07 ]
>>588
ファイルは"(生徒の名前).dat"となっていて各教科のテストの点が書かれているのでそれを合計し
1つのファイルに全員の分を"生徒の名前:合計点 \n"みたいな感じで出力したいのですが、
おっしゃっている「コマンドラインから〜」というやり方がわからないんです。
すいません

590 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:29:04 ]
>>589
#include <iostream>
#include <fstream>
void main(int argc, char *argv[])
{
std::ofstream output( "output.dat" );
for(int i=1; i<argc; i++){
//argv[i]を読み込んで名前と合計点をoutputに書き出す。格納形式が分からんから書けん
}
cout << "オワタ" << endl;
}

実行ファイルをhoge.exeとするとコマンドラインから
hoge.exe *.dat
と入力すればよい

591 名前:587,589 mailto:sage [2008/01/25(金) 19:04:28 ]
>>590
>>588をみて同じようなことをしたのですが、
Output.dat には "* : 0" としか出力されないんです…
コマンドラインでワイルドカード使うために何か特別な作業が必要だったりしますか?

592 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:12:38 ]
ファイルの書式も書かずに・・・

593 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:25:42 ]
inputファイルには、"国語: 74"みたいに
"(教科名):(半角スペース)(数値)"というのが7行ならんでいます。

すいません。



594 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:38:38 ]
>>591
#include <stdio.h>
int main(int argc, char *argv[])
{
    int i;
    for(i = 1; i < argc; i++)
        printf("%s\n", argv[i]);
    return 0;
}

これでも
a.exe *.dat
*.dat
とかになる?


595 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:45:43 ]
そもそもwinで実行引数にワイルドカードで一括指定ってできたっけ?






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

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

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