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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/07/04(水) 10:09:24
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 91代目
http://pc11.2ch.net/test/read.cgi/tech/1182607405/
0232デフォルトの名無しさん2007/07/06(金) 14:19:24
山 、田 、太 、郎、 山田、太郎、 山田太

が辞書に入っていたら、単語帳が最長になる、

山田太 郎 としてください
02332252007/07/06(金) 14:21:26
fp = fopen("s_array.txt", "w");
while(n) {
fprintf("%d\n", a[--n]);
}
fclose(fp);
0234デフォルトの名無しさん2007/07/06(金) 14:22:39
>>231
うむ
0235188(真)2007/07/06(金) 14:25:54
>>227
あと高速化できるのは、ファイルをバイナリで一度にメモリに読み込むとか、
読み込みと、足し算の処理をマルチスレッド化することだな
0236169 ◆NPjWSW9EXI 2007/07/06(金) 14:31:04
225,226,233,235,ありがとうございます。

225-233
なのですが文字列の格納先のアドレスがbufのところがわからなく、
エラーになってしまいます><

0237デフォルトの名無しさん2007/07/06(金) 14:33:04
char buf[32];
0238169 ◆NPjWSW9EXI 2007/07/06(金) 14:38:33
atoiとqsortの識別子を教えていただけませんか><

理解しようとしたのですができませんでした
0239169 ◆NPjWSW9EXI 2007/07/06(金) 14:39:10
失礼しました識別子じゃなくてどんな風に定義すればいいですか?
0240デフォルトの名無しさん2007/07/06(金) 14:40:45
>>239
#include <stdlib.h>でOK
0241169 ◆NPjWSW9EXI 2007/07/06(金) 14:46:09
ありがとうございます!
239は解決しました!
以下 その後でたエラーです
ソース
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4525.txt

エラー
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4526.txt
0242デフォルトの名無しさん2007/07/06(金) 14:46:44
>>226
これか
/*ソート開始*/
fp = fopen("array.txt", "rt");
while (fgets(buf, 32, fp)) {
tmp[atoi(buf)]++;
}
fclose(fp);
fp = fopen("s_array.txt", "wt");
for (i = 0; i < 40000; i++)
{
while (tmp[i]--)
{
fprintf(fp, "%d\n", i);
}
}
fclose(fp);
/*ここまで*/
0243デフォルトの名無しさん2007/07/06(金) 14:48:01
>>241
やったね。fprintfの行をfprintf(fp, "%d\n", a[n--]); に修正。
qsortをマニュアル見て修正。やってみそ
0244188(真)2007/07/06(金) 14:53:11
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void)
{
time_t timer1,timer2; /*変数宣言*/

time(&timer1);

/*処理を記述 --- Start--- */
FILE *fp;
int n, a[40000];
fp = fopen("array.txt", "r");
char buf[32];

for(n=0;n<40000;n++)a[n]=0;

while(fgets(buf, 32, fp)) {
n = atoi(buf);
a[n]++;
}
fclose(fp);
fp = fopen("s_array.txt", "w");
for(n=0;n<40000;n++)for(int i=0;i<a[n];n++)
fprintf(fp,"%d\n", n);
fclose(fp);
/*処理を記述 --- End --- */
time(&timer2);
printf("経過時間: %f秒\n",difftime(timer2,timer1));
return 0;}
0245169 ◆NPjWSW9EXI 2007/07/06(金) 14:57:43
242,244ほんとーーーーにありがとうございました!!!

ぎりぎり間に合いました!!!
二つともをzip形式固めてで提出させていただきます

2chの人ほんとにいいひとだー> <,
0246デフォルトの名無しさん2007/07/06(金) 14:57:48
教科:プログラミング入門

問題1
5人の成績管理プログラムを作成せよ。
全員の生徒の学籍番号、国語、算数の成績を入力する。(3つの配列を定義)
検索機能として、学籍番号を入力した際、該当者の2教科の成績と平均点を出力する。
学籍番号に0が入力されるまで繰り返し検索できるようにする。

問題2
10個の整数を入力し、小さい順に並べ替えよ。
バブルソートを使用すること

OS:XP
コンパイラ:cygwin
言語:1番、2番共にC++です。
どなたかよろしくお願いします
02472442007/07/06(金) 15:11:34
まちがえてしもた
for(n=0;n<40000;n++)for(int i=0;i<a[n];n++)

for(n=0;n<40000;n++)for(int i=0;i<a[n];i++)

だった すまん
0248デフォルトの名無しさん2007/07/06(金) 15:14:17
244をそのまま出すと、ソートが正しく行われない為、零点かも・・・わざとじゃないよ
0249169 ◆NPjWSW9EXI 2007/07/06(金) 15:39:03
OKですギリギリごたごたにまぎれて変更できました^^
三時すぎてたのにありがとうございます。
02502502007/07/06(金) 15:50:00
問題文:C++で次の微分方程式を数値計算を用いて解け。
アルゴリズムはルンゲクッタ法または後退オイラー法を使用すること。
・3*d^2/dt^2+dx/dt+2x=2
・x(t=0)=0
・dx/dt(t=0)=0
わかる方いらっしゃいましたらおねがいします!
02512502007/07/06(金) 15:55:38
250の修正です
・3*d^2x/dt^2+dx/dt+2x=2です
d^2x/dt^2のxが抜けてましたすみません
0252デフォルトの名無しさん2007/07/06(金) 16:07:44
>>249
自分でやってないのがばれた時点でマイナスだろうけどね
0253デフォルトの名無しさん2007/07/06(金) 17:24:22
>>188
なんかイマイチだが、とりあえず答えは出る
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4527.txt

ちなみに区切りは全角空白で、漢字1文字は全部同じ長さだと仮定してる
手抜きコードなので注意
0254デフォルトの名無しさん2007/07/06(金) 18:13:00
>>250
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4528.txt

ルンゲ・クッタ法を使った。
0255デフォルトの名無しさん2007/07/06(金) 18:58:49
[1] 授業単元:プロC
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4529.txt
上のプログラムを改良して、コマンドライン引数で状態名を与えるようにせよ。
たとえば、 コマンド名 blue green yellow orange red
のように実行すると、blue green yellow orange red の順に変化するようにせよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:来週まで
[5] その他の制限:ないです

どうかよろしくお願いします
0256デフォルトの名無しさん2007/07/06(金) 19:51:25
>>255
- n = sizeof(status_name_table) / sizeof(status_name_table[0]);
- while (n > 0) {
- nbsp; nbsp; n--;
- nbsp; nbsp; printf("Condition %s.\n", status_name_table[n]);
nbsp; nbsp; nbsp; sleep(1);
nbsp; }
---------------------------------------------------------------------
+ n = 1;
+ while (n < argc -1) {
+ nbsp; nbsp; printf("Condition %s.\n", argv[n++]);
nbsp; nbsp; nbsp; sleep(1);
nbsp; }
02572562007/07/06(金) 19:52:16
うわすまん
- n = sizeof(status_name_table) / sizeof(status_name_table[0]);
- while (n > 0) {
-     n--;
-     printf("Condition %s.\n", status_name_table[n]);
      sleep(1);
  }
---------------------------------------------------------------------
+ n = 1;
+ while (n < argc -1) {
+     printf("Condition %s.\n", argv[n++]);
      sleep(1);
  }
0258デフォルトの名無しさん2007/07/06(金) 19:59:10
[1] 授業単元:C言語実習課題
[2] 問題文(含コード&リンク):横棒グラフ
・10人分の氏名と売上台数を入力して、順位をつけて、
順位の昇順(売上1番から)売上台数を横棒グラフにして表示する。
・星印は、5台で1個とする。5に満たないものはなし。
(たとえば、23台なら星4つ)
・250台以上は、全て星50個とする。
・売り上げが同じなら氏名の昇順とする。文字列関数(strcmp)を用いる。
・氏名は、15文字以内とする。
[3] 環境
 [3.1] OS: WindowsVista
 [3.2] コンパイラ名とバージョン: Visual Studio 2006
 [3.3] 言語: C++
[4] 期限: 7月20日
[5] その他の制限:配列を使用
よろしくお願いします。
0259デフォルトの名無しさん2007/07/06(金) 20:02:29
>>258
いきなり星印って言われても、
実行画面をどうしたいのかサッパリ分からないんだが。
0260デフォルトの名無しさん2007/07/06(金) 20:05:19
>>257さん
ありがとうございます!!
0261デフォルトの名無しさん2007/07/06(金) 20:17:28
>>258
> [1] 授業単元:C言語実習課題
> [3.3] 言語: C++

> コンパイラ名とバージョン: Visual Studio 2006

突っ込みどころが満載過ぎる
0262デフォルトの名無しさん2007/07/06(金) 20:47:32
【即会い!!】

管理人が使用してみて、即出会えた出会い系サイトのみを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトを厳選して薦めております。
↓↓↓
【ブログ】http://deaiload.blog109.fc2.com/
0263デフォルトの名無しさん2007/07/06(金) 21:05:33
以下の各機能を果たす整数型関数を書け。
a)カ氏温度を受け取って、セ氏温度を返す関数celsius。
b)セ氏温度を受け取って、カ氏温度を返す関数fahrenheit。
補足:カ氏温度をF、セ氏温度をCとすると、F = (9 / 5)*C + 32。
c)これらの関数を使って、0から100度までのセ氏温度に対応するカ氏、および32度から212度までカ氏温度に対応するセ氏温度をそれぞれ表の形にプリントするプログラムを書け。ただし、表は読みやすいように行数を最小限にすること。
よろしくおねがいします。
0264 ◆KqBLZKKJjc 2007/07/06(金) 21:19:01
すいません こんなのもお願い

[1] 授業単元:プログラミング入門
[2] 問題 : 100万までの隣り合う素数の差が、
      最大のものを出力するプログラムを作成せよ
      
例)19-17,23-19

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ:stady C
 [3.3] 言語:C
[4] 期限:2007年07月09日12:00まで
0265デフォルトの名無しさん2007/07/06(金) 21:21:56
>>258 C言語&scanfのエラー処理無し
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define RECORD_NUM 10
typedef struct tag_record_t{
char name[101];
int result;
}record_t;
int record_compare(const void *va, const void *vb){
const record_t *a, *b;
a=va;b=vb;
if(a->result==b->result) return strcmp(a->name, b->name);
return b->result-a->result;
}
void record_display(const record_t *record){
int i;
printf("%8s [%3d]", record->name, record->result);
for(i=0;i<50 && i<record->result/5;i++) printf("*");
printf("\n");
}
int main(void){
record_t record[RECORD_NUM];
int i;
printf("氏名、売上台数を入力して下さい\nex. YamadaTarou 23\n");
for(i=0;i<RECORD_NUM;i++) scanf("%s %d", record[i].name, &(record[i].result));
for(i=0;i<RECORD_NUM;i++) record_display(&record[i]);
qsort(record, RECORD_NUM, sizeof(record[0]), record_compare);
printf("------------------------------------------------------------\n");
for(i=0;i<RECORD_NUM;i++) record_display(&record[i]);
return 0;
}
0266デフォルトの名無しさん2007/07/06(金) 21:45:14
[1] 授業単元:c言語基礎&応用
[2] 問題:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4531.txt
 [2.1]ソース:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4530.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ Microsoft Visual Studio 2005
 [3.3] 言語: C
[4] 期限:07年7月9日 午前10時
[5] その他の制限:特になし

どうかお願いいたします
0267デフォルトの名無しさん2007/07/06(金) 21:56:00
>>263

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4532.c
0268デフォルトの名無しさん2007/07/06(金) 21:58:17
>>266
> 現在のソースコードのすべての行にコメントをつける。
majikayo
0269デフォルトの名無しさん2007/07/06(金) 22:01:22
>>267
xとyは使ってないから消しても問題なし
0270デフォルトの名無しさん2007/07/06(金) 22:19:44
>>4
期限が7月11日までに延びましたので、再度依頼させていただきます
お暇がありましたら、回答の方よろしくお願いします
0271デフォルトの名無しさん2007/07/06(金) 22:54:08
>>266
ひでぇソースだな
そういう教官に教わらなきゃいかんとはご愁傷様
0272デフォルトの名無しさん2007/07/06(金) 22:59:40
問題文[1] 授業単元:C言語
[2] 問題文: :入力した人の年齢の合計と平均を出力させるプログラムを作成して下さい。
※入力時に累積の人数を表示 ※年齢入力時に数字属性と範囲のチェックを行う※nullは不許可とする
※0 〜 9 の文字のみで、かつ 1 〜 99 の範囲のみを許可する※年齢の平均は小数点第二位まで出力する
※名前に空が入力された場合に年齢の合計と平均を出力してプログラムを終了する
−実行結果−

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

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

3人目の名前:ghi
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日まで
[5] 初心者です。
0273デフォルトの名無しさん2007/07/06(金) 23:06:08
>>272
>>3と同一人物?
0274デフォルトの名無しさん2007/07/06(金) 23:07:01
>>268 >>271
分からないとこあったら聞けっていうから
ここが分からないって聞いても
「ネットで調べてください」で終わり。
そのくせ期限までやらないと、なぜ終わらなかったのかの理由と今後の対策を
レポート形式で提出。
レポート何回出したことやら・・・・
0275デフォルトの名無しさん2007/07/06(金) 23:13:04
まぁ、特にプログラミングなんてネットで調べて出てくることなら
自分で調べるのは当たり前でしょ。
0276デフォルトの名無しさん2007/07/06(金) 23:16:28
まあレポートは途中まででも出すことに意味があるから
別におかしいことでもない
0277デフォルトの名無しさん2007/07/06(金) 23:53:06
>264
隣り合う素数の差って答えは一つの差になるんじゃないの?
それとも19をはさんで23と17の差が最大ってこと?
0278デフォルトの名無しさん2007/07/07(土) 00:04:35
>>266
プログラムに関する「コメント」を書いてみたお
1) 最後に(どうでもよい)_getch()を一回使うためだけにconio.hをインクルード、
 VC++依存
2) fgets()でいいところをgets_s()なんてものを使っているせいでVC++8.0依存
3) 最初に画面をクリアしていないのでコマンドプロンプトから起動すると
 画面が崩れる。当然最後に画面の後始末をするという考えも無い
4) 画面のクリア処理が不十分なので「指定が違いますせん!」などという楽しい
 メッセージが見られたりする
5) 使うまでも無いgotoの嵐
6) 入力が[A-Ca-c][1-3]の範囲に入っていることを確認するという下らない仕事の
 ために、main()の6行と関数2つも使っている。涙を禁じえない
7) 関数Locate()で、戻り値をBOOLにして単にSetConsoleCursorPosition()の
 戻り値をそのまま返してやれば3行減るのに無駄にintに変換。
 で、わざわざそんなことをやっているが、Locateの戻り値をチェックしている
 箇所は実は1箇所もない

秋田からそろそろやめるわ
0279デフォルトの名無しさん2007/07/07(土) 00:56:44
>254
たすかりました!ありがとうございました!
0280デフォルトの名無しさん2007/07/07(土) 04:49:01
>>266
コメントのそろえ方がタブ使ってたり空白だったりばらばら
関数や変数の命名規則がめちゃくちゃ
Locale() (大文字かよ)
boardshow (board_show()じゃない)

↓コメントが嘘。

/*
指定した位置に、既に石が置かれているかどうかを調べる関数です。
対応するBoard[row][col]が0以外ならばすでに石が置かれているので
-1を返します。0ならば0を返します。
*/
〜 中略 〜
if ( Board[row][col] == 0 )
nRet = TRUE;
else{
nRet = FALSE;
〜 以下略 〜
0281 ◆KqBLZKKJjc 2007/07/07(土) 04:51:25
>>277
例が分かりづらくてスマン
あくまでも隣り合う素数の差であります。
3-2=1
5-3=2
7-5=2
11-7=4
みたいに、ある素数から一つ手前の素数を引いたのをそれぞれ求めて、
その中から最大の結果だけを出力するようにしたいんです。

0282デフォルトの名無しさん2007/07/07(土) 05:20:12
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
static bool isPrime(int no)
{
for (int ic = 3; ic * ic <= no; ic += 2) if (no % ic == 0) return false;
return true;
}
static int getNextPrime(int base)
{
int no;
for (no = base + 2; ! isPrime(no); no += 2) ;
return no;
}
static void primeDist(int limit)
{
struct Dist {int upper; int lower; int dist;} maxDist = {3, 2, 1};
for (int prime = 3; prime <= limit;) {
int nextPrime = getNextPrime(prime);
if (nextPrime <= limit) {
struct Dist tmp = {prime, nextPrime, nextPrime - prime};
if (tmp.dist > maxDist.dist) maxDist = tmp;
}
prime = nextPrime;
}
printf("%d-%d:%d\n", maxDist.upper, maxDist.lower, maxDist.dist);
}
int main(int argc, char ** argv)
{
if (argc < 2) return 1;
int limit = atoi(argv[1]); primeDist(limit); return 0;
}
02832822007/07/07(土) 05:30:53
>>282
Usage: ./a.out 1000000
きそう、100万までなら0.5秒で終わるのに1000万だと10秒、2000万だと30秒掛かるぜ。
0284デフォルトの名無しさん2007/07/07(土) 11:31:47
>264
#include <stdio.h>
#define N 1000000
int prime[100000];
int main(void)
{
    int i, j, cnt = 0, max, max_index = 0;
    prime[cnt++] = 2;
    prime[cnt++] = 3;
    for(i=5; i<N; i+=2) {
        int flag = 0;
        for(j=1; prime[j]*prime[j] <= i; j++) {
            if(i%prime[j]==0) {
                flag = 1;
                break;
            }
        }
        if(!flag) prime[cnt++] = i;
    }
    max = prime[1] - prime[0];
    for(i=1; i<cnt-1; i++) {
        int temp = prime[i+1] - prime[i];
        if(temp > max) {
            max = temp;
            max_index = i;
        }
    }
    printf("%d - %d = %d\n", prime[max_index+1] , prime[max_index], max);
    return 0;
}
0285デフォルトの名無しさん2007/07/07(土) 11:33:22
>#define N 1000000
>int prime[100000];
プ
0286デフォルトの名無しさん2007/07/07(土) 11:36:02
>282より>284が遅いのはなんでなんだぜ。
0287デフォルトの名無しさん2007/07/07(土) 11:42:51
>285
プ
0288 ◆KqBLZKKJjc 2007/07/07(土) 11:49:12
>>282

・・・速いッスね
ありがとうございます。
こんなに速く回答いただけて、嬉しいです。


ありがとうついでに、
あつかましいのを承知でお願いしてもいいですか?

このプログラム、自分じゃ手に余ってしまいます。(ムズイ)
上からどんな動作をしているのかを説明してもらえますか?

0289デフォルトの名無しさん2007/07/07(土) 11:55:33
>>274
質問の仕方を工夫する訓練なんだよ
無料でなんでも教えてくれるのは学生の間だけだぜ
0290デフォルトの名無しさん2007/07/07(土) 11:56:06
>286
100万程度じゃ差は感じられないだろ。
Nを20000000、prime[2000000]にしてやって見れば282とどっちが速いか分ると思うけど。
0291デフォルトの名無しさん2007/07/07(土) 11:56:28
見つけた素数を配列に入れて覚えとくと
Nがデカいときには効いてくるが、メモリもアホみたいに食う罠
0292デフォルトの名無しさん2007/07/07(土) 12:01:24
>>288
isPrime()
素数判定関数。毎回その数の平方根以下の全ての奇数の剰余を求めるから遅い。
getNextPrime()
次の素数取得関数。引数には3以上の奇数以外を与えてはならないのにガードも注釈も無い。
primeDist()
素数間距離の最長を見つける関数。引数には見つける範囲の上限を与える。
但し、仮令2以下の数値を与えても(初期値として固定で持っている)2から3の間の1が最長という結果を出力する。
main()
コマンドライン引数から素数間距離の最長を見つける範囲の上限を取得して上記primeDist()を呼ぶ。
引数なしで起動したときに何の説明もしてくれないと言う、これも困った我が儘仕様。
0293デフォルトの名無しさん2007/07/07(土) 12:05:01
>>264のstady CってのはStudy CとかいうCのインタプリタのことか?
たぶんC99には対応してないんじゃないかな
02941882007/07/07(土) 12:40:59
単語帳の処理ありがとうございました
0295デフォルトの名無しさん2007/07/07(土) 12:57:46
素数なら篩が最速だろ
#include <stdio.h>
#define N 1000000
char sieve[N];
int main(void)
{
int i, j, temp1, temp2, max, m1, m2;
sieve[0] = sieve[1] = 1;
for(i=2; i*i<N; i++) {
if(sieve[i]==0) {
for(j=2*i; j<N; j+=i) sieve[j] = 1;
}
}
m1 = temp1 = 3;
m2 = temp2 = 2;
max = m1 - m2;
for(i=5; i<N; i++) {
if(sieve[i]==0) {
temp2 = temp1;
temp1 = i;
if(temp1 - temp2 > max) {
max = temp1 - temp2;
m1 = temp1;
m2 = temp2;
}
}
}
printf("%d - %d = %d", m1, m2, max);
return 0;
}
0296デフォルトの名無しさん2007/07/07(土) 13:15:03
うおっ、無茶苦茶速ぇ
0297デフォルトの名無しさん2007/07/07(土) 13:17:26
そりゃまぁ、剰余計算が全く無いからね。
0298デフォルトの名無しさん2007/07/07(土) 15:10:17
>>266
>問題1
>現在のソースコードのすべての行にコメントをつける。

すごく・・・大きいです。

>問題2
>プログラムに勝敗を判定する機能を付け加える。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4533.txt
0299デフォルトの名無しさん2007/07/07(土) 16:50:54
> 295
幸い、1000000 で最大のパターンが1つだからそのロジックでいいけど
複数あるとダメだねwww
0300デフォルトの名無しさん2007/07/07(土) 19:16:43
急いでます。誰か助けてください!!

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4536.txt
0301デフォルトの名無しさん2007/07/07(土) 19:18:16
本当にC++かそれは・・・
03023002007/07/07(土) 19:30:18
初心者なもので、すいません…

コンパイラはC++で間違いないと思いますが、言語はC言語かもしれないです…
0303デフォルトの名無しさん2007/07/07(土) 19:50:04
[1] 授業単元:情報論
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4537.txt
2文字拡大したハフマン符号化プログラムを改良して3文字拡大のハフマン符号化にせよ
ヒント
変更箇所で書き換えるのは主に配列の添え字部分
文字列が配列にどのように収納されているかをよく考える
ノードの構造体に文字列がどのように収納されるかを考える

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


お願いします
0304デフォルトの名無しさん2007/07/07(土) 19:50:06
それすらも分からんのか・・・
0305デフォルトの名無しさん2007/07/07(土) 19:54:59
void swap(int *px, int *py)
{ int tmp;

tmp = *px;
*px = *py;
*py = tmp;
}

void main()
{ int a=3, b=5;

printf("a=%d, b=%d\n", a, b);
swap(&a, &b);
printf("a=%d, b=%d\n", a, b);
}

ポインタってどういう仕組みなんですか??
aとbのアドレスをポインタ*pxと*pyに渡すとどうなるんですか?
03063002007/07/07(土) 20:03:35
1回、C言語の書き方で作ってもらえませんか?
0307デフォルトの名無しさん2007/07/07(土) 20:06:49
>>306
参考のプログラムをどういう風に使わせたいのかな。
それ使わないといけないの?構造体は使ってはだめ?
0308デフォルトの名無しさん2007/07/07(土) 20:07:26
【即会い!!】

管理人が使用してみて、即出会えた出会い系サイトのみを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトを厳選して薦めております。
↓↓↓
【ブログ】http://deaiload.blog109.fc2.com/
03093002007/07/07(土) 20:17:01
使わないといけないということはないです。
要するに、2次元配列を使ってプログラムを作れとのことです。

構造体はまだ授業で扱っていないので、使わないようにお願いします。
0310デフォルトの名無しさん2007/07/07(土) 20:20:39
[1] 授業単元:プロC
[2] 問題文(含コード&リンク):
xclock -update 1 を起動し、約30秒後にSIGTERMで停止させるプログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4538.txt

問.emacs と xclock -update 1 を起動し、 emacs が終了すると
xclockをSIGTERMで停止させるプログラムを書け。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 来週中
[5] その他の制限: 無いです

よろしくお願いします。
0311デフォルトの名無しさん2007/07/07(土) 20:27:16
>>310
>>126
0312デフォルトの名無しさん2007/07/07(土) 22:03:33
>>309
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4539.txt
0313デフォルトの名無しさん2007/07/07(土) 22:19:17
ttp://acm.pku.edu.cn/JudgeOnline/problem?id=1251
の問題を提出することになったのですが、回答が通りません。
これはどのようにとけばいいのでしょうか?

[3] 環境
 [3.1] OS:XP/Vista
 [3.2] コンパイラ名とバージョン:c++
 [3.3] 言語:C++
[4] 期限: 月曜日
[5] その他の制限: 無し
03143122007/07/07(土) 22:48:32
>>309
fcloseをしてなかった。
最後と、配列不足で抜けるreturnの前に、
fclose(fp)を入れてくれ。
03153002007/07/07(土) 22:55:32
http://pc11.2ch.net/test/read.cgi/tech/1183511364/312

すいません…
注文を付け加えて申し訳ないですが…

#include <stdlib.h> や #include <ctype.h>
という書き方はやっていないです。

また問題で言われてることは同じ回数のときはアルファベットの"逆順"でソートするプログラムです。


よろしくお願いします。

03163122007/07/07(土) 22:59:18
まだあった。
int count;
を
int count = 0;
に書き直してくれ。
0317デフォルトの名無しさん2007/07/07(土) 23:00:34
俺が、回答者の気持ちを代弁してやる

#include "stdlib.h"
ってしろや
ってかそれくらいわかったれや
0318デフォルトの名無しさん2007/07/07(土) 23:01:28
>>313
方法だけ書くと単純にプリムのアルゴリズムでOK。
とりあえずプリムのアルゴリズムでAcceptが出たのを確認してきた。
多少冗長気味に書いても通ったので実行速度とか気にせず書けばいい。
03193002007/07/07(土) 23:03:13
もう1つ
大文字と小文字は区別せず、アルファベットの逆順にソートするものです。

たとえば適当にこのような英文があれば…

I want to go Zoo.

Zoo
want
to
I
go

みたいな感じです。
03203122007/07/07(土) 23:11:35
>>315
>アルファベットの"逆順"でソート
Aとaは同じ順位として扱うのか、それとも、
z>a>Z>Aの並び方にするのか?
03213122007/07/07(土) 23:16:31
もう一つ質問だ。
大文字、小文字の区別を付けない場合、
テキスト内に、"WORD","word","Word"と3通りあったら、結果の表示はどうする?
最初に見つけた綴りで行うのか?
それとも表示の際に書き換えても良いのか?
03223202007/07/07(土) 23:17:08
Aとaは同じ順位で扱います。
03233212007/07/07(土) 23:20:44
書き換えても構いません。
03243122007/07/07(土) 23:37:18
>>323
「小文字に書き換え」でしました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4541.txt
03253242007/07/07(土) 23:45:47

エラーがでましたけど…

エラー E2268 report.cpp 42: 未定義の関数 'isalpha' を呼び出した(関数 main(int,char * *) )
エラー E2268 report.cpp 47: 未定義の関数 'tolower' を呼び出した(関数 main(int,char * *) )
0326デフォルトの名無しさん2007/07/07(土) 23:51:11
>>325
それぐらいググれば一発なのに・・・
isalphaもtolowerもctype.h内の標準ライブラリ関数。
わかんなかったら#include<ctype.h>をソースの先頭に書く。
0327デフォルトの名無しさん2007/07/07(土) 23:52:44
>>325
323だよな、きっと
番号は最初の質問番号でいいよ
そのつど変えなくて
03283122007/07/08(日) 00:03:42
>>325
>>326が書いているとおりです。
#include <ctype.h>
をソースに追加して下さい。
駄目なときは同様の処理関数を実装しないといけないが、
出来れば車輪は発明したくない。
03293002007/07/08(日) 00:07:33
>>326
ctype.hは授業ではやっていないです。
違うように書き換えることってできますか?

>>327
すいません。あんまり書き込みをしないもので…
0330デフォルトの名無しさん2007/07/08(日) 00:14:08
tolower(char c){
if(c >='A' && c<'Z')return c+'a'-'A';
}

こんな感じか?動かしてはいない
03313002007/07/08(日) 00:16:50
isalphaの方も早く教えてください
■ このスレッドは過去ログ倉庫に格納されています