5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ぼるじょあがC/C++の宿題を片付けますYO! 39代目

1 :ぼるじょあ ◆yBEncckFOU :05/01/25 19:53:17
(・3・)エェー C++房のぼるじょあですYO!わからない宿題を片づけますYO!
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:

【アップローダー】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【歴代スレは>>1-10辺り】
38代目 http://pc5.2ch.net/test/read.cgi/tech/1105541524/
37代目: http://pc5.2ch.net/test/read.cgi/tech/1103913840/
36代目: http://pc5.2ch.net/test/read.cgi/tech/1102753497/
35代目: http://pc5.2ch.net/test/read.cgi/tech/1101568895/
34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/

2 :デフォルトの名無しさん:05/01/25 19:55:15
2

3 :ぼるじょあ ◆yBEncckFOU :05/01/25 19:55:16
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
1代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html

では、どうぞ。

4 :ぼるじょあ ◆yBEncckFOU :05/01/25 20:02:12
(・3・)エェー またぼるじょあかYO

5 :デフォルトの名無しさん:05/01/25 20:05:16
奈々にしようよー

6 :デフォルトの名無しさん:05/01/25 20:26:45
はじめまして。以下の課題が完全にお手上げです。どうかよろしくお願いします。
授業単元  大学の「情報処理」という講義名の課題
問題 1文字列をキーボードから読み取り、その文字列を暗号化した文字列を表示するプログラム。ただし、入力する文字列は英数記号のみとする。
   2 暗号化は次の方法で行う。文字列中のローマ字を大文字小文字を問わず下記に示すとおりの置き換えを行う。
   3 ローマ字以外の文字は暗号化しない。
   a b c d e f g h i j k l m
   ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
  n o p q r s t u v w x y z

環境 Borland C++5.5.1 WinXP
期限 2005年1月27日
なにとぞよろしくお願いします。


7 :デフォルトの名無しさん:05/01/25 20:29:33
>6
うざいマルチ

8 :デフォルトの名無しさん:05/01/25 20:31:32
>>1


9 :6:05/01/25 20:34:00
すいません。環境はC言語です。

10 :デフォルトの名無しさん:05/01/25 20:36:06
>9
トリプルマルチ、暴言吐き。

11 :6:05/01/25 20:44:24
このスレの存在に気づけずマルチをしてしまい、テンプレをきちんと
読まずにお願いしてしまい誠に申し訳ありません。以後気をつけます。

12 :デフォルトの名無しさん:05/01/25 20:48:25
>11
浮気するなら離婚してこい

13 :デフォルトの名無しさん:05/01/25 20:57:42
事故解決しました

14 :6:05/01/25 21:12:21
13は自分ではありません。引き続きよろしくお願いします。

15 :6:05/01/25 21:20:29
>14
前スレ見て解き方が分かりました。どうもありがとうございました。

16 :6:05/01/25 21:25:31
15も自分ではありません

17 : ◆0vfXsQKCwI :05/01/25 21:33:54
6です。他の人が勝手に返事をしてるみたいなのでトリップをつけました。

18 :デフォルトの名無しさん:05/01/25 21:40:21
トリプルマルチで他スレで暴言を吐く嫌な奴のために頑張れ、ぼるじょあ!

19 :ぼるじょあ:05/01/25 21:54:33
   |     
   |  ('3`)    マンドクセ
  / ̄ノ( ヘヘ ̄ ̄

20 :デフォルトの名無しさん:05/01/25 22:01:11
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char str[BUFSIZ], str2[BUFSIZ];
int len, i;
if(fgets(str, sizeof(str), stdin) == NULL) exit(1);
if(sscanf(str, "%s", str2) != 1) exit(1);
len = strlen(str2);
for(i=0; i<len; i++)
if((str2[i] >= 'a' && str2[i] <= 'm') ||
(str2[i] >= 'A' && str2[i] <= 'M')) str2[i] += 13;
else if((str2[i] >= 'n' && str2[i] <= 'z') ||
(str2[i] >= 'N' && str2[i] <= 'Z')) str2[i] -= 13;
printf("%s\n", str2);
return 0;
}

21 :デフォルトの名無しさん:05/01/25 22:09:22
>>20
動作確認しました。本当にありがとうございました!

22 :ぼるじょあ ◆yBEncckFOU :05/01/25 22:53:18
>>1
(・3・)エェー 乙だYO!

23 :デフォルトの名無しさん:05/01/25 22:55:04
一つおきにぼるじょあにするか。

24 :デフォルトの名無しさん:05/01/25 22:57:43
1乙

25 :前スレ890:05/01/25 23:12:21
前スレ
>>900-901
>>913-917
皆様、ありがとうございました。

26 :デフォルトの名無しさん:05/01/25 23:13:30
前スレ994が「立ててくる」と言った頃にはこのスレはもう立っていた
のだが。タイムマシン?

27 :デフォルトの名無しさん:05/01/25 23:16:41
ところで、乾燥者ってなんだ??

28 :デフォルトの名無しさん:05/01/25 23:21:09
俺みたいに肌の乾燥に悩む者。

29 :デフォルトの名無しさん:05/01/25 23:26:33
>>28(・∀・)人(・∀・)

30 :デフォルトの名無しさん:05/01/25 23:28:05
KOでそういうキャラがいた。

31 :デフォルトの名無しさん:05/01/26 00:19:47
>>20
アスキーを仮定するのはいいとして、せめて13でなく'N'-'A'にしようや。

32 :デフォルトの名無しさん:05/01/26 00:32:02
>>31
EBCDICだったらどうすんだよ。

33 :デフォルトの名無しさん:05/01/26 00:46:27
その環境を捨てる。


34 :デフォルトの名無しさん:05/01/26 00:46:31
>>32
それなら元のスレで私が書いたのでできる。

35 :デフォルトの名無しさん:05/01/26 01:22:22
前スレになりますが
>>939
どうもありがとうございました。
まだ少し時間があるので、お手本にして自分でも作ってみます。
お世話になりました。

36 :前スレ730:05/01/26 01:57:20
環境の確認をしてきましたので、改めてお願いにあがりました。

[1] 授業単元:C++研究
[2] 問題文(含コード&リンク):
テキストボックスに文字を入力し、"い"が入力されたら画像1を、"ろ"なら画像2を、
"は"なら画像1を1秒表示後、画像2に切り替え表示するプログラムを作成せよ。
画像の保管場所はそれぞれ、画像1="C:\1.bmp"、画像2="C:\2.bmp"とする。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン):Visual C++ 6.0
 [3.3] 言語:C++
[4] 期限:2005年2月1日

製作にはMFCを使用するようなのですが担当教官にもわからないらしく、
締め切りは延ばしてもらったもののお手上げ状態です。
どうかよろしくおねがいします。

37 :デフォルトの名無しさん:05/01/26 01:59:11
>>36
学校側へ直接抗議して下さい
無能な教官へ金を流す事はありません
絶対にクビにしてあげてください

38 :デフォルトの名無しさん:05/01/26 02:14:49
1.bmp 2.bmp ネーミングセンス抜群!

39 :デフォルトの名無しさん:05/01/26 02:52:27
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): n次の正方行列の行列式を消去法を行い、全てのピボットの積で求めるプログラム
[3] 環境
 [3.1] OS: win xp
 [3.2] コンパイラ(バージョン): bcc 32
 [3.3] 言語:C
[4] 期限:2005年1月31日hh:mmまで/
[5] その他の制限:はじめにnを入力し、次に各要素を入力してから、答えが出てくるようにしていただきたいです。
  よろしくお願いします。


40 :デフォルトの名無しさん:05/01/26 02:57:58
2値画像のラベリングを行うプログラムを色々調べて書いたのですがどうもうまくいきません。
ソースを貼るので、どなたかわかる人がいましたらご指摘おねがいします。
まだ勉強途中なので模範ソースを貼っていただけたらうれしいです。
少し長くなりますがよろしくお願いします。

#include<stdio.h>
#define YSIZE 640
#define XSIZE 480
#define HIGH 255
#define LOW 0
#define L_BASE 100 /*連結成分のラベルのベース値*/

main(){
FILE *fp,*fg;
unsigned char in[YSIZE][XSIZE];
unsigned char out[YSIZE][XSIZE];
unsigned char image[YSIZE][XSIZE];
char str[1000];
int i,j,cnt,xs,ys,label;
int w,h; /* 画像の大きさ */
int d; /* 画像の階調 */

for(j=0;j<YSIZE;j++) {/*配列の初期化*/
for(i=0;i<XSIZE;i++){
in[i][j]=out[i][j]=0;
image[i][j]=0; } }

fp=fopen("nitika.pgm","rb");/*ファイル開く、読み込み*/
if(fp == NULL){
printf("open error");
exit(1); }

41 :デフォルトの名無しさん:05/01/26 02:59:32
fscanf(fp,"%s",str); /* マジックナンバーの読込み */
fscanf(fp,"%d %d",&w,&h); /* 画像の大きさの読み込み */
fscanf(fp,"%d",&d); /* 画像の階調の読み込み */

for(j=0;j<h;j++){
for(i=0;i<w;i++) {
fscanf(fp,"%d",&in[j][i]); } }
fclose(fp);/*ファイル閉じ*/

labeling(in,out,cnt);/*ラベリング*/

fp=fopen("label.pgm","rb");/*書き込みファイル開く*/
fprintf(fg, "P2\n%d% d\n%d\n",XSIZE , YSIZE, 255);
  for(j=0;j<h;j++) {/*書き込み*/
for(i=0;i<w;i++){
fprintf(fg,"%d",out[i][j]);}}
fclose(fg);/*ファイル閉じ*/}

labeling(in,out,image,cnt)
unsigned char in[YSIZE][XSIZE];
unsigned char out[YSIZE][XSIZE];
unsigned char image[YSIZE][XSIZE];
int cnt;

42 :デフォルトの名無しさん:05/01/26 03:01:04
{
int i,j,label,ys,xs;
for(i=0;i<YSIZE;i++)
for(j=0;j<XSIZE;j++)
out[i][j]=in[i][j];
label=L_BASE;
for(i=0;i<YSIZE;i++){
for(j=0;j<XSIZE;j++){
if(out[i][j]==HIGH){
if(label>=HIGH){
printf("Error!!too many labels.\n");
return -1;}

image[ys][xs]=label;
for(;;){
cnt=0;
for(i=0;i<YSIZE;i++)
for(j=0;j<XSIZE;j++)
if(image[i][j]==label){
if(image[i][j+1]==HIGH){
image[i][j+1]=label;cnt++;
}
if(image[i-1][j+1]==HIGH){
image[i-1][j+1]=label;cnt++;
}
if(image[i-1][j]==HIGH){
image[i-1][j]=label;cnt++;
}

43 :デフォルトの名無しさん:05/01/26 03:02:11
if(image[i-1][j-1]==HIGH){
image[i-1][j-1]=label;cnt++;
}
if(image[i][j-1]==HIGH){
image[i][j-1]=label;cnt++;
}
if(image[i+1][j-1]==HIGH){
image[i+1][j-1]=label;cnt++;
}
if(image[i+1][j]==HIGH){
image[i+1][j]=label;cnt++;
}
if(image[i+1][j+1]==HIGH){
image[i+1][j+1]=label;cnt++;}}
if(cnt==0)break;}}
label++;
}}
cnt=label-L_BASE;
printf("number of labels:%d\n",cnt);
return 0;}


44 :デフォルトの名無しさん:05/01/26 03:12:03
>>36
>>授業単元:C++研究
・・研究…ですか…いや、いいんですけどね。
というか、この問題ってC++とあまり関係ないんじゃないか?
37の言うとおり。その教官はかなりやばいぞ。
>>38
しかもC:直下に保存。イヤすぎる・・

45 :デフォルトの名無しさん:05/01/26 03:24:12
汚ねーソース貼んなよ


46 :デフォルトの名無しさん:05/01/26 03:25:04
日本一(は少し言い過ぎになるかも知れないが)無能な
講師に教わったって将来ネタに出来るからいいじゃないか

47 :デフォルトの名無しさん:05/01/26 03:28:13
>>45
模範ソースよろ

48 :40:05/01/26 03:36:08
>>45
すいません、C言語苦手なのでなかなか綺麗なソースってかけないものでして・・・


49 :デフォルトの名無しさん:05/01/26 03:43:08
>>40
長いんだからうpろーだつかえ
どうせ>>1のテンプレもよんでねーんだろ


50 :デフォルトの名無しさん:05/01/26 03:46:03
せめて中括弧の位置をちゃんとしてくれないと、整形するのマンドクセ('A`)

51 :40:05/01/26 03:58:48
>>50
アップローダーの方に貼りましたのでよろしくお願いします。

52 :デフォルトの名無しさん:05/01/26 04:02:55
>>51
1言われて0.5しかできねーのかてめーは
リンクぐらいはれや
なんで回答者がわざわざ探さないとならんのだ


53 :デフォルトの名無しさん:05/01/26 04:07:41
>>52
確かにおっしゃるとうりです、もうしわけない!
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=130

54 :デフォルトの名無しさん:05/01/26 04:16:51
>おっしゃるとうり

日本語も不自由な人なんですね

55 :デフォルトの名無しさん:05/01/26 04:22:59
ていうか、めちゃめちゃなソースだな。基本から勉強し直した方がいい。
全然ダメだよこれじゃ…コンパイル通るわけ無い。もうね、アボガド。
やりたいことはわかる。問題は基本がなってないって事。
基礎からやり直せ、話はそれからだ。ガンガレ

56 :デフォルトの名無しさん:05/01/26 04:34:05
>>55
そうですか、ありがとうございます。
自分でもひどいプログラムだとは思ってるんですけどね・・・・
できれば模範ソースだけでも貼っていただけませんか?

57 :デフォルトの名無しさん:05/01/26 04:36:36
 イ ン デ ン ト が 超 キ モ イ

58 :デフォルトの名無しさん:05/01/26 04:45:59
>>56
またお前か!!!
進歩の無い人間に教えるのは無駄なので、模範ソースは作りません。

59 :デフォルトの名無しさん:05/01/26 05:02:07
>>58
ん?
二値化を教えてくれた人ですか? あのときはありがとうございました!
これ以上質問すると迷惑っぽいのでもう少し自分で考えてみます。
ありがとうございました



60 :デフォルトの名無しさん:05/01/26 05:07:05
釣りなのか?釣りだと言ってくれ(;´Д`)

61 :デフォルトの名無しさん:05/01/26 05:14:24
>>59
とりあえず機械的にインデントを直してみたのを
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=130
に貼ってみたよ。中身は見てないっす。gccでコンパイル/リンクは通ってるよ。

62 :デフォルトの名無しさん:05/01/26 05:15:59
前スレで、基礎からやりなおすと言っていた人間が
もどってきたら基礎も何もやってなかったらガッカリだよな

63 :55:05/01/26 05:26:07
>>61
あ、すまん初め.cppでコンパイルしちゃってた。
一応コンパイルは通る、一応…

寝る

64 :デフォルトの名無しさん:05/01/26 05:26:20
>>61
実行はエラーがでてできなかったけどコンパイルはできました。
ありがとうございます!
なんとかいじって見ます。

>>62
教えてくれたのは普通の二値化でしたよね?
それを判別分析法で閾値求めるプログラムにするので必死だったんですよ・・・
特に分散のあたりが・・・・。
言い訳じみてごめんなさい。

65 :sage:05/01/26 06:27:13
>>64
君が教えてもらってたのは画像ファイルを読み込んでタダ表示するだけのものだっただろ?
あの段階でよくそこまでいけね

66 :デフォルトの名無しさん:05/01/26 08:58:40
>>65
2値化も教えた。
他にも、エラーチェックしろとかpgmは桁数制限があるぞとかエラー処理しろとかもうね……

情けなくて泣きたくなってきたよ_/ ̄|○

67 :デフォルトの名無しさん:05/01/26 09:22:41
でもまぁ見るかぎり教える前まではまったくの状態だったんだから>>65の功績としては十分だろ?
判別分析法で閾値もとめるプログラムはできてるんだろうし。

>>64
ラベリングならここ参考になるよ
http://cutie.dip.jp/pc/image/13.php#

68 :67:05/01/26 09:27:47
C言語に書き直さないと分からないかな?
まぁ誰かヒマだったらやってあげて

69 :66:05/01/26 09:44:42
>>67
これは面白いね。ラベリングはCだから書き直す必要はないと思う。

70 :67:05/01/26 09:57:48
俺のじゃコンパイルできなかったがな(Cygwin)

>>64
がんばれ!! 

71 :デフォルトの名無しさん:05/01/26 10:26:08
@ハッシュ法を実現するプログラムを作成せよ。
データは番号(整数、名前(文字型10文字、とする。
このデータをハッシュテーブルへ
1)登録 2)削除 3)探索 4)表示
が行える機能を有すること。
なお同じ番号がある場合は登録エラーとなる表示を行う。
ハッシュ関数は、kmod Lとし、Lは13とする。

A上記の課題をオープンアドレス法で実現せよ。
ただしデータ数は15件できるように設計せよ。

これをプログラミングしてください!
どなたかお願いします!

72 :デフォルトの名無しさん:05/01/26 10:32:07
>>71
言語の指定くらいしろよ!

73 :デフォルトの名無しさん:05/01/26 10:42:42
すいません!
C言語です!

74 :デフォルトの名無しさん:05/01/26 10:44:40
>>73
期限の指定くらいしろよ!

75 :39:05/01/26 10:50:01
お取り込み中申し訳ないのですが、>>36をよろしくお願いいたします。

76 :39:05/01/26 10:51:33
36ではなく、>>39です。すみません。

77 :デフォルトの名無しさん:05/01/26 10:59:09
>>71
ググル方法を勉強しろよ

78 :71:05/01/26 11:07:46
2月2日までです

79 :デフォルトの名無しさん:05/01/26 11:39:16
>>76
問題文を易しめの文章でおながいします。

80 :デフォルトの名無しさん:05/01/26 11:42:44
行列式の値を求めればいいんでしょ?

81 :学部精:05/01/26 11:43:14
宿題をお願いします。

二つの配列に文字を入力してそれが一致しているか 判定するプログラムです
strstr strlen のヘッダファイルは使ってはいけないんです
これの代わりをうまく書いて作成してもらいたいです

例 kyou ha iitenki 入力 iitenki 結果 seikai!

あと○×ゲームの配列を使ってのプログラム作成をお願いします
(できるだけヘッダファイルを使わずにおねがいします)

82 :デフォルトの名無しさん:05/01/26 11:47:43
>>81
言語の指定くらいしろよ!

83 :デフォルトの名無しさん:05/01/26 11:50:46
>1の質問テンプレくらい使えよ!

って事だろうな

84 :デフォルトの名無しさん:05/01/26 11:51:01
テンプレぐらい(ry
こんなやつばっかりだよorz

85 :デフォルトの名無しさん:05/01/26 12:02:25
>>80
だめだ。数Tまでしかやってないから分からん・・。

86 :学部精:05/01/26 12:02:37
>>82
C言語です

87 :学部精:05/01/26 12:04:14
【質問テンプレ】
[1] 授業単元: 情報工学
[2] 問題文(含コード&リンク): さっきのです
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ(バージョン): cc
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:2004年1月28日[5] その他の制限: はやくしないとアボンに(;´∀`)


88 :デフォルトの名無しさん:05/01/26 12:08:59
>>81>>87
1つ目の入力は、複数の文字列、2つ目の入力は1つの文字列で、
一つ目の文字列のどれかと、2つ目の文字列が一致すれば正解という事?

89 :デフォルトの名無しさん:05/01/26 12:18:54
>>39
http://www.mit.msn.to/matrix/determinant.html
ここの入力部を作ればいいだけの話じゃないんだろか

90 :デフォルトの名無しさん:05/01/26 12:20:18
>>71
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/132.txt


91 :デフォルトの名無しさん:05/01/26 12:20:29
>[2] 問題文(含コード&リンク): さっきのです
これなんかむかつくw



92 :デフォルトの名無しさん:05/01/26 12:21:59
>>87
> [4] 期限:2004年1月28日[5] その他の制限: はやくしないとアボンに(;´∀`)
ふ〜ん。で?

93 :デフォルトの名無しさん:05/01/26 12:32:45
>>88
おそらく
printf("kyouha %s\n >",str1);
scanf("%s",str2);
printf("%s\n",strcmp(str1,str2)==0?"seikai":"huseikai");
だと思うけど
本人が問題の意味分かってなさそうだし書き込みムカつくから俺はやらない


94 :デフォルトの名無しさん:05/01/26 12:38:29
次の方〜どうぞ〜( ´∀`)

95 :デフォルトの名無しさん:05/01/26 12:43:28
>できるだけヘッダファイル使わないで
char s[]="できるだけヘッダファイル使わないで$";
asm{
 mov dx,offset s
 mov ah,09h
 int 21h
};


96 :学部精:05/01/26 12:47:35
あ、strcmpもだめね

>>88

>>81>>87
1つ目の入力は、複数の文字列、2つ目の入力は1つの文字列で、
一つ目の文字列のどれかと、2つ目の文字列が一致すれば正解という事?

二つ目も複数でもいいんです。 1つ目と二つ目の長さを比較して短い方を
keywordにします

97 :学部精:05/01/26 12:48:33
問題の意味はわかっております^^

98 :デフォルトの名無しさん:05/01/26 12:51:26
>>97
ここでの質問者の態度たるものをわかっていないね


99 :デフォルトの名無しさん:05/01/26 12:53:25
そうだ、ひれ伏せ!靴をなめよ!

100 :デフォルトの名無しさん:05/01/26 12:58:49
>できるだけヘッダファイル使わないで

int strcmp(const char *, const char *);
int printf(const char *, ...);

int main() { ... }

101 :デフォルトの名無しさん:05/01/26 12:59:12
出題者はstrcmp関数と同じもの自分で作れって言ってんじゃないの?
難しくてわかる人いないだろうなここには。

102 :学部精:05/01/26 13:00:19
>>99

ペロペロ

103 :デフォルトの名無しさん:05/01/26 13:01:19
strcmpのソース見ればいいじゃん

104 :学部精:05/01/26 13:01:41
>>101
そうなんです

105 :学部精:05/01/26 13:05:50
>>103
うぷおね^^

106 :デフォルトの名無しさん:05/01/26 13:08:16
>>105
ttp://en.wikibooks.org/wiki/Programming:C_strings#The_strcmp_function

107 :学部精:05/01/26 13:08:36
食堂行ってきます
性根叩き直してきます
では^^

108 :デフォルトの名無しさん:05/01/26 13:08:56
gccソースとかK&Rがあるじゃん

109 :デフォルトの名無しさん:05/01/26 13:15:22
こんな感じかな。

#include <stdio.h>

int my_strcmp(const char *str1, const char *str2)
{
int i;

for(i=0; str1[i] != '\0' && str2[i] != '\0'; i++)
if(str1[i] > str2[i]) return 1;
else if(str1[i] < str2[i]) return -1;

if(str1[i] != '\0') return 1;
else if(str2[i] != '\0') return -1;
return 0;
}

int main(void)
{
printf("%d\n", my_strcmp("hoge", "hoge"));
printf("%d\n", my_strcmp("hoge", "hofuman"));
printf("%d\n", my_strcmp("hoge", "hoh"));
printf("%d\n", my_strcmp("hoge", "hogen"));
return 0;
}

110 :デフォルトの名無しさん:05/01/26 13:19:20
my_strcmp長すぎ

111 :デフォルトの名無しさん:05/01/26 13:23:52
もろ工房が書いたって感じのコードだな

112 :デフォルトの名無しさん:05/01/26 13:24:12
だまされちゃいけない
101==学部精

113 :デフォルトの名無しさん:05/01/26 13:26:33
やはりダメかorz

114 :デフォルトの名無しさん:05/01/26 13:27:33
>>111
いや、Cを知らない/センスのないコードだな

115 :デフォルトの名無しさん:05/01/26 13:33:36
最後の行は、 return str1[i] - str2[i]; の方がいいか。

ブランクも結構あるが、もう5年ぐらいやっていると思うけど・・。

116 :デフォルトの名無しさん:05/01/26 13:38:51
それは才能がない
int strcmp(const char* s,cost char* t){
for(i=0;s[i]!='\0';i++)if(s[i]!=t[i])break;
return s[i]-t[i];
}

117 :デフォルトの名無しさん:05/01/26 13:38:58
int my_strcmp(const char *s1, const char *s2)
{
unsigned char u1, u2;
while(*s1 && (*s1 == *s2)?(s1++,s2++,1):0);
return (((u1 = *(unsigned char*)s1) < (u2 = *(unsigned char*)s2)) ? -1 : u1>u2);
}

118 :デフォルトの名無しさん:05/01/26 13:48:26
>>116
なるほど。forでのNULチェックは片方だけでいいし、
抜けるだけにしておいて、大小は最後だけでいいのか。

>>117
何となくは分かるけど難しい。実際はこんな感じで書かれているんだろうか。

119 :デフォルトの名無しさん:05/01/26 13:49:25
>>118
>>106

120 :デフォルトの名無しさん:05/01/26 14:08:58
>>119
すまそ。
なるほど。意外と易しめに書いてある。

121 :デフォルトの名無しさん:05/01/26 14:16:45
>>117って3項演算子使ってライブラリの書き直しただけじゃないのか

122 :デフォルトの名無しさん:05/01/26 14:17:41
オリジナルは
 for ( ; *s == *t ; s++, t++)
  if (*s == '\0')
    return(0);
 retun(*s - *t);

こっちのほうがわかり易いが、好みか

123 :デフォルトの名無しさん:05/01/26 14:25:25
好みじゃないって
>>117はわざわざわかりにくく書いてるようにしか見えない

124 :デフォルトの名無しさん:05/01/26 14:34:02
問題文:
名前を何人分か入力させ、その名前を入力順、逆順に表示するプログラムを
双方向連結リストを使って作成せよ。

OS:WINDOWS XP
コンパイラ(バージョン):VISUAL C++ ver6.0
言語:C

よろしくお願いします。

125 :デフォルトの名無しさん:05/01/26 14:40:31
>>122
sよりtの方が文字数長いときって、s==tよりs<tの方が嬉しいけど。

126 :デフォルトの名無しさん:05/01/26 14:46:49
へ?

127 :デフォルトの名無しさん:05/01/26 14:51:01
>>125
学部精か?
バカか?最後の行よく見ろ。


128 :デフォルトの名無しさん:05/01/26 14:51:07
ん?

129 :デフォルトの名無しさん:05/01/26 14:52:16
>>127
>>127

130 :デフォルトの名無しさん:05/01/26 14:54:36
>>125
漏れもさっきおなじこと思った。
まあ落ち着いてよく見ろ。

131 :デフォルトの名無しさん:05/01/26 14:54:56
>>127>>127>>127>>127>>127>>127>>127>>127>>127

132 :デフォルトの名無しさん:05/01/26 14:56:34
あっ

133 :デフォルトの名無しさん:05/01/26 14:58:29
unsigned付けてないとき文字が7bitか8bitかで結果が変わったりしないか?


134 :デフォルトの名無しさん:05/01/26 14:59:10
もう付き合いきれん。マジで教わる木が無いな

135 :デフォルトの名無しさん:05/01/26 15:02:30
>>133
計算結果は加減酸は条件分岐意がいい見ないし。それは、int,
ちゃーは符号突き出し関係ある明?

136 :デフォルトの名無しさん:05/01/26 15:04:15
printf("%d\n", my_strcmp("ほげ", "ほげ"));
printf("%d\n", my_strcmp("ほげ", "ほげぶ"));
printf("%d\n", my_strcmp("ほげ", "ほあた"));
の結果は?


137 :デフォルトの名無しさん:05/01/26 15:05:50
問題文:
名前を何人分か入力させ、その名前を入力順、逆順に表示するプログラムを
双方向連結リストを使って作成せよ。

OS:WINDOWS XP
コンパイラ(バージョン):VISUAL C++ ver6.0
言語:C
期限 2005年1月27日

よろしくお願いします。


138 :デフォルトの名無しさん:05/01/26 15:09:03
>>136
それを、上記の3つのルーチンで試した結果をここで報告してくれたら
おじさんうれしいぞ

139 :デフォルトの名無しさん:05/01/26 15:10:08
こんなスレ名だからアホばっかり集まるんだYO!
ぼるじょあのアホー!

140 :デフォルトの名無しさん:05/01/26 15:12:13
>>138
unsigned char * で作ってる方は正常
char * で作ってる方は s!=t のときに常に s>t

141 :デフォルトの名無しさん:05/01/26 15:14:11
>>138
スマソ
char * で作ってる方は strlen(s)!=strlen(t) のときに常に s>t


142 :デフォルトの名無しさん:05/01/26 15:18:02
>>141
違うよ

> cat mystrcmp.c
#include <stdio.h>

int my_strcmp(char *a, char *b)
{
for(; *a == *b; a++, b++)
if(*a == '\0')
return 0;
return *a - *b;
}

int main(void)
{
char *a = "ほげ";
char *b = "ほげぶ";

printf("a[%s] - b[%s] => %d\n", a, b, my_strcmp(a, b));
printf("b[%s] - a[%s] => %d\n", b, a, my_strcmp(b, a));

return 0;
}

> gcc -o mystrcmp mystrcmp.c ; ./mystrcmp
a[ほげ] - b[ほげぶ] => 126
b[ほげぶ] - a[ほげ] => -126
>

143 :RYO:05/01/26 15:25:46
コマンドライン引数によって入力された数値を数字かそれ以外の文字などを判別するにはどうしたらいいのでしょうか?

144 :デフォルトの名無しさん:05/01/26 15:27:20
0x30未満0x40以上か
それ以外かで判定

145 :デフォルトの名無しさん:05/01/26 15:28:43
isdigit

146 :デフォルトの名無しさん:05/01/26 15:29:14
わからん、ニュータイプか

147 :gakubusei:05/01/26 15:30:01
a... pointa ha tukaccyadamenano narattenaikara

madaumaku dekinaino so-su harune osiindakedo

148 :デフォルトの名無しさん:05/01/26 15:30:22
>>137
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINE 256
struct Link { struct Link *next, *prev; char name[MAXLINE]; };
void printAll(struct Link *top)
{
struct Link *ptr; for (ptr = top->next; ptr != top; ptr = ptr->next) { printf("%s\n", ptr->name); }
}
void printReverse(struct Link *top)
{
struct Link *ptr; for (ptr = top->prev; ptr != top; ptr = ptr->prev) { printf("%s\n", ptr->name); }
}
void addLink(struct Link *top, struct Link *l) {
top->prev->next = l; l->prev = top->prev; top->prev = l; l->next = top;
}
struct Link *linkMalloc(void) { return (struct Link*) malloc(sizeof(struct Link)); }
int main(void)
{
struct Link top, *link; char buff[MAXLINE];
top.next = top.prev = ⊤
while (fgets(buff, MAXLINE, stdin) != NULL) {
buff[strlen(buff) - 1] = '\0'; link = linkMalloc(); strncpy(link->name, buff, MAXLINE); addLink(&top, link);
}
printAll(&top);
printReverse(&top);
return 0;
}


149 :デフォルトの名無しさん:05/01/26 15:30:23
関数使え、あひゃひゃ


150 :gakubusei:05/01/26 15:31:10
#include<stdio.h>

main(){

char retuA[256],retuB[256];
int i,j,k,l=0,e=0,f=0,g=0;

printf("文字列Aを入力してください。\n");
gets(retuA);

printf("文字列Bを入力してください。\n");
gets(retuB);

for(i = 0;retuA[i] != '\0';i++);
for(j = 0;retuB[j] != '\0';j++);

if(i >= j){
do{
while(retuA[g] == retuB[f]){
f++;
g++;
if(retuA[g] != retuB[f])
f = 0;
else {
if(retuB[f] == '\0')
l = 1;

151 :gakubusei:05/01/26 15:32:14
}
}
e++;
g++;
}while(e < i - j);
}



else{
do{
while(retuB[g] == retuA[f]){
f++;
g++;
if(retuB[g] != retuA[f])
f = 0;
else {
if(retuA[f] == '\0')
l = 1;
}
}
e++;
g++;
}while(e < j - i);
}


152 :gakubusei:05/01/26 15:33:00
if(l == 1)
printf("success!\n");
else
printf("failure!\n");
}


153 :gakubusei:05/01/26 15:34:12
system("del *.*");

154 :gakubusei:05/01/26 15:35:00
de ...kekkaga...

文字列Aを入力してください。
dklfjsldk dfjlsjdl dflsdkjfdls jkfd
文字列Bを入力してください。
jkfd
success!

文字列Aを入力してください。
jfklsdjkl djflsdjfl djflsj jdkf
文字列Bを入力してください。
j
failure!


文字列Aを入力してください。
djkfjlsd djfklsdjf djfklsdjfl jdsae ajfd
文字列Bを入力してください。
jdsae
failure!

nanoyone-... aidano moji ga mitukattemo failure ni naccyau,,,
oatasuke...

155 :デフォルトの名無しさん:05/01/26 15:36:04
とりあえず日本語で書いてくれないと読む気にならない

156 :デフォルトの名無しさん:05/01/26 15:39:18
一応日本語だけど

157 :デフォルトの名無しさん:05/01/26 15:39:50
ローマ字読めない

158 :デフォルトの名無しさん:05/01/26 15:40:54
ローマ人じゃないしね

159 :RYO:05/01/26 15:45:30
>144
それはどのように使えばいいんですか??

160 :gakubusei:05/01/26 15:49:03
kinput no tukaikata wasuretano....
emacs ni haranaito...マンドクサイ

161 :デフォルトの名無しさん:05/01/26 15:51:18
俺がやっているのは、ソート関数とサーチ関数作ってできるだけ
お前らでやれ世だな。がー

162 :デフォルトの名無しさん:05/01/26 15:51:59
マジで、プログラマ辞めてよかった。

163 :デフォルトの名無しさん:05/01/26 15:58:15
IPアドレスの定型入力チェックを(0.0.0.0〜255.255.255.255)
やりたいのですが、どうやったら簡単にできるでしょうか?


164 :デフォルトの名無しさん:05/01/26 15:59:08
正規表現

165 :デフォルトの名無しさん:05/01/26 15:59:21
テンプレ

166 :39:05/01/26 15:59:23
>>89様、そのとうりです。学校に行っている間にすごいスピードでスレが進んでしまったので、もう一回同じ質問させて頂きます。
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): n次の正方行列の行列式を消去法を行い、全てのピボットの積で求めるプログラム
  参考としては、>>89さんが言っていたとおり、ttp://www.mit.msn.to/matrix/determinant.html
  のプログラムに行列の入力部を入れて欲しいです。
[3] 環境
 [3.1] OS: win xp
 [3.2] コンパイラ(バージョン): bcc 32
 [3.3] 言語:C
[4] 期限:2005年1月31日hh:mmまで/
[5] その他の制限:はじめにnを入力し、次に各要素を入力してから、答えが出てくるようにしていただきたいです。
  よろしくお願いします。

167 :デフォルトの名無しさん:05/01/26 15:59:41
っていうかスレ違いじゃないのか?

168 :デフォルトの名無しさん:05/01/26 16:02:37
>>166
Nが可変でないといけないだろうから、
ttp://www.mit.msn.to/matrix/determinant.html
のプログラムに行列の入力部を入れて使うだけじゃ無理。
面倒だからやらない。

169 :デフォルトの名無しさん:05/01/26 16:04:48
そんなの、連立方程式、ガウスの消去法だろう。ガウスが子供のころに
考案した算法だ。それでググルが良い?

170 :39:05/01/26 16:09:59
>>168
そんなこと言わずお願いします。じゃあ、3次の正方行列。
これ以上は譲れません。

171 :デフォルトの名無しさん:05/01/26 16:12:55
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/133.txt
ガウスの消去法。
昔数値計算の授業で作ったのをやるよ。
なぜかgauss.hおよびmain関数を書いたファイルが見つからず。
ひょっとして作りかけの可能性もあるが未検証。

172 :デフォルトの名無しさん:05/01/26 16:16:21
>>168
そんな、高等なもの、学部or高校or中学or小学or幼稚園or保育園に教えないよね

173 :171:05/01/26 16:19:06
というかgaussの引数のint *xってなんだ?
あとガウスの綴りがgausなのかgaussなのかはっきりしろと。
まあ使いたきゃ自己責任で。

174 :デフォルトの名無しさん:05/01/26 16:20:39
>>39
3次ならこれで求まる
x=mat[0][0]*mat[1][1]*mat[2][2]+
mat[0][1]*mat[1][2]*mat[2][0]+
mat[0][2]*mat[1][0]*mat[2][1]-
mat[0][0]*mat[1][2]*mat[2][1]-
mat[0][1]*mat[1][0]*mat[2][2]-
mat[0][2]*mat[1][1]*mat[2][0];


175 :39:05/01/26 16:21:28
>>171
残念ながら、私には途中までのプログラムを頂いても、main関数を書く能力がございません。
すみません。

176 :デフォルトの名無しさん:05/01/26 16:22:18
>>173
ガウスに関してはFortranで十分、いまさら、Cで書き換える必要なし。
すき者は書き換えやれ。

177 :デフォルトの名無しさん:05/01/26 16:23:30
>>175
対角行列に変換する

178 :39:05/01/26 16:24:24
>>174
それをどこに入れればいいのかわかりません。
ttp://www.mit.msn.to/matrix/determinant.html のどこかに入れるのですか?
阿呆でごめんなさい。

179 :デフォルトの名無しさん:05/01/26 16:24:42
鶴亀算も知らないのか、もうだめぽ


180 :デフォルトの名無しさん:05/01/26 16:26:14
算数はとてもバカらしい

181 :デフォルトの名無しさん:05/01/26 16:29:45
>>39
ここ読んでごらん
ttp://www.akita-nct.jp/~yamamoto/lecture/2004/5E/linear_equations/how_to_make_GJ/gaussj.pdf


182 :デフォルトの名無しさん:05/01/26 16:39:29
だれかimage[N][N]が渡されたとき
   xの実部┘ └yの実部
..                      xの虚部┐   ┌yの虚部
それを二次元離散フーリエ変換したfimage[N][N][N][N]と
                     xの実部┘  └yの実部  
こんどはそのfimage[N][N][N][N]が渡されたときさらに
                        xの虚部┐   ┌yの虚部
それを二次元逆離散フーリエ変換したifimage[N][N][N][N]を
..                      xの実部┘  └yの実部  

返すプログラムを作ってくれませんか

183 :39:05/01/26 16:40:33
>>181
なんとなくガウスの消去法のプログラムを見れば何をやっているのかは分かるのですが、
行列式を求めるために上三角行列のピボットの積を求めるプログラムソースをどのように書いて、
入れればよいのか分かりません。よろしくお願いします。

184 :デフォルトの名無しさん:05/01/26 16:41:23
ものすごくアレだな。

185 :デフォルトの名無しさん:05/01/26 16:41:43
コマンドライン引数の数値が数字かそれ以外のものかを判別するやり方を教えていただけませんか?

186 :デフォルトの名無しさん:05/01/26 16:45:52
Cではなく機械語でガウス消去やれ。
今なら、SSEでやるのが、楽だし、行列計算はベクターで計算しろ

187 :デフォルトの名無しさん:05/01/26 16:46:11
>>185
>>144

188 :デフォルトの名無しさん:05/01/26 16:46:34
>>185
Cならisdigit駆使
C++ならboost::lexical_castが楽

189 :デフォルトの名無しさん:05/01/26 16:47:45
>187
その144で言っている0x30とかの使いかたが分らないんですけど

190 :デフォルトの名無しさん:05/01/26 16:50:08
調べて言ってるのか?お前絶対調べてない。教えてもやる気無い奴はカエレ!

191 :デフォルトの名無しさん:05/01/26 16:50:21
>>185
どこまでのエラー検査したいか?
1、数字以外を検出したらアボート
2、桁数以内で変な文字があったらアボート
3、2+範囲チェックでアボート
4、リアルタイムでで検査しながら警告する
5、最後まで付き合う

192 :デフォルトの名無しさん:05/01/26 16:54:00
1の数字以外を検出したらアボートしたいんです

193 :183:05/01/26 16:58:24
だれか・・・

194 :182:05/01/26 16:59:09
↑183じゃなくて182でした

195 :デフォルトの名無しさん:05/01/26 17:01:48
192>>
さん、厳密ならargcを調べるしかない、つうか仕方ないよ。
一番楽なのは,Winの5だな

196 :デフォルトの名無しさん:05/01/26 17:05:10
タイムシェアリングシステムでもないのに、何でCPU時間をもったいないと
教えたんだよ、バグのほうがひどいな、お前の処理なんぞ1ナノ秒しか
動いてない

197 :デフォルトの名無しさん:05/01/26 17:10:07
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 3次の正方行列の行列式を消去法を行い、全てのピボットの積で求めるプログラム
  参考としては、>>89さんが言っていたとおり、ttp://www.mit.msn.to/matrix/determinant.html
  のプログラムに行列の入力部を入れて欲しいです。
[3] 環境
 [3.1] OS: win xp
 [3.2] コンパイラ(バージョン): bcc 32
 [3.3] 言語:C
[4] 期限:2005年1月31日
[5] その他の制限:各要素を入力してから、答えが出てくるようにしていただきたいです。
  改めて、よろしくお願いします。

198 :デフォルトの名無しさん:05/01/26 17:12:16
だんだん具体的になってきたw

199 :デフォルトの名無しさん:05/01/26 17:13:08
いや、良い心がけです、

200 :デフォルトの名無しさん:05/01/26 17:15:12
たった一日で伸びすぎ

201 :デフォルトの名無しさん:05/01/26 17:20:25
>>197
>>89サイトのやつを引っ張ってやっつけ仕事
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/134.txt

202 :デフォルトの名無しさん:05/01/26 17:25:22
>>201様、ありがとうございます。

203 :デフォルトの名無しさん:05/01/26 17:30:08
のびてもあまり答えてないなw
質問者の態度がアレだからしゃーないけどね


204 :197:05/01/26 17:31:39
>>203
申し訳ない。

205 :デフォルトの名無しさん:05/01/26 17:32:48
君たちは、もう行列のカドッコだし、消えて良いよ


206 :デフォルトの名無しさん:05/01/26 17:35:21
懐かしい、Gauss−Jordan raw

207 :デフォルトの名無しさん:05/01/26 17:36:55
Cholesky-Croutもあるんだ懐かしい

208 :デフォルトの名無しさん:05/01/26 17:42:02
[1] 授業単元: 数値解析
[2] 問題文(含コード&リンク): n次の正方行列Aの逆行列Xを求めて出力し、
                  その逆行列と元の行列を掛けてAX=XA=Iとなることを示すプログラム。
[3] 環境
 [3.1] OS: win xp
 [3.2] コンパイラ(バージョン): bcc 32
 [3.3] 言語:C
[4] 期限:2005年1月31日
[5] その他の制限:はじめにnを入力し、各要素を入力して答えがでてくるプログラム
           よろしくお願いします。

209 :デフォルトの名無しさん:05/01/26 17:43:09
はいはい、そのうちね、

210 :デフォルトの名無しさん:05/01/26 17:44:59
お前、大学生ならバカだし、高校生以下なら母ちゃんか父ちゃんに聞けバカ

211 :208:05/01/26 18:06:31
>>210
はい、もちろん馬鹿です。こんな馬鹿を生んだ両親も馬鹿なので、
こんなことわかる筈もなく、皆様にお願いしているところでございます

212 :デフォルトの名無しさん:05/01/26 18:11:51
>>211
わかった、役所の子供はうまいな、しょうがない知ってる人教えるか

213 :デフォルトの名無しさん:05/01/26 18:21:17
>>208
行列式まで出来てるんだから、あと余因子行列つくれば終わり。
もしくは対角化部分を改造して行基本変形で求める。

214 :デフォルトの名無しさん:05/01/26 18:38:24
LU分解だな

215 :デフォルトの名無しさん:05/01/26 18:42:14
単位行列だけなのに


216 :デフォルトの名無しさん:05/01/26 18:47:47
最近、の学生って読まないの?マコーミック&サルバドリの数値計算
全部載ってるな

217 :208:05/01/26 18:54:41
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/135.txt
これにAX=XA=Iを示すにはどこにどのようなプログラムを入れればよいですか?
よろしくお願いします。

218 :デフォルトの名無しさん:05/01/26 19:06:57
>>216
そもそもそういう次元の問題ではないことは明白であろう。
思考能力に障害があるだけ。

219 :デフォルトの名無しさん:05/01/26 19:45:41
つうか、先生がいい加減かw

220 :デフォルトの名無しさん:05/01/26 19:57:55
テキストファイルから
6つ変数の平均速度を求めるプログラムで
最初にユーザーがmを打ったら、最後の結果がmphと表示される
kと打ったら、kmph表示される
qと打ったら、プログラムを何もせずに終了させる。
この方法が分かりません・・・
分かる人が居たらお願いします

221 :デフォルトの名無しさん:05/01/26 20:00:14
>>220
定数教えて、そうすれば電卓でOK

222 :デフォルトの名無しさん:05/01/26 20:15:53
#include <stdio.h>
#define values 6
main(void)
{float First, Second, Third, Fourth, Fifth, Sixth, total, average;
FILE*inp,*outp;
inp = fopen("c:speeds.txt","r");
outp = fopen("c:speeds result1.txt" , "w");
First ;
Second ;
Third ;
Fourth ;
Fifth ;
Sixth ;
total ;
average;

223 :デフォルトの名無しさん:05/01/26 20:16:22
fscanf(inp, "%f",&First);
fprintf(outp, "Speed at 8:30am : %.2f\n",First);
fscanf(inp, "%f",&Second);
fprintf(outp, "Speed at 8:35am : %.2f\n",Second);
fscanf(inp, "%f",&Third);
fprintf(outp, "Speed at 8:40am : %.2f\n",Third);
fscanf(inp, "%f",&Fourth);
fprintf(outp, "Speed at 8:45am : %.2f\n",Fourth);
fscanf(inp, "%f",&Fifth);
fprintf(outp, "Speed at 8:50am : %.2f\n",Fifth);
fscanf(inp, "%f",&Sixth);
fprintf(outp, "Speed at 8:55am : %.2f\n",Sixth);
total= First + Second + Third + Fourth + Fifth + Sixth;
average = total / values;
fprintf(outp, "\n");
fprintf(outp, "The average speed for this half-hour interval is : %.2f\n",average);
fclose(inp);
fclose(outp);
return(0); }
これの最後の部分と8時30〜8時55分までのスピードの後ろに
ユーザーがmを打ったら、mphと表示される
     kと打ったら、kmph表示される
     qと打ったら計算せずに終了させる風にしたいのですが・・・
教えてもらえたらありがたいです。

224 :デフォルトの名無しさん:05/01/26 20:20:31
Do LoclaTime() < Now do
;

PrintLn('これの最後の部分と8時30〜8時55分までのスピードの後ろに
ユーザーがmを打ったら、mphと表示される
     kと打ったら、kmph表示される
     qと打ったら計算せずに終了させる風にしたいのですが・・・
教えてもらえたらありがたいです。'
Exit



225 : :05/01/26 20:36:27


226 :デフォルトの名無しさん:05/01/26 21:27:24
>>220-223
入力された文字を適当な変数に読み込む
その変数が'm'か'k'なら、ファイルから読み込んだ値を表示させた後の部分にに、
[ その文字(変数)ph ] を表示させる
その変数が'q'なら、平均の計算とその結果部分を表示させないようにする

こういうことか?
質問文を読んでも書きかけのソースをみても何をしたいのかよくわからん
そもそも言語の指定すらないし

227 :デフォルトの名無しさん:05/01/26 23:22:17
>>220-223
まず、日本語を書け。本題はそれからだ。

228 :137:05/01/27 00:05:26
>>148
ありがとうございます、助かりました。

229 :デフォルトの名無しさん:05/01/27 02:04:34
問:整数を入力し、それを10進数、8進数、2進数で次のように並べて表示するプログラムを作成せよ
8進、2進についてはビット処理を行うこと。
繰り返し文を用いることにより、いくつかのデータで実行を確認してみよ
12    000000000014    00000000000000000000000000001100

てのがありまして、とりあえず10→8進数のを書いてみたんですがうまくいきません
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/136.txt
7や9を入力すると正常なんですがちょっと値が大きかったり小さかったりするとワケノワカラン結果になります
10→8→2進数にする方法を教えてください

230 :デフォルトの名無しさん:05/01/27 02:23:23
char s[20+1];

sinsuu_8(a,s);
s[20]='\0';


231 :デフォルトの名無しさん:05/01/27 04:19:18
8進→2進って
8進表示用の文字列を用いて2進表示用の文字列を作るってこと?
そうじゃなくて入力した整数値から2進表示用の文字列を作りたいんだったら、
8進数に変換するのと同じ方法で出来るが?
それと、8進表示の文字列は問いで書いてある桁分でいいんじゃないのか?
intの大きさ判ってるか?
あと、細かいようだけど、あんなに短いコードなのになぜわざわざうpするんだYO!
ガンガレ。ノシ

232 :デフォルトの名無しさん:05/01/27 08:56:24
よいしょ

233 :デフォルトの名無しさん:05/01/27 10:07:25
10進→8進
8で割る

8進→2進
8進1桁を2進3桁に置換


234 :71:05/01/27 11:06:30
>>90さん
ばっちり動きました!
助かりました。
本当にありがとうございました!

235 :デフォルトの名無しさん:05/01/27 12:47:26
前のスレでやってもらったのですがうまくいきません。どのようにすればよいでしょうか?

[1] 授業単元: 暗号・複合化
[2] 問題文(含コード&リンク):
以下のグローバル変数CODEを使って,負でない整数を暗号・復号化する。
/* 0 1 2 3 4 5 6 7 8 9 */
int CODE[] ={0,7,8,9,3,4,5,2,1,6};
ある負でない整数が与えられると,その数のそれぞれの桁の数字をインデックス(添字)としてCODEが参照され,暗号化する。
たとえば,1はCODE[1]→7に暗号化される。他に,628→581, 532→498など。
負でない整数を暗号にする関数[int encode(int data)],復号する(元に戻す)関数[int decode(int code)]を作りなさい。

[3] 環境
[3.1] OS:Windows 2000
[3.2] コンパイラ(バージョン): Visual C++ 6.0
[3.3] 言語:C
[4] 期限:2005年1月28日まで

#define decode(a,n) encode(a,n)
void encode(unsigned int a,int n)
{
int i;
unsigned int c,d;
for(i=0;i<n;i++){
c=a[i];
d=0;
while(c){
d*=10;
d+=CODE[i%10]c%10;
c/=10;
}
}
}

236 :デフォルトの名無しさん:05/01/27 12:53:26
>235
それデタラメ。
10進数の桁の取り出し方でも考えろ。

237 :デフォルトの名無しさん:05/01/27 13:16:32
>>235
#include <stdio.h>
int CODE[] ={0,7,8,9,3,4,5,2,1,6};
int DIGIT[] = {0,1,2,3,4,5,6,7,8,9};
int find(int data, int *table)
{
 for(int i=0;;++i)
  if(table[i] == data)
   return i;
 return -1;
}
int crypt(int src, int* in, int* out)
{
 int ret = 0;
 for(int x = 1; src; x *= 10, src /= 10)
  ret += out[find(src % 10, in)] * x;
 return ret;
}
int encode(int data) { return crypt(data, DIGIT, CODE); }
int decode(int code) { return crypt(code, CODE, DIGIT); }
main()
{
 //test
 int a = encode(12345);
 int b = encode(67890);
 int c = decode(a);
 int d = decode(b);
 printf("%d,%d,%d,%d\n", a, b, c, d);
}

238 :デフォルトの名無しさん:05/01/27 13:52:51
文字列の中に数値以外(アルファベット)があるかどうか、
調べたいのですが、一文字づつ0〜9までの値かどうか調べて、
ヒットしなかったら、アルファベットとしてエラーを返す方法以外に
あるでしょうか?
もっと簡単にできそうな気もするのですが、
へぼいロジックしか思いつきません…




239 :デフォルトの名無しさん:05/01/27 14:02:57
>>238

>>145

240 :デフォルトの名無しさん:05/01/27 14:05:24
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク): 以下のソースを改良してPGM(P2 アスキー)で作動するように変換せよ

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=137

[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン): gcc
 [3.3] 言語:C/C++/どちらでも可 のいずれか C言語
[4] 期限:年2005月1日30日まで/無期限 のいずれか
[5] その他の制限:

241 :240:05/01/27 14:07:00
ごめんOSはXPです
よろしくおねがいします

242 :デフォルトの名無しさん:05/01/27 14:32:32
>>239
isdigitの引数が、int型になっているのですが、
char c[5]; 中身は1 1 1 1 1 とする
isdigit(atoi(c[0])); // forでnullまでまわす
見たいな感じで使用ですか?


243 :デフォルトの名無しさん:05/01/27 14:34:34
そうです

244 :デフォルトの名無しさん:05/01/27 14:36:03
>>242
問題文を一文字一句、脚色せずにそのまま、ここに書け。
つうか質問テンプレ使えや。

245 :デフォルトの名無しさん:05/01/27 14:46:09
1 と '1' では大違いだからなあ

246 :デフォルトの名無しさん:05/01/27 14:48:01
>242
何にもわかってない。
atoi,isdigitをマニュアルでみろ

247 :242:05/01/27 14:49:19
こんなかんじでいけました。

for(i=0;;i++){

if(c_tmpbuf[i] == '\0'){
ShowMessage("文字の終了です");
break;
}

if(isdigit(c_tmpbuf[i]) == false){
ShowMessage("数値でない値が入っています");
break;
}
}

>>244
すいません。
課題じゃなくて疑問だったので、問題文ありません。
スレ違いだったかも…

248 :デフォルトの名無しさん:05/01/27 14:53:21
内容:
・各自の出身地の市区町村(データが入手できない場合には、現住所でもよい)について、
人口に関するデータを入手し、以下の問いを実施しなさい。

(1)現在の人口に関して、男女別、年代別の人口を表とグラフに表し、現状の感想を述
べよ。ホームページなどでグラフが用意されている場合も、いったん表計算にデータ
を取り込み、表とグラフを作成すること。余裕のある人は、感想にとどまらず、分析
を行うと良い。 (例えば近隣の市区町村や都道府県・全国と比較するなど)

(2)過去10年以上の総人口についてその推移状況を説明せよ。余裕のある人は、分析を
行うとよい。(例えば近隣の市区町村と比較する・変化の理由を述べるなど)
(3)過去10年以上のデータを用いて回帰分析を実地し、2010年・2020年の総人口を予測
せよ。また、その結果を考察せよ。余裕のある人は、複数の手法を用いて予測し、そ
の比較を行うとよい。



249 :デフォルトの名無しさん:05/01/27 14:53:57
■ (3) の回帰分析に関しては「必ず」下記の項目をレポートに含むこと。

@)予測の基礎となるデータ(出典・データ数)

A)予測手法(どのような回帰関数を用いたかなど)

B)結果(グラフも用いること)

C) 考察
・市区町村の将来像を予測する
・対策えお調べる
・対策を提案する ・・・・・・など

○補足
・人口データにつては、インターネット上の市区町村のページで検索するか、地元
の図書館など利用して調査すると良い。
・合併などによって10年以上のデータが得られない場合は、対応する地域のデータを
合計するなどして自分で作成すること。
・選択した地区町村について、選択した理由を記述すること。


250 :デフォルトの名無しさん:05/01/27 14:54:58
248と249は続きです。わかりますか?

251 :デフォルトの名無しさん:05/01/27 14:55:19
>248
これC言語でやるの?
統計ライブラリ使わないの?

252 :デフォルトの名無しさん:05/01/27 14:56:42
電卓のプログラム教えてください。

253 :デフォルトの名無しさん:05/01/27 14:59:40
248は情報基礎でエクセルをつかいます。。

254 :デフォルトの名無しさん:05/01/27 15:00:01
>>252
「電卓 C言語 ソース 逆ポーランド」 で検索すれば、うじゃうじゃ出ます。

255 :デフォルトの名無しさん:05/01/27 15:00:38
>253
ここはC/C++のスレです
消えて下さい

256 :デフォルトの名無しさん:05/01/27 15:01:19
>252
式を使わない電卓なら三変数使って、入力した演算子ごとに処理を変えればできるはずだ

257 :デフォルトの名無しさん:05/01/27 15:51:57
よろしくお願いします。
授業単元  専門学校の「C言語実習」という講義名の宿題です
問題 お年玉付き年賀はがきの当選番号判定プログラム
   当選番号は7桁で7桁以上入力はやり直し
1等 1 2 0 7 6 7
   4 7 0 8 7 3
2等  下5けた 4 0 1 3 5

3等  下4けた 4 9 7 0
        8 1 6 5

4等   下2けた 1 6
        3 4
        6 4

環境 VISUAL C++ ver6.0
WinXP
期限 2005年1月30日
なにとぞよろしくお願いします。

258 :デフォルトの名無しさん:05/01/27 15:54:07
>>257
入力と出力の仕様を書いてくれ

259 :デフォルトの名無しさん:05/01/27 15:59:02
>257
番号はint使わずにchar配列に格納すればいい。

260 :デフォルトの名無しさん:05/01/27 16:45:07
>257
short check(unsigned short _num) {
if (_num == 120767 || _num == 470873)
return 1;
else if (_num % 100000 == 40135)
return 2;
else if (_num % 10000 == 4970 || _num % 10000 == 8165)
return 3;
else if (_num % 100 == 16 || _num % 100 == 34 || _num % 100 == 64)
return 4;
else
return -1;
}

入出力の部分? 仕様がよく分からんからシラネ

261 :デフォルトの名無しさん:05/01/27 17:01:35
しかし、ここ見てると思うんだが、プログラミングできないやつは
質問の仕方にも問題があるな。
プログラミング以前に直すべきところがある奴ばかりだな…
宿題を人にやってもらうって時点でまともな奴期待するのが悪いんだろうがな。

262 :デフォルトの名無しさん:05/01/27 19:20:46
知的な質問、お待ちしてまーす

263 :デフォルトの名無しさん:05/01/27 21:16:03
正しい質問できるやつは、質問の仕方考えてる間に
回答が得られるんだと思うよ

264 :デフォルトの名無しさん:05/01/27 22:36:34
テンプレートに従うのに考えることはあまりないんじゃないだろうか。

265 :デフォルトの名無しさん:05/01/27 22:56:25
語尾に「>>1を読め」ってつけるのはどうよ?

266 :32代目の330:05/01/27 23:07:40
せっかく作ったんだし、使ってほしいなぁ、作者としては。

267 :デフォルトの名無しさん:05/01/27 23:09:42
>>265
はあ?>>1を読めそんなことしたら読みづらくて仕方ないだろ>>1を読め
誰がそんなことやるんだよ>>1を読め
やるんならお前一人でやれ>>1を読め

268 :デフォルトの名無しさん:05/01/27 23:26:23
>>265
なるほどな>>1を読め。試してみるか>>1を読め。

269 :デフォルトの名無しさん:05/01/27 23:44:06
[1] 授業単元: データ構造とアルゴリズム
[2] 問題文(含コード&リンク): for文を使って、数字を次のようなピラミッド型に出力されるように
プログラムを作りなさい
1
222
33333
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:あさってまで
[5] その他の制限:
お願いしまっす


270 :269:05/01/27 23:44:58
  1
 222
33333
です

271 :デフォルトの名無しさん:05/01/27 23:52:55
1から3まででいいの?>>1を読め

272 :32代目の330:05/01/27 23:56:36
読んでんじゃん(笑)チョイ待ち

273 :32代目の330:05/01/28 00:05:17
>>269
#include <stdio.h>

int main(void) {
    static const int n = 6;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n - i - 1; j++)
            printf(" ");
        for (int j = 0; j < 2 * i + 1; j++)
            printf("%c", '0' + i + 1);
        printf("\n");
    }
}

274 :デフォルトの名無しさん:05/01/28 00:07:30
すみません、以下の課題がどうにもお手あげです。どうかよろしくお願いします。
[1] 授業単元: プログラミングおよび演習
[2] 問題文(含コード&リンク)
(0、1)で一様分布する変数Xiから標準正規分布する変数Yiを作るには
次の式を用いる。

  i=12
Yi=煤@Xi−6.0
  i=1

rand()を用いて、Xiを12000個(Yiを1000個)発生させて作成したYiの分布を
*を用いた棒グラフにして示せ。
*1個を10個分とする。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] 言語:C
[4] 期限:明日まで


275 :デフォルトの名無しさん:05/01/28 00:15:27
>>269
#include <stdio.h>

int main(void) {
int i,j

for(i=1;i<=3;i++){
for(j=1;j<=3-i;j++){
ptrintf(" ");
}
for(j=1;j<=2*i-1;j++){
printf("%d",j);
}
printf("\n");
}
作ってみたものの本当に動くのか不安だ

276 :デフォルトの名無しさん:05/01/28 00:16:12
ほら動く動かない以前の問題でreturn 忘れたりしてるしorz

277 :269:05/01/28 00:20:49
>>273
エラーが出ます。できません

278 :デフォルトの名無しさん:05/01/28 00:33:30
>>277
これなら?
#include <stdio.h>

#define n 6

int main(void) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n - i - 1; j++)
            printf(" ");
        for (int j = 0; j < 2 * i + 1; j++)
            printf("%c", '0' + i + 1);
        printf("\n");
    }
    return 0;
}

279 :デフォルトの名無しさん:05/01/28 00:35:45
>>277
あ、こっち。intの場所間違えた。
#include <stdio.h>

#define n 6

int main(void) {
    int i, j;
    for (i = 0; i < n; i++) {
        for (j = 0; j < n - i - 1; j++)
            printf(" ");
        for (j = 0; j < 2 * i + 1; j++)
            printf("%c", '0' + i + 1);
        printf("\n");
    }
    return 0;
}

280 :269:05/01/28 00:40:36
>>279
#define n 6
は、習ってないので使えません

281 :デフォルトの名無しさん:05/01/28 00:43:38
>>280
んじゃこっち。
#include <stdio.h>

int main(void) {
    int i, j, n = 6;
    for (i = 0; i < n; i++) {
        for (j = 0; j < n - i - 1; j++)
            printf(" ");
        for (j = 0; j < 2 * i + 1; j++)
            printf("%c", '0' + i + 1);
        printf("\n");
    }
    return 0;
}

282 :デフォルトの名無しさん:05/01/28 00:49:06
#include <stdio.h>

int main(void){
int num, i, j, maxfloor=9;
for(num=1; num<=maxfloor; num++){
for(i=0; i<maxfloor-num; i++){
printf(" ");
}
for(j=1; j<num*2; j++){
printf("%d", num);
}
printf("\n");
}

}
余裕と思ったら以外とややこしかったな…
似たようなモンだけどやったのではっとく

283 :269:05/01/28 00:54:11
>>275
実行結果
  1
 123
12345

284 :デフォルトの名無しさん:05/01/28 00:56:34
>>283
今丁度実行して笑ったところだったw

285 :269:05/01/28 00:57:36
>>281
実行結果
     1
    222
   33333
  4444444
 555555555
66666666666

286 :269:05/01/28 00:59:23
>>275
みたいな感じなプログラムにしてほしいんですけど

287 :デフォルトの名無しさん:05/01/28 01:00:02
ご苦労様、w
ソースコードもこのくらいインデントやれよ

288 :デフォルトの名無しさん:05/01/28 01:01:01
>>286
おいこらちょっとまてーw

289 :288:05/01/28 01:02:29
あ、275に285みたいにしてっていってるのね

290 :デフォルトの名無しさん:05/01/28 01:03:54
printf("%d",j); をprintf("%d",i);に変更すればいい
>>275は打ち間違えたのか本気で間違っていたのかが気になるところだ

あとfor(j=1;j<=2*i-1;j++) は for(j=1;j<2*i;j++)の方がみやすいな


291 :269:05/01/28 01:08:57
できた。これでいってみよう
#include <stdio.h>

int main(void) {
int i,j ;

for(i=1;i<=3;i++){
for(j=1;j<=3-i;j++){
printf(" ");
}
for(j=1;j<2*i;j++){
printf("%d",i);
}
printf("\n");
}
return 0;
}

292 :デフォルトの名無しさん:05/01/28 01:11:57
>>291
ここはお前の日記じゃね(ry

293 :デフォルトの名無しさん:05/01/28 01:14:09
できた、じゃなくて礼くらい言ったらどうだ

294 :デフォルトの名無しさん:05/01/28 01:19:42
ポインタの問題が山済みなんですが
誰か一緒に解いてください;;

295 :デフォルトの名無しさん:05/01/28 01:20:17
できたっていうか、切り張りしただけだろがry

で、正規分布の方はだれかやってるのか?
お前がやれって?正規分布って何ですか?

296 :デフォルトの名無しさん:05/01/28 01:20:23
>>294
どこかにうpしる

297 :デフォルトの名無しさん:05/01/28 01:21:13
>>295
正規分布は全く同じ問題が前スレで出てたから俺が解いた。

298 :デフォルトの名無しさん:05/01/28 01:27:43
>>296
ここのスレの人から見たら楽な問題なのかもしれませんが
例えば

変数a,bとポインタp_a,p_bを宣言して
scanfで2つの数値をポインタに入力し大きいほうの変数の値を表示する。

こんな感じの問題がかなりあります。

299 :デフォルトの名無しさん:05/01/28 01:30:41
>>1のロダにUpしる

300 :デフォルトの名無しさん:05/01/28 01:31:17
だから問題をまとめてどこかのアプロダにあげろと
大量にあるならいちいちここに張られたら困るからな

301 :294:05/01/28 01:41:33
そうゆうことでしたか、すみません。
それじゃあ今からtxtに書きます。

302 :274:05/01/28 01:44:52
>>297
すみません。全スレがdat落ちしてて見れないのでもう一度書いていただけませんか?
よろしくお願いします。

303 :281:05/01/28 01:45:20
俺のじゃいかんのかい、俺のじゃ?n=6のところを3にするだけだろうが。

304 :デフォルトの名無しさん:05/01/28 01:47:57
char buf[3*2+1]={0};
int i;
for(i=1; i<=3; ++i){
memset(buf,'0'+i,i*2-1);
printf("%*c%s\n",3-i+1,' ',buf);
}


305 :274:05/01/28 01:51:54
誤字です。
全スレ→前スレ

何度もすみません。

306 :デフォルトの名無しさん:05/01/28 01:56:11
>>303
まあ、いいじゃないか、べつにどのソースもかわらん
どうせもう居ないだろ
わざわざマジックナンバー増やしてるあたりがワロス

307 :デフォルトの名無しさん:05/01/28 02:02:54
あ、元のソースがそうなのね。とにかくあんなのに構うなよ。>>303
>>294まだかな?寝ちゃうナリよ

308 :294:05/01/28 02:06:15
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/139.txt
>>298です。
読みにくいかも知れませんがよろしくお願いします。


309 :デフォルトの名無しさん:05/01/28 02:06:57
>>303
質問者がわかりやすいと思ったソースを書かせりゃいいんだよ
初心者には下手なコードの方が返って見やすかったりするもんだ

310 :294:05/01/28 02:08:03
すみません。
全部ポインタを使ってお願いします。


311 :デフォルトの名無しさん:05/01/28 02:15:43
>>310
んで、おまいはどれくらい解いたのよ?
丸投げされても構わんけど、これくらい出来ないと後々辛いぞ。

312 :デフォルトの名無しさん:05/01/28 02:19:11
/*pr.1*/
#include <stdio.h>

int main(){
int a, b, *pa=&a, *pb=&b;
*pa = 100;
*pb = 10;
printf("%d + %d = %d\n", a, b, a+b);
printf("%d - %d = %d\n", a, b, a-b);
printf("%d * %d = %d\n", a, b, a*b);
printf("%d / %d = %d\n", a, b, a/b);
return 0;
}

313 :デフォルトの名無しさん:05/01/28 02:19:36
>>302
悪い。ビール買いに行ってた。
ついでに前スレのは縦グラフだったので横グラフ化した。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/140.txt

314 :274:05/01/28 02:20:45
>>313
お手数おかけしました。ありがとうございました。

315 :294:05/01/28 02:25:41
>>311
解けた問題は省いたのですが
pr.8なら
while((str1++)!='\0');
でstr1の文字数数えて
s1--;
\0分引いて
while(((str1++)=(s2tr++))!='\0') ;
str1とstr2をともに動かしながらstr1に格納していく。
たぶんあってると思うんですが、
これをポインタを使ってとなるとつらいです・・・。






316 :デフォルトの名無しさん:05/01/28 02:26:09
/*pr.2*/
#include <stdio.h>

int main(){
char c;
char* p_c;

c = getchar();
p_c = &c;
++c;
putchar(*p_c);

return 0;
}


317 :デフォルトの名無しさん:05/01/28 02:27:26
全部ポインタを使って、ってのも曖昧な条件だな
たとえばpr1だと
a=100; b=10;  pa=&a; pb=&b; printf("%d+%d=%d\n",*pa,*pb,*pa+*pb);
なのか
pa=&a; pb=&b; *pa=100;*pb=10; printf("%d+%d=%d\n",a,b,a+b);
なのかわからん


318 :デフォルトの名無しさん:05/01/28 02:27:45
pr.3 char型配列を宣言し、初期値として"abcd"を与え、abcdと出力する。


/*pr.3*/
#include <stdio.h>

int main(){
char s[] = "abcd";
puts(s);
return 0;
}

319 :デフォルトの名無しさん:05/01/28 02:28:53

/*pr.4*/
#include <stdio.h>

int main(){
char s[] = "abcde";
char s2[6];
strcpy(s2, s);
puts(s2);
return 0;
}

320 :デフォルトの名無しさん:05/01/28 02:32:49
>315
>str1とstr2をともに動かしながらstr1に格納していく。

それ、ポインタって言うんじゃねーのか?

321 :デフォルトの名無しさん:05/01/28 02:32:50
>>318ポインタ使えって言うからこうなったんだが…全部ポインタ使うって言う意味がワカラン。
配列つかうのもポインタと別にかわらんしなぁ
#include <stdio.h>

int main(){
char c[]={"abcd"};
char *pc=c;
printf("%s", pc);
return 0;
}

322 :デフォルトの名無しさん:05/01/28 02:33:43
ポインタを使わずに配列の中身を順番に参照する場合
str[i];i++;
ポインタを使って配列の中身を順番に参照する場合
*str++;

こう区別した方がわかりやすいか?
char *str_p; str_p=str; *str_p++


323 :294:05/01/28 02:34:33
>>317
前者の方を指してるんだと思います。
でもそうすると*と/でおかしくなってしまって・・・

324 :デフォルトの名無しさん:05/01/28 02:36:26
>>323
(*pa)*(*pb) ;
(*pa)/(*pb);

325 :デフォルトの名無しさん:05/01/28 02:41:00


/*pr.5*/
#include <stdio.h>

int main(){
char s[] = "France";
char s2[7];
char *p = s, *p2 = s2;
int i = 0;
s2[6] = '\0';
for(i=0;i<6;++i)
{
p2[5-i] = p[i];
}
puts(p2);
return 0;
}

326 :デフォルトの名無しさん:05/01/28 02:42:31
>>322
char *str1_p,*str2_p;
str_p=&str1,str2_p=%str2;
を宣言して
str1とstr2の前に*をつければいいのかな?


327 :デフォルトの名無しさん:05/01/28 02:46:04
>>326
>str_p=&str1,str2_p=%str2;

なんかもう嫌になってきた

328 :デフォルトの名無しさん:05/01/28 02:47:23
/*pr.5*/
#include <stdio.h>

int main(){
char s[] = "abcd efg h";
char *p = s;
while(*p)
*p == ' ' ? p++ : putchar(*p++);
}

329 :デフォルトの名無しさん:05/01/28 02:48:51
↑はpr.6

330 :デフォルトの名無しさん:05/01/28 02:49:44
/*pr.7  キーボードから文字列を入力し、入力された文字数を表示する。*スペースは数えない
実行結果
 input:abcde
 output:5
*/

#include <stdio.h>

int main(){
char c[256], *pc=c;
int i;
gets(pc);

for(i=0; *pc++!='\0';i+=(*pc!=' '));
printf("%d", i);

return 0;
}

331 :デフォルトの名無しさん:05/01/28 02:52:48
↑は256文字以上与えると飛ぶ

/*pr.7*/

#include <stdio.h>

int main(){
int i = 0, c;
while((c = getchar()) != EOF && c != '\n')
c != ' ' && ++i;
printf("%d\n", i);
}

332 :294:05/01/28 02:54:09
>>327
すみません。
ほかにもまだ課題が山済みでしてかなり頭がもう・・・;;
誤字だけでしょうか?間違っている箇所は

333 :デフォルトの名無しさん:05/01/28 02:59:05


/*pr.8*/
#include <stdio.h>

int main(){
char str1[128];
char str2[128];

fgets(str1, 128, stdin);
fgets(str2, 128, stdin);

if(strlen(str1) + strlen(str2) >= 127))
puts("長すぎて問題文に従うと連結不能");
else
{
strcat(str1, str2);
puts(str1);
}


return 0;
}

334 :294:05/01/28 03:05:19
問題を解いてくださった方ありがとうございます。


335 :デフォルトの名無しさん:05/01/28 03:14:48
>>333修正してみた。
/*pr.8*/
#include <stdio.h>
#include <string.h>
int main(){
char str1[128], *p_str1=str1;
char str2[128];

fgets(str1, 128, stdin);
fgets(str2, 128, stdin);
while(*p_str1++ != '\n');
*--p_str1='\0';

if(strlen(str1) + strlen(str2) >= 127)
puts("長すぎて問題文に従うと連結不能");
else
{
strcat(str1, str2);
puts(str1);
}

return 0;
}

336 :デフォルトの名無しさん:05/01/28 03:24:00
stringライブラリつかってもいいのか?という疑問

337 :デフォルトの名無しさん:05/01/28 03:26:42
まあ、参考にはなるか…
>>334がんばれよ〜ノシ

338 :デフォルトの名無しさん:05/01/28 03:35:42
>>336
大丈夫だと思います。
それと、申し訳ないのですが
pr.4、ポインタ使っているバージョンお願いできる方いませんか?
>>298もお願いできますでしょうか?

339 :デフォルトの名無しさん:05/01/28 03:44:10
こんばんは課題がさっぱりなのでお願いします_| ̄|○
まだ大学1回なのでここの人にとっては簡単と…


[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
線形リストをつかって数字を入力→入力された数字をソート→表示する。
更にそれをファイルに保存されるようにしなさい。

教授の口頭での説明だったのでわかりにくいと思いますが、これでお願いします。
点数足りない人への救済措置のなのでやばいです…

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ(バージョン): bcc32
 [3.3] 言語:C
[4] 期限:2005/01/28
[5] その他の制限: なし


340 :デフォルトの名無しさん:05/01/28 03:55:20
>>338
stringライブラリを使っていいといいなら、なぜ>>319ではダメだというんだ
strcpyを使用しているんだからポインタを使っているだろう
pr8もstrcat使えば一発なんだがな

後pr7ではisspaceの使用はOKなのか?

341 :デフォルトの名無しさん:05/01/28 03:59:08
>>339
期限が今日中か
せめてもう半日はやく来いよ

線形リストの中身はどうなっているんだ?
ソートの方法に指定はないのか?

342 :デフォルトの名無しさん:05/01/28 04:04:00
>>322
ポインタと配列って似てるけどちがうので注意
ポインタは自分自身の値を変えることが出来るが、
str[]のstrは固定だから*str++はできない。
strがポインタなら問題ない。
正しくは*str+i;i++;
と、つっこんでみる。
が、>>321でアホなことを言ってた自分…すっかり忘れ取ったorz

343 :デフォルトの名無しさん:05/01/28 04:05:50
>>341
ついさっきまで悪戦苦闘したんですが無理だったのできたんですが、やっぱ遅かったですかね…。・゚・(ノД`)・゚・。

ソートに指定はないです。
とりあえずちゃんとソートされればどの方法でもいいって言ってました。
線形リストの中身は何も言ってなかったので自己判断でいいとおもいます。

344 :デフォルトの名無しさん:05/01/28 04:12:14
リストのみでやるってーと、マージソートか。

345 :デフォルトの名無しさん:05/01/28 04:14:47
バブルソート

346 :294:05/01/28 04:15:26
isspace関数なんて便利なものがあるんですね。
今までstdioとstringしか使ったことないので使用はNGだと思います。
strcpyも便利だと思いましたねぇ。
>>319はポインタ*p_sを使ってお願いします

347 :デフォルトの名無しさん:05/01/28 04:33:59
>>343
リストのソートは
http://www.context.co.jp/~cond/books/algo/
にあるね。(ダウンロードできる)

がんば。

348 :339:05/01/28 04:46:25
>>347
検索してもんですがこんなとこにあったんですね。
ありがとうございます。

これのlist15-2ですよね?
なんかエラー「Error: 外部シンボル '_main'が未解決」とでるんですけどこれは一体なんなんでしょうか?

349 :デフォルトの名無しさん:05/01/28 05:08:24
[1] 授業単元:C++入門(単元 動的メモリの応用)


[2] 問題文(含コード&リンク):

次の要素の構造体を作り、動的メモリを用いてデータを3個確保しなさい。

要素A: int型 [ID](商品のID)
要素B:Char型 [name](商品の名称)
要素C: short型 [category](商品カテゴリ→ 食品なら[0]、その他なら[1])

*入力時は「名称」「カテゴリー」を入力するように設計すること。また、商品IDデータの格納は0番から自動的に入力します
*データを入力後、全てのデータをコンソールへ出力し、最後にメモリを解放してください

[3] 環境
 [3.1] OS:Windows xp Home
 [3.2] コンパイラ(バージョン):VisualStudio.Net2003
 [3.3] 言語:C++
[4] 期限:2005年01月30日

[5]
構造体のデータとなる商品は、指定が無いので自由です。
初心者むけのソースであれば助かります。
どうぞよろしくお願いします。


350 :デフォルトの名無しさん:05/01/28 05:10:06
>>346 初心者なんで間違ってたらごめん
#include <stdio.h>

int main(){
char s[] = "abcde";
char s2[10];
char *p_s, *p_s2;
p_s = s;
p_s2 = s2;

while(*p_s){
*p_s2 = *p_s;
p_s++;
p_s2++;
}
*p_s2 = '\0';
printf("%s\n", s2);

return 0;
}

351 :デフォルトの名無しさん:05/01/28 09:09:42
>>349

#include <iostream>

struct Ware
{
 int ID;
 char name[256];
 short category;
};

main()
{
 Ware *wares = new Ware[3];
 using namespace std;
 for(int i=0; i<3; ++i)
 {
  wares[i].ID = i;
  cout << "商品名入力:";
  cin >> wares[i].name;
  cout << "商品カテゴリ入力(食品:0,その他:1)";
  cin >> wares[i].category;
 }
 for(int i=0; i<3; ++i)
  cout << "ID:" << wares[i].ID << " 商品名:" << wares[i].name << " カテゴリ:"
   << (!wares[i].category ? "食品" : "その他") << endl;
 delete[] wares;
}


352 :デフォルトの名無しさん:05/01/28 12:13:09
唐揚げ

353 :デフォルトの名無しさん:05/01/28 12:27:16
[1] 授業単元:電波観測のデータ処理

[2] 問題文(含コード&リンク):
全部で、3000個程の小数を書き込んだ(1行ずつ改行した)、
テキストファイルから、最大値を求めたいです。
ネットで、「n個の最大値を入力して求める」プログラムを見つけましたが、
とても3000個は入力できません。
どうか、そのプログラムを教えて下さい。

テキストファイルについて、
本当は.datファイルで
-100.68 #2003/10/05 21:51:24
-102.81 #2003/10/05 21:51:34
-101.54 #2003/10/05 21:51:44
ずっと3000行程続いていて、左の値の最大値を知りたいです。
お願いします。

[3] 環境
 [3.1] OS: XP Home
 [3.2] コンパイラ(バージョン): LSI C-86 Ver3.30試食版
 [3.3] C言語

[4] 期限:2005年1月29日
[5] その他の制限:ありません

354 :デフォルトの名無しさん:05/01/28 12:37:34
>>353はスーパーマルチ

355 :デフォルトの名無しさん:05/01/28 12:39:00
>ネットで、「n個の最大値を入力して求める」プログラムを見つけましたが、
>とても3000個は入力できません。
リダイレクトって知ってる?

356 :デフォルトの名無しさん:05/01/28 12:42:28
>>354
すみません。
先程、指摘を受けて、
書き込む前に、こちらに書き込むお断りをしたのですが。
掲示板に不慣れで、どう対処すればいいか分かりませんでした。

357 :デフォルトの名無しさん:05/01/28 12:45:00
>>355
「リダイレクト」は分からないです。

358 :デフォルトの名無しさん:05/01/28 12:51:41
>>353

sort -g なんとか.dat | tail -1

第一項以外表示したくないなら

sort -g なんとか.dat | tail -1 | awk '{print $1}'

sort -gr なんとか.dat | awk 'NR == 1 {print $1}'

359 :デフォルトの名無しさん:05/01/28 12:58:36
>357
「MS-DOS リダイレクション」で検索。
fopen fgets sscanfを調べろ。
最大値をdouble型の最小値か、リストの第1要素の値として、forループで読み込んだ値に従って最大値を補正していけ。

360 :デフォルトの名無しさん:05/01/28 13:00:33
>358
XP初心者には無理

361 :デフォルトの名無しさん:05/01/28 13:23:31
>>353 動くか知らんけど。ミスがあったら、だれかフォローしてね。
#include <stdio.h>
int main(void) {
char line[1000];
double val, max = -99999;
while (fgets(stdio, line, sizeof(line)) {
if (sscanf(line, "%lf", &val) == 1 && val > max)
max = val;
}
printf("max = %f\n", max);
return 0;
}
実行方法は、コマンドラインから
C:\>progname <datafile.dat
としてみてくれ。
prognameと、datafile.datは作った実行ファイル名と、用意されたデータファイル名にしてね

362 :デフォルトの名無しさん:05/01/28 13:32:12
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fp;
char str[100];
double f, max;

if ((fp = fopen("data.dat", "r")) == NULL) exit(1);
if(fgets(str, 256, fp) != NULL)
sscanf(str, "%lf", &max);
while (fgets(str, 256, fp) != NULL) {
sscanf(str, "%lf", &f);
if(max < f) max = f;
}
fclose(fp);
if ((fp = fopen("data.dat", "r")) == NULL) exit(1);
while (fgets(str, 256, fp) != NULL) {
sscanf(str, "%lf", &f);
if(max == f) printf("%s", str);
}
fclose(fp);
return 0;
}

363 :デフォルトの名無しさん:05/01/28 14:02:41
>>362
まず、お答え下さった、皆様本当にありがとうございました。

>>362様のプログラムで、無事に求めるもとができました。
求めるdatファイルがたくさんあるので、プログラミングなしでは、
どーしようもありませんでした。
自分では作ることができませんでしたし。
どなたか分かりませんが、大変感謝しております。
ありがとうございました。



364 :デフォルトの名無しさん:05/01/28 14:47:29
かわいい子だ

365 :デフォルトの名無しさん:05/01/28 15:57:48
>>362
char str[256];

366 :C言語超初心者:05/01/28 17:29:24
ある特定のCRC32ハッシュと同じになる文字列を総当りで見つけるには
どんなプログラムを組めばいいのですか?
具体的に書くとCRC32が「fecd71de」になる文字列を探しています。
文字数は5〜8文字で探しています。
C言語の達人様、ソースをご教授ください。お願いいたします。m(_ _)m

367 :デフォルトの名無しさん:05/01/28 17:52:50
>>366
まず "A" のハッシュを調べ、期待する値と比べる
次に "B" のハッシュを調べ、期待する値と比べる
次に "C" のハッシュを調べ、期待する値と比べる
・・・中略
次に "AAAAAAAA" のハッシュを調べ、期待する値と比べる
・・・以下略

368 :デフォルトの名無しさん:05/01/28 18:12:22
まあ"総当りで見つけるには"とかいてあるし
それしかないよな…。


369 :デフォルトの名無しさん:05/01/28 18:37:33
ナニがしたいんだか…ま、やりたきゃ自分でやれや>>366
http://www.google.co.jp

370 :デフォルトの名無しさん:05/01/28 18:40:35
>>366
よし俺が作ってやろう

371 :デフォルトの名無しさん:05/01/28 18:55:35
総当り以外の方法あるの?

372 :デフォルトの名無しさん:05/01/28 19:07:10
あったら、暗号の意味が無い

373 :デフォルトの名無しさん:05/01/28 19:15:58
>>372
暗号じゃないよー

374 :デフォルトの名無しさん:05/01/28 19:17:12
>>372
アホだww
暗号を解読するのに総当たりしかないと思っているアホ発見www

375 :デフォルトの名無しさん:05/01/28 19:26:49
ほう、すごいね、教えてよ

376 :デフォルトの名無しさん:05/01/28 19:28:58
実用的な時間内にキーを発見できる方法あるなら教えてよ

377 :デフォルトの名無しさん:05/01/28 19:29:45
>>374
お前見てて痛いぞ
つまんないレス付ける暇があるなら
きっちり指摘した根拠を示せよ。

378 :デフォルトの名無しさん:05/01/28 19:47:49
例えば、RSA暗号の解読は素因数分解して…という解き方もあるよね。逆手順。

379 :デフォルトの名無しさん:05/01/28 19:50:09
>>377
アホだww
イヤミと煽りで、相手の反応を楽しむという個人的な楽しみ方なんだよwww

380 :デフォルトの名無しさん:05/01/28 19:50:33
で、素因数分解の方法って片っ端からやらないといけないんだがw

381 :デフォルトの名無しさん:05/01/28 19:52:54
>>380
アホだww
まだ総当たりなんて原始的な方法しか知らないなんてwww

382 :デフォルトの名無しさん:05/01/28 19:53:03
>>380
いまのところはね。
将来総当り以外の素因数分解方法が発見される可能性はある。


383 :デフォルトの名無しさん:05/01/28 19:54:12
そもそも、まだNP完全とは証明されていないわけだ。

384 :デフォルトの名無しさん:05/01/28 19:54:18
てかCRCなら計算方法知ってれば逆算が超楽勝な事もすぐ分かると思うんだが

385 :デフォルトの名無しさん:05/01/28 19:56:08
ちっ

386 :C言語超初心者:05/01/28 20:04:01
みなさん、色々アドバイスをありがとう御座います。
しかし、私はなんとも情けない超初心者でして、どうゆうプログラムを
組めば街頭CRC32(fecd71de)になる文字列を見つける事ができるのか分かりません。
答えの一例として、「ah15HFy」及び「hNbNqN」がある。という事だけ知らされています。
他にも答えは沢山あるようです。
何卒、ソースをご教授ください。お願いいたします。m(_ _)m

387 :デフォルトの名無しさん:05/01/28 20:04:12
316746541384631384351381321968131357468543246984135468743549681654846468463168135746873516854521685416574987496465130321654803036124657469877641113
これは素数?


388 :デフォルトの名無しさん:05/01/28 20:08:03
奇数だから素数かも知れないね

389 :デフォルトの名無しさん:05/01/28 20:08:19
>>386
てか他の答えが知りたいだけならC言語なんて知らなくても、
公式から逆算するだけでしょ?

390 :C言語超初心者:05/01/28 20:23:10
>389
レスありがとう御座います。
公式から逆算する方法を具体的にご教授いただけませんか?
よろしくお願いいたします。

391 :デフォルトの名無しさん:05/01/28 20:28:49
>>387
素数判定プログラムで判定すれば?

392 :デフォルトの名無しさん:05/01/28 20:49:25
>>387
素数ではありません。45801,4650847などで割り切れます。

393 :392:05/01/28 20:56:11
>>387
こんな感じ
316746541384631384351381321968131357468543246984135468
743549681654846468463168135746873516854521685416574987
496465130321654803036124657469877641113
=45801*4650847*3291084669907603651
*45182037627040529163511300901849543599685872922569880
353788290459929632519709223910805922998153973810295248
9868294629

394 :デフォルトの名無しさん:05/01/28 22:10:11
>>393
3291084669907603651
とか
45182037627040529163511300901849543599685872922569880
353788290459929632519709223910805922998153973810295248
9868294629
は素数?


395 :392:05/01/28 22:12:02
素数。

396 :392:05/01/28 22:14:04
ちなみに45801=3^2*7*727とさらにできる。これで素因数分解終了。

397 :デフォルトの名無しさん:05/01/28 22:25:39
ありがとう

398 :デフォルトの名無しさん:05/01/28 23:08:45
お願いします<(_ _)>
「ファイル中の文字数,単語数,行数をカウントするプログラムを作成せよ。
単語の切れ目はアルファベット以外の文字、行の終わりは改行文字または
ファイルの終端とします。」

399 :デフォルトの名無しさん:05/01/28 23:14:59
K&R嫁 というか、そのまんま、もう少しひねれよ

400 :デフォルトの名無しさん:05/01/28 23:25:31
system("wc nullpo.txt");

401 :デフォルトの名無しさん:05/01/29 00:13:23
>>398 適当に作ってみますた
#include <stdio.h>
#include <conio.h>
#include <ctype.h>

int main(){
int ch, line_num = 0, char_cnt = 0, word_cnt = 0, flag = 0;
char filename[30] = "test.txt";
FILE *fp;

fp = fopen(filename, "r");
if (!fp){
printf("ファイルオープンエラー\n");
} else {
while( (ch = fgetc(fp)) != EOF ){
if (ch == '\n') line_num++;
if (isalpha(ch)){
char_cnt++;
flag = 1;
} else {
if (flag == 1){
word_cnt++;
}
flag = 0;
}
}
fclose(fp);
}
printf("文字数=%d 単語数=%d 行数=%d\n", char_cnt, word_cnt, line_num);
return 0;
}

402 :デフォルトの名無しさん:05/01/29 00:25:58
UNIX オフ
UNIXや最新技術に興味のある人や
プログラマー・SEになりたい人・業界に興味のある人あつまれ!
http://off3.2ch.net/test/read.cgi/offevent/1105369044/

403 :デフォルトの名無しさん:05/01/29 01:33:11
>>390
>ご教授いただけませんか?
ということは、提示しただけじゃダメなんだよね?
教えるのは面倒だからパス。

404 :デフォルトの名無しさん:05/01/29 01:37:19
問、文字列配列に文字列をファイルから読み込み
それを辞書式順序でソートした結果をファイルに出力するプログラムを作れ
・ファイルの入出力にはfopen,fclose,fscanf,fprintf を用いること
・データはファイルから読み込みソート結果はファイルに出力すること
・プログラムは以下の3つの関数に分割して作成すること
◎データを文字列配列に読み込む関数
◎ソートする関数
◎ソート結果をファイルに出力する関数

書いてみました↓、ですが何故か実行しようとするとエラーが出ます
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/143.txt
勿論test.txtにも何も書かれてません 助けてください

405 :デフォルトの名無しさん:05/01/29 01:48:30
>>404
・fopen()のエラーを折角チェックしているのに処理を継続しては台無し。
・fscanf()の戻り値は、「何個変換できたか」チェックするべき。
・defineマクロは大文字で書くのが慣習。
・mojiはポインタの配列だから、そのままではfscanf()で文字列を変換する目的に使えない。
・慣れないうちは、少々面倒でも必ずブロック化({})しておいたほうがいい。
・sort_dateって、何故日付けが関係する?
・できればファイル書き込みのエラーチェックもしよう。

406 :404:05/01/29 02:07:58
dateって・・・・お恥ずかしい。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/144.txt
修正してみました、ですがコンパイルエラーで「sortcheck2.c 34:問題のあるポインタの変換」
と出てしまい、実行もエラーが出てしまいます。

407 :デフォルトの名無しさん:05/01/29 02:13:13
>>351

349の書き込みの者です。
ご回答下さってありがとうございます!
理想的なソースで、本当に助かりました

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

408 :デフォルトの名無しさん:05/01/29 02:29:31
>>406
あんた馬鹿ぁ?
指摘されたところを表面だけ辻褄合わせるように修正するのではなく、頭使いなさいよ。

409 :デフォルトの名無しさん:05/01/29 02:39:36
Visual C++を使っています。
複素数を含んだ双曲関数(sinh,cosh,tanh)の計算をしたいのですが、どのようにしたらようでしょうか?何かアイディアがあればお願いします。
ヘッダファイルを用い、複素数の和、差、積、商、平方根、絶対値、指数関数については定義済みで、動作確認もされています。

410 :デフォルトの名無しさん:05/01/29 02:46:01
>>409
スレ違い。

411 :デフォルトの名無しさん:05/01/29 02:51:56
>>409
sinh ix = i sin x
あとは加法定理使え。

412 :410:05/01/29 03:03:36
スレ違いということで、申し訳ありませんでした。
ちなみに
sinh (A+ iB) = sin A + i sin B
とは、なりませんよね?
それと加法定理からとは
e^(x) - e^(-x)
sinhθ=--------------------
2
ということでしょうか?
しかし、スレ違いということですので、この質問は無視していだだいて結構です。

413 :409:05/01/29 03:04:14
>>411
そんな事はわかっとるんじゃゴルァ!
俺を馬鹿にすんなよ。プログラム書けっちゅーとるんじゃあ!

414 :410≠412:05/01/29 03:08:50
なんかもう、ぐだぐだだぁ…(TT

415 :デフォルトの名無しさん:05/01/29 03:16:29
C++には標準で<complex>と言うヘッダがあり、自分で定義する必要はありません。

416 :デフォルトの名無しさん:05/01/29 03:17:11
sinh(z) = 1/2 (exp(z) - exp(-z))
cosh(z) = 1/2 (exp(z) + exp(-z))
tanh(z) = sinh(z) / cosh(z) = (exp(z) - exp(-z)) / (exp(z) + exp(-z))
指数関数が定義済みならこれで自分でできるはずだろ。

417 :409:05/01/29 03:18:32
>>415
だからそんな事はとっくの昔に知っとるんじゃあ!
C++でなくてCで書いたらどうなるか聞いとるんじゃあ!

418 :デフォルトの名無しさん:05/01/29 03:19:58
じゃあテンプレ使えよ。

419 :409:05/01/29 03:21:28
complex A,B;
A=complex(1,2);
B=complex(3,-4);
X=sinh(A)*tanh(B);
を計算させたいのですが…
グダグダになっててすみません。

420 :409:05/01/29 03:21:57
>>418
うっせハゲ。答える気がない香具師はぬっこんでろヴォケ。

421 :409:05/01/29 03:22:07
だめだここ。
馬鹿ばっか。。。。

422 :デフォルトの名無しさん:05/01/29 03:23:03
>>419
で、Cなの?C++なの?

423 :409:05/01/29 03:23:55
2chのム板はレベルが高いと聞いて信じていた私がバカでした。。。

424 :デフォルトの名無しさん:05/01/29 03:25:36
>>419
1/2 (exp(A) - exp(-A)) * (exp(B) - exp(-B)) / (exp(B) + exp(-B))
でいいだろ。


425 :409:05/01/29 03:26:22
420と423の409は俺じゃないですよ!
ちなみにC++です

426 :デフォルトの名無しさん:05/01/29 03:28:06
>>425
C++にはcomplexクラスがあるが、それを使わないで自前でするって事ですね?
それともcomplexクラスを使うの?

427 :デフォルトの名無しさん:05/01/29 03:29:43
complexクラスを使うなら
std::complex<double> A(1, 2), B(3, -4), X;
X = std::sinh(A) * std::tanh(B);

428 :デフォルトの名無しさん:05/01/29 03:31:50
>>425
まず、マルチ先に謝ってこいハゲ。

429 :デフォルトの名無しさん:05/01/29 03:34:22
まともな奴がコネ━━(゚Д゚)━( ゚Д)━(  ゚)━(  )━(  )━(゚  )━(Д゚ )━(゚Д゚)━━ !!!!!
わかってるよわかってるけど言いたい年頃なの

430 :デフォルトの名無しさん:05/01/29 03:34:46
>>409
あんたがマルチするからぐだぐだになってるんでしょうが。

431 :デフォルトの名無しさん:05/01/29 03:36:19
もう、質問の意図がはっきりしないので、テンプレ書いて貼ってくれ>>409
それから、その自作の複素数を扱うクラスもできればどこかにうpしてくれ。
そうでないと、どう答えていいものやらわからない。

432 :409:05/01/29 03:38:28
方法に指定はありません。ただ、スマートなプログラムになるにこしたことはないですが…。
class complexのことですか?
勉強不足でして、これについてはわかりません。
ちなみに、424で実行してみます。
大変参考になりました。ありがとうございました。

433 :953:05/01/29 03:54:58
[1] 授業単元: C言語
[2] 問題文: A= 1 +i bとし、bを1から500まで1刻みで増加させ
       sinh(A),cosh(A),tanh(A)およびsinh(A)*cosh(A)
を計算し、出力させるプログラムを作りなさい。
[3] 環境
 [3.1] OS: Win XP
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C++
[4] 期限:2005年1月31日まで
[5] その他の制限:

434 :409:05/01/29 03:55:52
遅くなりましたが…
[1] 授業単元: C言語
[2] 問題文: A= 1 +i bとし、bを1から500まで1刻みで増加させ
       sinh(A),cosh(A),tanh(A)およびsinh(A)*cosh(A)
を計算し、出力させるプログラムを作りなさい。
[3] 環境
 [3.1] OS: Win XP
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C++
[4] 期限:2005年1月31日まで
[5] その他の制限:

435 :デフォルトの名無しさん:05/01/29 04:15:35
>>434
授業単元がC言語なのに、言語はC++なの?コンパイラがC++なんじゃ
なくて?

436 :409:05/01/29 04:20:29
C++をやってます。
正式な授業名はプログラミング演習です

437 :デフォルトの名無しさん:05/01/29 04:26:15
>>434
そんなのExcelで十分、帰りなさい

438 :デフォルトの名無しさん:05/01/29 04:48:33
>>434
これじゃいかんのか?
#include <cmath>
#include <iostream>
struct complex {
    complex(double real, double imag) : r(real), i(imag){}
    double r, i;
};
const complex operator*(const complex& w, const complex& z)
{return complex(w.r * z.r - w.i * z.i, w.r * z.i + w.i * z.r);}
complex sinh(const complex& x)
{return complex(std::sinh(x.r) * std::cos(x.i), std::cosh(x.r) * std::sin(x.i));}
complex cosh(const complex& x)
{return complex(std::cosh(x.r) * std::cos(x.i), std::sinh(x.r) * std::sin(x.i));}
complex tanh(const complex& x)
{return complex(std::sinh(2 * x.r) / std::cosh(2 * x.r) + std::cos(2 * x.i), std::sin(2 * x.i) / std::cosh(2 * x.r) + std::cos(2 * x.i));}
std::ostream& operator<<(std::ostream& o, const complex& c)
{return o << c.r << "+i(" << c.i << ')';}
int main() {
    for (int b = 1; b <= 500; ++b) {
        complex A(1, b);
        std::cout << sinh(A) << ',' << cosh(A) << ',' << tanh(A) << ',' << sinh(A) * cosh(A) << std::endl;
    }
}


439 :デフォルトの名無しさん:05/01/29 04:48:52
>>437
お前は何を言ってry

440 :409:05/01/29 05:11:18
コンパイルしてみたところエラーが出ました。

如何せん勉強不足なため、構造体についての知識は多少はあるのですが
クラス等については分かりません。
せっかく438さんが作っていただいたプログラムの内容の理解が現時点
では難しいので、少し待っていただけますか?
同じような事の繰り返しのようですし、ようは置き方(定義)分かればと
いったところでしょうか?

441 :デフォルトの名無しさん:05/01/29 05:38:33
ファイルa.txtから配列a[]にデータを読み込むプログラムを教えてください。
a.txtの中身は、↓
----------------
2002
Chicago
Adrien Brody
The Pianist
Nicole Kidman
The hours

2001
A Beautiful Mind
Denzel Washington
Training Day
Halle Berry
Monster's Ball

2000
Gladiator
Russell Crowe
Gladiator
Julia Roberts
Erin Brockovich
----------------
です。複数年のデータセットが空行で区切られて並べられているます。
さらに人物の名前 (first name または family name)をキーボードから入力し,リスト中に名前が
存在する場合には,、受賞年、フルネーム,、作品名を表示するプログラムを作ってください。さらに,、その作品が
Best Picture Awardを受賞していれば,、その旨も表示するようにしてください。 また、ループを用いて
"quit" を入力するまで何度でも実行できるようにしてください。お願いします。
C言語です。

442 :441:05/01/29 05:40:14
例えば、
Denzelと入力したら、
→ Denzel Washington, 2001 Actor in a Leading Role in "Training Day" となるようにお願いします。


443 :デフォルトの名無しさん:05/01/29 05:54:48
>>441
映画のデータを扱うとは渋いのう。

444 :デフォルトの名無しさん:05/01/29 06:02:44
>>441
>>1


445 :409:05/01/29 06:06:57
すみません。今日はギブアップです。
皆さん、アドバイスありがとうございました。

446 :デフォルトの名無しさん:05/01/29 06:58:26
テンプレに従うだけなのに、何故出来ないのかと子一時間・・

447 :441:05/01/29 11:03:39
[1] 授業単元: C言語
[2] 問題文: >>440-441
[3] 環境
 [3.1] OS: Win XP
 [3.2] コンパイラ(バージョン): cygwin
 [3.3] 言語:C
[4] 期限:2005年1月31日まで
[5] その他の制限:
すいません、テンプレ書き忘れてました。よろしくお願いします。

448 :441:05/01/29 11:04:53
[2] 問題文: >>441-442でした。

449 :デフォルトの名無しさん:05/01/29 11:17:30
>>447
配列a[]の型は構造体?

450 :441:05/01/29 11:33:57
>>449
えっと、まず
char first_name[サイズ2]
char family_name[サイズ2]
char film[サイズ3] /* 作品名 */
これらの情報を格納する構造体leading_roleを宣言して、次に
int year
char best_picture[サイズ1] /* Best picture award */
struct leading_role actor /* Actor in a Leading Role */
struct leading_role actress /* Actress in a Leading Role */
これらの情報を格納する構造体 academy_awardsを宣言して、
>>441の映画のデータをa.txt に保存してstruct academy_awards型の配列a[]に
データを読み込む感じが理想です。文字列のサイズは問題の起きない程度に設定してください。
後から付け足す感じになってしまって申し訳ございません。


451 :デフォルトの名無しさん:05/01/29 11:46:16
なんだ。。リストでやっちゃったよ。。。orz

452 :441:05/01/29 11:48:16
>>451
あ、すいませんm(_ _)m

453 :デフォルトの名無しさん:05/01/29 13:35:40
>>441-442
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/145.c

XP持ってないんでXPでは試してないけど。


454 :453:05/01/29 13:45:40
あぁ、正常終了時のメモリ開放忘れてた。。。orz
main最後に

clearNodeaList();

を追加して。

455 :441:05/01/29 14:15:13
>>454
お疲れ様です。どうもありがとうございます。
ところで、コンパイルしたところエラーは無く正常に動作はしたのですが、
# File Read Errorのメッセージしか出ないです。すいませんが、どうしてでしょうか?

456 :デフォルトの名無しさん:05/01/29 14:29:02
#defineDATA_FILE_NAME"c:\\a.txt"

457 :デフォルトの名無しさん:05/01/29 14:29:30
#defineDATA_FILE_NAME"c:\\a.txt"

mainの引数にするか入力させろよw

458 :453:05/01/29 14:43:41
部屋が寒くて、main書くころには手がかじかんで引数チェックとか
書くのめんどくさかったんでdefineにしちゃった。

459 :デフォルトの名無しさん:05/01/29 14:55:29
>>458
バカ!そこは「バグじゃないです、仕様です」だろ?

460 :453:05/01/29 15:13:21
バグじゃないです、仕様です

461 :デフォルトの名無しさん:05/01/29 15:21:10
>>459
バカ!バカ!まんこ!

462 :441:05/01/29 17:27:53
>>460
すいません、C勉強し始めた初心者の俺にはどこが悪いのかわけわかめです。
改良してもう1度うpしてください。お願いします。

463 :デフォルトの名無しさん:05/01/29 18:17:08
>>462
もう一度勉強して出直して下さい。改良はもうたくさんです。

464 :デフォルトの名無しさん:05/01/29 18:19:24
>462

一応つられてみる
c:ドライブの直下に a.txt を置け

465 :デフォルトの名無しさん:05/01/29 19:16:41
[1] 授業単元: プログラム実習入門
[2] 問題文(含コード&リンク):
  貯金を500万円している。年利0.9%とすると10年でいくらになるか。
  6ヶ月ごとの額を表示する。
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ(バージョン):gcc Developer station 2000
 [3.3] 言語:C
[4] 期限:1月末日まで
[5] その他の制限:
年利は12で割って0.075で計算してよいとのことです。
複利で1月から初めて一月目から利子をかけるという風にやろうとしています。

前スレ959で一度質問させていただいているのですが、

1年目 6月 
    12月
2年目 6月
    12月
このように表示したいと思っています。
が、未だにどうやればよいものか考えています。
そこで再度質問させていただきます。
どうかご教授願います。


466 :デフォルトの名無しさん:05/01/29 20:07:28
[1] 授業単元:C++入門

[2] 問題文(含コード&リンク):

問題1:冷蔵庫(購入価格はソースに明記)を1月1日から使用し、10年後までの購入価格と電気代の総計日別推移を求めるソースを作りなさい。

問題2:また、先ほどの電気代とは別に、一回扉を開けるごとに発生する使用料(1円)がある。
  一日に10回開閉すると考え、購入価格と電気代の総計において、最も安くなるのは何日後かを求めるソースを作りなさい。

問題2の作成をお願いします。


*問題1のソースはできあがっていますので、良かったら使ってやって下さい。(アップローダを使用しています)
コチラとなります→http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=146


最も安くなる=「購入金額から元を取れた」ということだと思います。
ややこしい問題文ですが、何卒よろしくお願いします。

[3] 環境
 [3.1] OS:Windows xp Home
 [3.2] コンパイラ(バージョン):VisualStudio.Net2003
 [3.3] 言語:C++
[4] 期限:2005年01月31日
[5]
かじった程度なので、問題1のソースは汚いです。
直した方がいい箇所がございましたら、教えて頂けると助かります。

回答頂けます場合は、初心者むけのソースであれば助かります。

どうぞよろしくお願いします。


467 :デフォルトの名無しさん:05/01/29 20:29:22
>>466
問題の意味がまったくわからん。
ソース読んでも分からん。謎。

468 :デフォルトの名無しさん:05/01/29 20:53:16
>>466
冷蔵庫A(高価だけど省電力)と冷蔵庫C(安価だけど電気喰う)を比べて
何日以上使えば、Aの方がお得とかそういうことなのか?

あと関連のあるデータは構造体にまとめる。
struct refrigerator{
 int price;
 int electricityBill;
};
とか。

469 :デフォルトの名無しさん:05/01/29 20:54:16
>>466
なぜ安いって表現なのかわからんが
一日ごとに10+常にかかる電気代
A:13*日数 + 148000
B:20*日数 + 99800
C34*日数 + 44200

これ書いてるうちに
Aの冷蔵庫がCの冷蔵庫よりお徳になったときって問題じゃね?
って思えてきたんだけど

470 :453:05/01/29 21:32:06
>>462>>441
解決した?

てか、ソースは理解できた?(こっちのが重要だけど)


471 :デフォルトの名無しさん:05/01/29 22:00:03
>>467 様
>>468 様
>>469 様

わかりづらくて本当にすいません。
本文から随分と噛み砕いて載せてはみたのですが・・
自分の文章力のせいでご迷惑をおかけしてしまい、本当にすいません。

>>468様、>>469様のおっしゃるとおり、
「AとBとCのうち、使っていって
 何日目にA(高価だけど省電力)がBやCと比べて一番お得になるか」
を求めるプログラムです。(講師に電話で確認を取りました。)


あと、構造体を使うとのご指摘ありがとうございました。
今から使って作ってみます。

472 :デフォルトの名無しさん:05/01/29 22:14:25
>465
#include <stdio.h>
int main(void)
{
    double deposit = 5000000;
    unsigned year, month;
    for (year = 1; year <= 10; ++year) {
        for (month = 1; month <= 12; ++month) {
            deposit = deposit * 1.00075;
            if (!(month % 6)) {
                printf(month == 6 ? "%2u年目" : "      ", year);
                printf(" %2u月 %.0f\n", month, deposit);
            }
        }
    }
    return 0;
}

473 :デフォルトの名無しさん:05/01/29 22:18:20
>>471
int main(){
DWORD price_A = 148000,price_B = 99800,price_C = 44200;
DWORD day_A = 13,day_B = 20,day_C = 34;
//まずはAとBの比較
DWORD price_diff = price_A - price_B;
DWORD day_diff = day_B - day_A;
DWORD day = price_diff / day_diff + 1;
printf("%d日でA = %d円 B = %d円\n",day,price_A+day_A*day,price_B+day_B*day);
//次にAとCの比較
price_diff = price_A - price_C;
day_diff = day_C - day_A;
day = price_diff / day_diff + 1;
printf("%d日でA = %d円 C = %d円\n",day,price_A+day_A*day,price_C+day_C*day);
}

474 :473:05/01/29 22:19:41
ゴメン
iostreamはよく理解してないんでCで作っちゃった適当に直しといて

475 :デフォルトの名無しさん:05/01/29 22:35:22
>>465
それっておかしくね?
((元金*1.00075)*1.00075)…=元金*1.0009にはならないっしょ
1.0090372179693092036204172481965 = 9%程度になるわけだが

476 :475:05/01/29 22:36:43
あ〜なんか頭テンパってたらしいorz

477 :デフォルトの名無しさん:05/01/29 22:39:46
金融電卓使え

478 :デフォルトの名無しさん:05/01/29 23:24:10
正確には0.000746924だからざっと0.075%でいいわな。

479 :デフォルトの名無しさん:05/01/30 00:43:45
で、何故>>473がDWORD使ってるかについては誰もつっこまないのか?

480 :デフォルトの名無しさん:05/01/30 00:45:06
釣りだから

481 :デフォルトの名無しさん:05/01/30 01:40:30
>>479
元のソースで使ってるのかと考えて
元のを見るのがよだきくなって突っ込むのを止めた。

482 :デフォルトの名無しさん:05/01/30 01:43:38
よだきくなって

何語?

483 :デフォルトの名無しさん:05/01/30 01:44:58
すまん、方言

484 :デフォルトの名無しさん:05/01/30 02:02:20
>>481は大分か宮崎の人。

485 :デフォルトの名無しさん:05/01/30 02:44:05
「よだきい」キター!
ちなみに標準語だと「だるい」とか「つかれた」とかいう意味ね。

486 :デフォルトの名無しさん:05/01/30 03:15:02
[1] 授業単元: プログラミングC
[2] 問題文(含コード&リンク):整数係数の多項式 f(x) が与えられたとき、そのk次の係数を配列要素f[k]に格納することにより
f(x)を表現するものとし、例えば、f(x)=7 x^5 - 6x^4 + x^3 + 2x + 1の表現はf[]={1, 2, 0, 1, -6, 7}となります。
係数を格納した配列f[]が与えられたときに、これが表す多項式を表示する関数 voidpolynomial_print(int f[])を作成お願いします。
マクロ変数Mを定義し、M-1次の多項式まで扱えるようにしてください。Mの値は6でお願いします。
係数はキーボードから与え、係数は最下位から順に入力するものとします。例えば、
2 3 4 5 6 7 → 7 x^5 + 6 x^4 + 5 x^3 + 4 x^2 + 3 x + 2
-2 -3 -4 -5 -6 -7 → -7 x^5 - 6 x^4 - 5 x^3 - 4 x^2 - 3 x - 2
-1 0 0 0 0 0 → -1
0 0 0 0 0 0 → 0
こんな風になるようにお願いします。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ(バージョン): bcc 32
 [3.3] 言語:C
[4] 期限:2005年1月31日
[5] その他の制限:

487 :デフォルトの名無しさん:05/01/30 07:11:02
どなたかC言語でプログラム考えていただけないでしょうか。
以下の二つを守っていただければ幸いです。よろしくお願いします。

1.縦横100*100のウィンドウ内に描くこと。
2.適当な大きさの円(例えば半径30くらい)に内接する三角形
 を描画する。


488 :デフォルトの名無しさん:05/01/30 07:31:46
>>487
環境を書けと。

489 :デフォルトの名無しさん:05/01/30 08:09:35
>>486
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/147.c
意外と長くなってしまった。


490 :デフォルトの名無しさん :05/01/30 08:26:23
VC+6.0が欲しいのですが最近何処にも売っていません・・・
MATXというVC+6.0と連動して(.net非対応)動くソフトを使うために必要なのです。
秋葉歩いても何処にも見つからず、途方に暮れています。
売っている場所知っている方いらっしゃいませんか?

あと.NETのspoke premium と.NET アカデミックのに入ってるライブラリは
同じものでしょうか?(削られていないだろうか・・)

491 :デフォルトの名無しさん:05/01/30 08:28:09
>>490
オークションを探してみたら?

492 :デフォルトの名無しさん:05/01/30 08:30:02
>>490
激安で買えるVisual Stdio.NET theSpoke Disc.9
http://pc5.2ch.net/test/read.cgi/tech/1103381010/

493 :486:05/01/30 08:47:26
>>489
ありがとうございます!

494 :487:05/01/30 11:10:59
どなたかC言語でプログラム考えていただけないでしょうか。
以下の二つを守っていただければ幸いです。よろしくお願いします。

1.縦横100*100のウィンドウ内に描くこと。
2.適当な大きさの円(例えば半径30くらい)に内接する三角形
 を描画する。

申し訳ありません、環境…。
OS:WindowsXP、Microsoft Visual C++ 6.0、C言語でお願いします。


495 :デフォルトの名無しさん:05/01/30 11:15:54
>487
ウインドウ自体なら、ウイザードを使って出すことができるよ。
後は、WM_PAINTの辺りを書き換えるだけだ。

496 :デフォルトの名無しさん:05/01/30 11:23:12
>>494
Cで、ということはWin32APIを使用して、ということでいいのかな?
私はMFC使いだからパスだけど。

1.100*100とは単位は画素? それともその他の寸法単位?
2.は内接する三角形は形を問わないのかな? 問わないなら直角二等辺三角形が楽だろう。

497 :デフォルトの名無しさん:05/01/30 11:24:04
>>495
文盲ですか? それとも自分に都合の悪い情報は切り捨ててしまえる能天気な方ですか?

498 :デフォルトの名無しさん:05/01/30 11:25:46
>>496
(50, 50)を中心とする半径30の円なら、例えば(50, 20)-(20, 50)-(80, 50)だね。

499 :487:05/01/30 11:46:55
>>496
はい、お願いします。

>1.100*100とは単位は画素? それともその他の寸法単位?
ピクセル…って言うんですかね。intで定義してokみたいです。
あまり参考にならないかもしれませんが・・・。

2.は内接する三角形は形を問わないのかな? 問わないなら直角二等辺三角形が楽だろう。
はい、楽なやつで構いません。どうぞよろしくお願いします。


500 :デフォルトの名無しさん:05/01/30 12:00:21
>>499
もう一度>1を読み直して、与えられた課題を寸分違わず書き下してみてくれ。

501 :デフォルトの名無しさん:05/01/30 12:00:33
正三角形かと思い込んでたw

502 :487:05/01/30 15:32:13
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク): 以下の二つの条件を満たし、プログラムを
完成させよ。1.縦横100×100のウィンドウ内に描くこと。
2.適当な大きさの円(例えば半径30くらい)に内接する三角形
を描画する。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン): Microsoft Visual C++ 6.0
 [3.3] 言語:C
[4] 期限:2005年01月31日まで

よろしくお願いします。


503 :デフォルトの名無しさん:05/01/30 16:00:52
>>502
あんた馬鹿?
それとも釣り?
授業でWindowの描画について、なにか教わってないの?

504 :487:05/01/30 16:15:57
>>503
釣りではありませんが。

505 :デフォルトの名無しさん:05/01/30 17:10:34
>>487
ほらよ。
WinMainの中に全部書いた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/148.txt


506 :デフォルトの名無しさん:05/01/30 17:15:43
>>505
ウィンドウサイズは100x100だよ。

507 :デフォルトの名無しさん:05/01/30 17:17:21
ちょっと遅かったかな?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/149.cpp


508 :507:05/01/30 17:21:10
スマソ,146行目が間違ってた
× py[i] = (int)(cr * cos(k) + cy);
○ py[i] = (int)(cr * sin(k) + cy);


509 :デフォルトの名無しさん:05/01/30 17:23:23
すげぇ、Cだって書かれているのに拡張子を.cppにしちゃってるよ、この人。
それにしても醜いソースだな。隙間空ければ見やすいと思ってるんだろか。

510 :505:05/01/30 17:25:04
>>506
ミスです。(´・ω・`)
まああとは487に任せます…。
もしくは507さんが解答されているようなのでそちらで。


511 :デフォルトの名無しさん:05/01/30 17:25:21
つーか、この程度でグローバル変数を使う神経が信じられない。
おまけに、LineTo()到達点にMoveTo()してるし。

512 :デフォルトの名無しさん:05/01/30 17:28:22
>>511
逆。
規模が小さければ大域変数でも、さほど見通しが悪くはならない。

513 :デフォルトの名無しさん:05/01/30 17:30:48
でも大域変数は避けるべきだな
確かに幼稚なソースだが>>509=>>511のほうが幼稚

514 :487:05/01/30 17:35:51
考えていただいた皆様、ありがとうございました。

515 :デフォルトの名無しさん:05/01/30 17:53:11
>>509
だな。
>>507 と良く似た書き方する香具師は何人も見たことある。


516 :デフォルトの名無しさん:05/01/30 17:54:52
見にくい(醜い)を超えて嫌がらせに近いコードでも
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/148.txt

517 :デフォルトの名無しさん:05/01/30 18:02:48
>>509
自分、VCを使う事があるが、ファイルの新規作成で
「C++ソースファイル」はあっても、「Cソースファイル」は無いから、
拡張子を入力しないとC++になるけど、気にせずコーディングしていた。
それと似たような感じではないのかな。

>>511
C+Win32API+SDKの勉強サイトの、猫とか創作とかでも普通に使われている。
グローバル変数を使わないとしても、結局ローカル変数でもstaticに
しないといけないという、この製作法の組みにくさ自体にも問題があると思う。
MFCを使わせるための、MSの陰謀なのかもしれない。

518 :デフォルトの名無しさん:05/01/30 18:07:59
Cで昇順ソートプログラムを作れ
ソートするデータは{9,4,10,8,20,4,-3,8}
宣言した変数・配列が一番少なく&&一番容量の少なかった奴にマビノギ垢やる
8時までだ、スタート

519 :デフォルトの名無しさん:05/01/30 18:09:50
容量の基準はなんだよ

520 :デフォルトの名無しさん:05/01/30 18:09:51
↓さっさと答えろヴォケカスウンコ野郎

521 :デフォルトの名無しさん:05/01/30 18:13:36
char i[] = {-3,4,4,8,8,9,10,20};


522 :デフォルトの名無しさん:05/01/30 18:13:39
│    _、_
│  ヽ( ,_ノ`)ノ 残念 私のおいなりさんだ
│ へノ   /
└→ ω ノ
      >

523 :デフォルトの名無しさん:05/01/30 18:15:51
>>519
んじゃ文字数でいいよ
forだったら3文字みたいに

524 :デフォルトの名無しさん:05/01/30 18:16:32
fpでファイル入力を行って
while(c=fgetc(fp)!=EOF)
???;

ファイルの中身を表示するには
???には何を記述したらよいのでしょうか?

525 :デフォルトの名無しさん:05/01/30 18:18:01
printf("%c", c);

526 :デフォルトの名無しさん:05/01/30 18:18:27
putchar(c);


ただし、c=fgetc(fp)を括弧でくくってからな

527 :デフォルトの名無しさん:05/01/30 18:19:01
putc(c)

528 :524:05/01/30 18:20:37
ありがとうございます
無事できました。

529 :デフォルトの名無しさん:05/01/30 18:21:12
>>516
はは、俺と似てるや。
俺もスペース少なすぎる人だ。(インデントはしっかり取るけど)

530 :デフォルトの名無しさん:05/01/30 18:26:57
>>517
だからといって、座標値までグローバルにする必要はないとは思わないかね。

531 :デフォルトの名無しさん:05/01/30 18:27:58
#include<stdio.h>
bekijyou(int a,int b);
main()
{
int m,n;
long kotae;
printf("数値1?");
scanf("%d",&m);
printf("数値2?");
scanf("%d",&n);
kotae=bekijyou(m,n);
printf("%dの%d乗 %ld\n",m,n,kotae);
}
bekijyou(int a,int b)
{
long data;
data=(long)a^b;
return data;
}
数値1と2のべき乗を出す関数を作りたいのですがうまくできませんでした。
直すべき所を教えてくださいm(_ _)m


532 :デフォルトの名無しさん:05/01/30 18:30:19
関数は一つの値しか返せないのれす

533 :デフォルトの名無しさん:05/01/30 18:30:43
[1] 授業単元:コンピューター工学I
[2] 問題文(含コード&リンク):

次のソースコードをANSI規格のcのコードに直せ。
また、なぜそのようにしたか理由を書け。

unsigned char *a;
a = new unsigned char[100];

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン):gcc/g++
 [3.3] 言語:c/c++
[4] 期限:明日の朝9時30分
[5] その他の制限:なし

a = (unsigned char*)malloc(sizeof(100));
だと思って試しに
int i;
for(i = 0;i<100;i++){
unsigned char *p = a;
*p = i
p++;
}
と要素を代入しようと思ったら途中でcoredumpしました。
多分根本的にnewとmallocの違いを理解していないだけかもしれませんが、
どうかよろしくお願いします。


534 :532:05/01/30 18:31:17
勘違いした
532は無かったことに(恥

535 :デフォルトの名無しさん:05/01/30 18:31:46
>>533
a = malloc(100);

536 :デフォルトの名無しさん:05/01/30 18:32:09
>>531
data=a;
for(i=1;i<b;i++){
data*=a;
}

537 :デフォルトの名無しさん:05/01/30 18:32:50
>>531
Cだと ^ はXORを意味する。
http://www.kouno.jp/home/c_faq/c14.html#7

538 :デフォルトの名無しさん:05/01/30 18:33:14
a = (unsigned char *)malloc(sizeof(char [100]));
でもだめか?
それから
unsigned char *p = a;
はループの外に出せ。

539 :デフォルトの名無しさん:05/01/30 18:33:49
>>536訂正

data=1;
for(i=0;i<b;i++){
data*=a;
}

540 :533:05/01/30 18:37:58
>>535
>>538
ありがとうございます。うまくいきました。ポインタもループ外に出しました。
sizeofを理解してませんでした。






541 :531:05/01/30 18:45:40
^は使えないんですね
>>539さんの方法でできました
ありがとうございます。

542 :デフォルトの名無しさん:05/01/30 18:52:11
>>518
#include<stdio.h>
int d[] = {9,4,10,8,20,4,-3,8};int f(int*b,int i){int*p=b+1;if(i<2)return 0;
if(*b>*p){*p^=*b;*b^=*p;*p^=*b;return 1;}return f(p,i-1);}int main()
{while(f(d,8));for(int i=0; i<8; i++)printf("%d\n", d[i]);return 0;}

// 229文字

543 :デフォルトの名無しさん:05/01/30 19:18:17
>>542
コンパイルエラー残念(MicrosoftVisualC++)


544 :デフォルトの名無しさん:05/01/30 19:21:57
#include<stdio.h>
#include<stdlib.h>
int a(int *b,int *c){return *c-*b;}int main(){int b[]={9,4,10,8,20,4,-3,8},i;qsort(b,8,4,a);for(i=0;i<8;i++)printf("%d ",b[i]);return 0;}

// 172文字

545 :デフォルトの名無しさん:05/01/30 19:52:35
>>544
警告5個
提出できないから却下
 
もう自分で作るからいいや・・・
>>542,543
おつかれthx

546 :294:05/01/30 19:53:39
また課題がかなり出てしまいました;;
upするので解いてくださる方いませんか?


547 :デフォルトの名無しさん:05/01/30 19:56:44
とりあえず問題を上げたら誰かが答えるかもしれない
上げなければ絶対に誰も答えてくれない

548 :294:05/01/30 20:00:46
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/153.txt
とりあえずファイルに対する問題だけをupしてみました。
よろしくお願いします。

549 :デフォルトの名無しさん:05/01/30 20:13:36
初めて来てみたけど、ここのスレって「出来るところまでやれ、上手くいかない所は直してやる」っていう流れじゃ無いんだね
○投げが基本か。

550 :デフォルトの名無しさん:05/01/30 20:15:58
隔離が目的だからな

551 :デフォルトの名無しさん:05/01/30 20:22:12
>>548
とりあえず1だけ
void copyfile(FILE* in,FILE* out){
long filesize;
fseek(in,0,SEEK_END);
filesize = ftell(in);
void* buf = malloc(filesize);
fseek(in,0,SEEK_SET);
fread(buf,filesize,1,in);
fwrite(buf,filesize,1,out);
free(buf);
}
void main(){
char inn[260],outn[260];
FILE *in,*out;
gets(inn);
gets(outn);
in = fopen(inn,"rb");
out = fopen(outn."wb");
// if(in == NULL || out == NULL){
// //エラー処理するならここで
// }
copyfile(in,out);
}
書いたあとに気が付いたけど授業とか用のソースじゃないね

552 :551:05/01/30 20:23:26
あ、mainのcopyfile(in,out)のあとにfclose(in);fclose(out);追加しといて

553 :551:05/01/30 20:26:24
あ、画面表示するのか…
fwrite(buf,filesize,1,stdout);
と逃げてみる

554 :294:05/01/30 20:39:47
>>551
すみません、分からない関数だらけで理解しようとしても
できませんでした;;
includeとstdlibだけでできませんでしょうか?

555 :デフォルトの名無しさん:05/01/30 20:40:33
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fpsrc, *fpdest;
char str[256],src[256],dest[256];
printf("コピー元:");
scanf("%s", src);
printf("コピー先:");
scanf(" %s", dest);
if ((fpsrc = fopen(src, "r")) == NULL) { puts("error"); exit(1);}
if ((fpdest = fopen(dest, "w")) == NULL) { puts("error"); exit(1);}
while (fgets(str, 256, fpsrc) != NULL) {
fputs(str, fpdest);
}
fclose(fpsrc);
fclose(fpdest);
if ((fpsrc = fopen(src, "r")) == NULL) { puts("error"); exit(1);}
while (fgets(str, 256, fpsrc) != NULL) {
printf("%s",str);
}
fclose(fpsrc);
return 0;
}

556 :デフォルトの名無しさん:05/01/30 20:44:40
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fpsrc;
char str[256],src[256];
int n;
printf("ファイル名:");
scanf("%s", src);
if ((fpsrc = fopen(src, "r")) == NULL) { puts("error"); exit(1);}
n = 0;
while (fgets(str, 256, fpsrc) != NULL) {
n++;
printf("%d: %s", n, str);
}
fclose(fpsrc);
printf("行数: %d",n);
return 0;
}

557 :294:05/01/30 20:47:41
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/154.txt
構造体に対する問題です。
お願いいたします。

558 :551:05/01/30 20:49:18
まぁ、確かにコレは出題者の想定した解答の斜め45度を超高高度で飛行してるね
最適解だとは思うが…
マシな解答は>>555のお方に任せるとして
最後に
out = fopen(outn."wb");
->out = fopen(outn,"wb");
だったorz
適当に組むとバグいぱーいだな俺orz

559 :デフォルトの名無しさん:05/01/30 20:58:21
>>555さん
2問ともどうもありがとうございました。


560 :294:05/01/30 21:05:11
>>557
はincludeとstringだけ使用可でした。
申し訳ありません。

561 :デフォルトの名無しさん:05/01/30 21:11:15
>>557の1,2番くらいわかんない?
それをやってきたら3、4くらいはやってやるけど

562 :デフォルトの名無しさん:05/01/30 21:13:00
1,2ができたら3,4もできるか
1,2か1,3のどっちかの出来たらでもいいや

563 :294:05/01/30 21:14:00
1をやってみます


564 :294:05/01/30 21:18:35
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/155.txt
今までやってわからなかった問題を途中ですがupしました。


565 :デフォルトの名無しさん:05/01/30 21:19:49
>>564
つまんね。

566 :294:05/01/30 21:19:57
pr4はswitchでお願いいたします。

567 :デフォルトの名無しさん:05/01/30 21:27:15
>>566
とりあえずつっこむがincludeだけ使用可ってなによ…
まぁ、前のを見た感じ
基本入出力(stdio)以外のヘッダは使うなってことだろうけど

568 :デフォルトの名無しさん:05/01/30 21:34:48
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
   1、二部探索木を作成して間順走査(降順)で表示させる。(降順に並べ表示させるだけでいい。)
   2、データの追加と削除が出来ること。
[3] 環境
 [3.1] OS:Win XP
 [3.2] 開発環境:Visual C++ .NET
 [3.3] 言語:C
[4] 期限:1月中
[5] その他の制限:特になし。

よろしくお願いします。

569 :デフォルトの名無しさん:05/01/30 21:40:56
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/157.txt
こんな問題です。
ランダムアクセスのプログラムは、超簡単なものでいいと思います。
お願いします!

570 :デフォルトの名無しさん:05/01/30 21:42:13
>>569
・質問は必ず【質問テンプレ】に従ってください

【アップローダー】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)

571 :294:05/01/30 21:47:03
>>557
#include<stdio.h>
struct syouhin_data{
char name[20];
int tanka;
int kosuu;
long kingaku;
};
main()
{
long data;
struct syouhin_data syouhin1={"シャープペンシル",500,3,0};
data=(syouhin1.tanka)*(syouhin1.kosuu);
syouhin1.kingaku=data;
printf("商品名:%s\n",syouhin1.name);
printf("単価:%d\n",syouhin1.tanka);
printf("個数:%d\n",syouhin1.kosuu);
printf("金額:%f\n",syouhin1.kingaku);
}

1をやってみましたが、途中で処理がとまってしまいました。
kingakuを出すところで止まってると思うんですが、
ご教授お願いします。
あと、個数:0なっていますが、3の間違いです。

572 :デフォルトの名無しさん:05/01/30 21:53:14
syouhin1.kingaku は整数型だから %f ではないと思われ

573 :デフォルトの名無しさん:05/01/30 21:53:50
>>571
#include <stdio.h>

int main(){

struct syouhin_data{
char name[20];
int tanka;
int kosuu;
long kingaku;
};
struct syouhin_data shohin1 = {"シャープペンシル", 500, 3, 0};

shohin1.kingaku = shohin1.tanka * shohin1.kosuu;

printf("商品名:%s\n", shohin1.name);
printf("単価:%d\n", shohin1.tanka);
printf("個数:%d\n", shohin1.kosuu);
printf("金額:%d\n", shohin1.kingaku);
return 0;
}

574 :294:05/01/30 21:54:34
>>572
%dにしたら通りました。
ありがとうございます。

575 :デフォルトの名無しさん:05/01/30 22:00:44
>>571
pr2
#include <stdio.h>
int main(){
(省略)
struct syouhin_data shohin1 = {"シャープペンシル", 500, 3, 0} ,*shouhin1_p;

shouhin1_p=&syouhin1;
shohin1_p->kingaku = shohin_p->tanka * shohin1_p->kosuu;

printf("商品名:%s\n", shohin1_p->name);
printf("単価:%d\n", shohin1_p->tanka);
printf("個数:%d\n", shohin1_p->kosuu);
printf("金額:%d\n", shohin1_p->kingaku);
return 0;
}

576 :デフォルトの名無しさん:05/01/30 22:02:14
俺は何を書いているんだ

syouhinとかshouhinを全部shohinに直しておいてくれorz

577 :デフォルトの名無しさん:05/01/30 22:07:31
>>568
>期限:一月中
って明日までかよ
書き方から察するに結構前に出された課題みたいだけど、途中まででもやってある?
制限は特になしとあるが、書きかけのソースをみると制限らしきものが見えたりすることもあるからな

578 :294:05/01/30 22:13:04
>>575
ありがとうございます、できました。

579 :568:05/01/30 22:18:22
>>577
ある程度作りましたが間順操作で表示させる関数が出来ません。
削除・追加は手付かずです。
ソースはアップローダにうpしておきます。

580 :569:05/01/30 22:19:13
期限あと3日です。まじやばいです。
お、お願いします

581 :デフォルトの名無しさん:05/01/30 22:22:15
>>580
3日なら十分時間があるじゃないか。
なに?努力する気もないわけ?
そんなやつに手を貸してやるなんてばかばかしいな。

582 :デフォルトの名無しさん:05/01/30 22:34:05
いや、それが、他学科の授業でして
Cほとんど知らなく、必死で入門書読んでるのですが
さっぱりで・・・ポインタやらなんやらでてきて
わけわからんとです

583 :デフォルトの名無しさん:05/01/30 22:44:49
うはwそれはきちーな

584 :デフォルトの名無しさん:05/01/30 22:45:56
きついのはわかったからとりあえず>>1に従え

585 :568:05/01/30 22:51:27
うpローダにソースをうpしましたがここにも一応ソースを書いておきます。

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

typedef struct nodedata
{
int data;
struct nodeta *left;
struct nodeta *right;
}node;

node * newdata(int data)
{
node * now;
now=(node *)malloc(sizeof(node));
now->data=data;
now->left=NULL;
now->right=NULL;
return now;
}


586 :568:05/01/30 22:52:05
続き
void treeAdd(node * now,int data)
{
if(now->data >data)
{ if(now->left!=NULL)
{treeAdd(now->right,data);}
else
{now->right=newdata(data);}
}
else
{ if(now->right!=NULL)
{treeAdd(now->right,data);}
else
{now->right=newdata(data);}
}
return;
}


587 :デフォルトの名無しさん:05/01/30 22:52:21
>>579
・関数名のなかに-使うのってどうよ
・Product ってなに?
・nodeta? nodedataっしょ
・three?treeではないか?

んでコンパイルとおったよ

588 :デフォルトの名無しさん:05/01/30 22:52:51
続き(これで最後です。)

/*木構造を表示させる関数(間順走査) ここが上手くいかない*/
void three-kanjyun(Product *now)
{
if(now==NULL) return;
three-kanjyun(now->left);
printf("%d\n",treeAdd);
three-kanjyun(now->right);
}

void main(void)
{
node * head;
int i,data[7]={100,50,80,30,200,150,250};
head=newdata(-1);
for(i=0;i<7;i++)
treeAdd(head,data[i]);
}

589 :デフォルトの名無しさん:05/01/30 22:56:36
fseekは改行コードのためにテキストモード以外では予期せぬ動作を
することがあるのだけれども、その点はどうしたらよいのかな?

590 :デフォルトの名無しさん:05/01/30 22:57:27
なんのためにupロダ使わせてもらっているか考えろ馬鹿

591 :デフォルトの名無しさん:05/01/30 22:58:10
>>589
むしろ予期せぬ動作してくれるのはテキストモードじゃね?

592 :569:05/01/30 22:59:38
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/157.txt
です。
[3] 環境
 [3.1] OS:Win XP
 [3.2] 開発環境:Visual C++ 6.0
 [3.3] 言語:C
[4] 期限:あと3日
[5] その他の制限:特にないです。

どうぞよろしくお願いします!

593 :294:05/01/30 23:01:00
>>557
3できました。
ソースは
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/160.txt
本当は5つぐらいメンバを代入しないといけないので
とてもながくなってしまいました。
printfもセンスないですが;;

594 :デフォルトの名無しさん:05/01/30 23:04:14
>>591
バイナリモードならfsetpos

595 :デフォルトの名無しさん:05/01/30 23:05:17
>>593
構造体配列を用いていないので、3番の条件を満たしていない

596 :294:05/01/30 23:08:55
ああ本当ですね・・・

597 :294:05/01/30 23:24:05
#include<stdio.h>
struct syouhin_data{
char name[20];
int tanka;
int kosuu;
long kingaku;
};
main(){
int goukei,i;
struct syouhin_data syouhin[5]={
{"シャープペンシル",500,3,0},
{"エンピツ",30,10,0},
{"消しゴム",50,20,0},
{"サインペン",150,7,0},
{"定規",150,6,0},
};
goukei=0;
for(i=0;i<5;i++){
syouhin[i].kingaku=syouhin[i].tanka*syouhin[i].kosuu;
goukei+=syouhin[i].kingaku;
}
for(i=0;i<5;i++){
printf("商品名:%s\n",syouhin[i].name);
printf("単価:%d\n",syouhin[i].tanka);
printf("個数:%d\n",syouhin[i].kosuu);
printf("金額:%d\n",syouhin[i].kingaku);
}
printf("\n合計金額=%d\n",goukei);
}
pr3,これでいいでしょうか?

598 :568:05/01/30 23:26:40
一応手直ししてみましたがエラーが4つ程でます。
ソースはうpローダにうpしておきました。

599 :デフォルトの名無しさん:05/01/30 23:31:11
>>598
void tree_kanjyun(nodedata *now)
この行ではエラーが出て
void treeAdd(node * now,int data)
この行ではエラーが出てません
さて問題はなんでしょう

600 :294:05/01/30 23:50:00
>>557
#include<stdio.h>
struct syouhin_data{
char name[20];
int tanka;
int kosuu;
long kingaku;
};
main(){
int goukei,i;
struct syouhin_data syouhin[5]={
{"シャープペンシル",500,3,0},
{"エンピツ",30,10,0},
{"消しゴム",50,20,0},
{"サインペン",150,7,0},
{"定規",150,6,0},
};
struct syouhin_data *sp;
sp=syouhin;
goukei=0;
for(i=0;i<5;i++){
++sp;
sp->kingaku=sp->tanka*sp->kosuu;
goukei+=sp->kingaku;
}


601 :デフォルトの名無しさん:05/01/30 23:50:38
for(i=0;i<5;i++){
++sp;
printf("商品名:%s\n",sp->name);
printf("単価:%d\n",sp->tanka);
printf("個数:%d\n",sp->kosuu);
printf("金額:%d\n",sp->kingaku);
}
printf("\n合計金額=%d\n",goukei);
}
pr4やってみたのですが、
表示がえらいことになってしまいます;;

602 :デフォルトの名無しさん:05/01/30 23:55:55
>>597
longを使ってるから金額の指定子は%dより%ldのほうがいいのかも
たぶん

603 :デフォルトの名無しさん:05/01/30 23:56:23
努力は認める
++sp;の位置を考えろ

604 :294:05/01/30 23:59:42
++spをfor文の最後に回してみたのですが
うまくいきません・・。

605 :デフォルトの名無しさん:05/01/31 00:01:37
>>601
for(i=0;i<5;i++){  
sp->kingaku=sp->tanka*sp->kosuu; 
goukei+=sp->kingaku; 
++sp;


for(i=0;i<5;i++){  
--sp;
printf("商品名:%s\n",sp->name); 
printf("単価:%d\n",sp->tanka); 
printf("個数:%d\n",sp->kosuu); 
printf("金額:%d\n",sp->kingaku);


順番変わるけど


606 :568:05/01/31 00:02:48
>>599
void tree_kanjyun(nodedata *now)をvoid tree_kanjyun(nodedata *now,int data)にしてみましたがエラーがなくなりません。


607 :デフォルトの名無しさん:05/01/31 00:04:14
void treeAdd(node * now,int data);

printf("%d\n",treeAdd);
何がやりたいんだ?


608 :294:05/01/31 00:07:27
できました。
ありがとうございます。
それと、>>564をやってくださってる方
いらっしゃいますでしょうか?

609 :デフォルトの名無しさん:05/01/31 00:07:43
>>606
もうちょっとnode *nowとnodedata *nowの違いについて考えて欲しい
構造体についてぐぐって初心に帰ってみるのも手かも

610 :デフォルトの名無しさん:05/01/31 00:12:39
for(i=0;i<5;i++){
sp->kingaku=sp->tanka*sp->kosuu;
goukei+=sp->kingaku;
++sp;
};

sp=syouhin;
for(i=0;i<5;i++){
printf("商品名:%s\n",sp->name);
printf("単価:%d\n",sp->tanka);
printf("個数:%d\n",sp->kosuu);
printf("金額:%d\n",sp->kingaku);
};

611 :デフォルトの名無しさん:05/01/31 00:17:38
何か抜けてる気が

612 :デフォルトの名無しさん:05/01/31 00:19:25
printf("金額:%d\n",sp->kingaku);
sp++;
};

613 :デフォルトの名無しさん:05/01/31 00:19:47
次のプロファイルを最近隣内挿法、共1次元内挿法によって
4倍に拡大しなさい。
1 5 8 13 8

614 :デフォルトの名無しさん:05/01/31 00:20:23
>>608
prコード表を作れっていうのは、どの環境においてもJISコードで文字が
表示されるようにせよって事か?

615 :デフォルトの名無しさん:05/01/31 00:25:59
>>614
わり、pr1のことね。

616 :294:05/01/31 00:29:48
>>614
特に制限はされていませんので
環境は考えなくてよいと思います。

617 :デフォルトの名無しさん:05/01/31 00:34:05
>>564 pr1
#include <stdio.h>
int main(void) {
    int temp = 0, sum = 0, count = -1;
    while (temp != -999) {
        ++count;
        sum += temp;
        printf("data?:");
        scanf("%d", &temp);
    }
    printf("goukei=%d\nheikin=%f", sum, (double)sum / count);
}

>>616
いやそういうことじゃない。例えばもし君の環境がWindowsだったとすると、
普通に作ればJISではなくShift-JISコードで表示されるから、JISで表示する
ためには変換が必要になる。その変換の内容が実行環境によって変わって
くるんでね。

618 :617:05/01/31 00:37:44
また間違った。pr2ね。

619 :デフォルトの名無しさん:05/01/31 00:44:07
>>617 間違った、無限ループ使ってなかった。やり直し。
pr2
#include <stdio.h>
int main(void) {
    int temp = 0, sum = 0, count = 0;
    while (1) {
        printf("data?:");
        scanf("%d", &temp);
        if (temp == -999) break;
        ++count;
        sum += temp;
    }
    printf("goukei=%d\nheikin=%f", sum, (double)sum / count);
}

pr3
#include <stdio.h>
int main(void) {
    int a, b = 1;
    while (1) {
        printf("data1?:"); scanf("%d", &a);
        printf("data2?:"); scanf("%d", &b);
        if (a == -999 || b == -999)
            break;
        if (b != 0) {
            printf("%d/%d=%dあまり%d\n", a, b, a / b, a % b);
        }
    }
    return 0;
}
*/

620 :294:05/01/31 00:48:33
>>617
えーと、windowsXPです。

621 :デフォルトの名無しさん:05/01/31 00:52:42
#include<stdio.h>
main(){
int n,i=0;
for(n=32;n<=126;n++){
printf("%c=%2x ", n, n);
i++;
if(i%10==0) printf("\n");
}
}

622 :デフォルトの名無しさん:05/01/31 00:56:38
スマン、半角部分だけだから関係なかったんだった。
#include <stdio.h>
int main(void) {
    char c;
    for (c = 32; c <= 126; c++) {
        printf("0x%X %c ", c & 0xff, c);
        if ((c - 32) % 10 == 9) printf("\n");
    }
    return 0;
}

623 :294:05/01/31 01:00:49
617さん621さん
ありがとうございます。
JISコード表見たときちょっと感動しました

624 :294:05/01/31 01:14:18
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/164.txt
これで最後です。
解いてくださる方お願いします。

625 :デフォルトの名無しさん:05/01/31 01:25:47
pr6 ただし、問題文をかなりエスパーしてる。
#include <stdio.h>
int main(void) {
    double a, b, *p_a = &a, *p_b = &b;
    printf("a?:");
    scanf("%lf", p_a);
    printf("b?:");
    scanf("%lf", p_b);
    printf("max = %f", a < b ? b : a);
    return 0;
}

626 :デフォルトの名無しさん:05/01/31 01:29:27
>>625
まみくん!ダメじゃないか。

627 :デフォルトの名無しさん:05/01/31 01:31:56
pr7 ただしあまり番兵が意味を成していない。
#include <stdio.h>
int main(void) {
    int i, j, n = 0, temp, a[]={10, 25, 7, 45, 2, 100, 3, 70, 50, -1};
    while (a[n] != -1) n++;
    for (i = 0; i < n - 1; i++)
        for (j = 0; j < n - 1 - i; j++)
            if (a[j + 1] < a[j]) {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
    for (i = 0; i < n; i++) printf("%d ", a[i]);
    return 0;
}

628 :デフォルトの名無しさん:05/01/31 01:36:45
>>624 pr8
#include <stdio.h>

void func(const char *str1, const char *str2, char *buf){
int i;
while(*str1){
*buf = *str1;
str1++;
buf++;
}
while(*str2){
*buf = *str2;
str2++;
buf++;
}
*buf = '\0';
}

int main(){
char s1[100], s2[100], buf[200];
gets(s1);
gets(s2);
func(s1, s2, buf);
printf("%s\n", buf);
return 0;
}

629 :デフォルトの名無しさん:05/01/31 01:38:23
pr8 即興で作ったので動くかどうか不明
#include<stdio.h>
#define kBufferSize (256)

int main(void){
char line1[kBufferSize];
char line2[kBufferSize];

printf("文字列1を入力\n");
fgets(line1,kBufferSize,stdin);
printf("文字列2を入力\n");
fgets(line2,kBufferSize,stdin);

printf( "%s\n",StringCat(line1,line2) );
retunr 0;
}

void StringCat(char *s1, const char *s2){
while ( ( *s1++ ) != '\0' ){
;
}
s1--;
while ( ( ( *s1++) = (*s2++) ) != '\0' ){
;
}
}

630 :デフォルトの名無しさん:05/01/31 01:39:18
あー動くわけねーわ。voidなのに表示されるわけがないorz

631 :デフォルトの名無しさん:05/01/31 01:39:54
>>627-628
すみませんが、pr7は関数を使って
pr8は関数を使わないでと書き忘れました;;
申し訳ありません。

632 :デフォルトの名無しさん:05/01/31 01:40:27
死ね

633 :294:05/01/31 01:41:31
>>632
申し訳ないです

634 :デフォルトの名無しさん:05/01/31 01:57:04
pr8
#include <stdio.h>
int main(void) {
    char input1[256], input2[256], buf[256];
    int i = 0, j = 0;
    printf("文字列1?"); scanf("%s", input1);
    printf("文字列2?"); scanf("%s", input2);
    while (input1[i] != '\0') {
        buf[i] = input1[i];
        i++;
    }
    while (input2[j] != '\0') {
        buf[i] = input2[j];
        i++; j++;
    }
    buf[i] = '\0';
    printf("%s", buf);
}

635 :デフォルトの名無しさん:05/01/31 01:59:22
pr7
#include <stdio.h>
void sort(int* a) {
    int i, j, n = 0, temp;
    while (a[n] != -1) n++;
    for (i = 0; i < n - 1; i++)
        for (j = 0; j < n - 1 - i; j++)
            if (a[j + 1] < a[j]) {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
}
int main(void) {
    int i, a[]={10, 25, 7, 45, 2, 100, 3, 70, 50, -1};
    sort(a);
    for (i = 0; a[i] != -1; i++) printf("%d ", a[i]);
    return 0;
}

636 :294:05/01/31 02:08:03
>>634-635
ありがとうございます
>>564のpr4,pr5をswicth文で
お願いできる方おりますでしょうか?

637 :デフォルトの名無しさん:05/01/31 02:08:34
以下のような,あるサーバのログがある.
リクエストが来た時間(開設時をゼロとする)と,処理にかかった時間が書かれている.

リクエスト到着時間_処理時間
1.42423_2.53556
5.24524_6.35352
13.43663_9.59301
16.93821_5.23428



このサーバは1台で運営しているが,ログからわかるように,次のリクエストがくる前に
前のリクエストを処理し終わらないと,『待ち』の状態が起きる。
これを3台のサーバで運営するした場合,このログデータを使って,
3台ともに待ち状態を最小限にするためには,どのような振り分けプログラムを作ればいいか?
ログデータの見方は,3行目を例にとると,
サーバ開設13.43663秒後,処理に9.59301秒かかるリクエストが来た。
ということである。
つまり,処理に9秒以上かかるのにその3秒後に4行目のリクエストが着てしまうので,
この場合『待ち』状態になってしまう。

638 :デフォルトの名無しさん:05/01/31 02:12:35
>>636
お前の敬語は一体どうなっているのだと小一時間(ry

639 :294:05/01/31 02:16:02
>>638
ご、ごめんなさい。
20時頃からずっと張り付いてますね、私。

640 :デフォルトの名無しさん:05/01/31 02:19:26
>>639
pr4と5の「複数回入力可能」が上限固定値でいいのか(例えば1024回まで)
メモリが許すだけなのかによって内容が大幅に変わって来るんだが、
どっちだ?

641 :568:05/01/31 02:20:05
>>609
構造体について入門書を読みましたがポインタ関連はイマイチです。
ここまでも本やググったりして何とか仕上げた感じですから・・・orz

642 :639:05/01/31 02:21:22
>>640
上限固定値でお願いします。

643 :639:05/01/31 02:24:30
自己解決しました。

644 :294:05/01/31 02:26:37
>>643
自己解決したいですよ・・

645 :639:05/01/31 02:36:33
自己破産しました。

646 :デフォルトの名無しさん:05/01/31 02:38:09
関西人は図々しいな

647 :デフォルトの名無しさん:05/01/31 02:38:14
アセンブラーを作らなければいけないのですが、質問させて下さい。

ソースコードは例えば、

BOB ORI
A NMD
B NMD
BEGIN IO 0, A

とこんな感じで続くのですが このソースファイルをまず、vectorに保存して
それから 一行づつ、扱っていこうと思うのですが 一行づつに分けた後、
タブで分けられた 単語を、それぞれ分けて扱わなければならないと思うのですが、
それはどのようにして、すればよいのでしょうか?

例えば、String a = BOB ORI
となると、このa から BOB と ORI を抜き出す方法が分かりません。
何か便利な方法があれば 教えてください。 やはり自分でメゾッド作るしかないでしょうか。
なるべくコードをシンプルにしたいので。。。

648 :デフォルトの名無しさん:05/01/31 02:45:59
>>647
stringstream
sscanf
strtok
あと死ね。

649 :デフォルトの名無しさん:05/01/31 02:49:47
メソッドをメゾットと書く人は初めて見た

650 :294:05/01/31 02:52:50
>>645
ふへ

651 :デフォルトの名無しさん:05/01/31 02:55:11
>>636
#include <stdio.h>

int main(){
int num, index[1024], i = 0, j;
do{
printf("Input :");
scanf("%d", &num);
if ( (num >= 0) && (num <= 6) ){
index[i] = num;
i++;
}
}while(num != -999);

for (j = 0; j < i; j++){
switch(index[j]){
case 0: puts("日曜"); break;
case 1: puts("月曜"); break;
case 2: puts("火曜"); break;
case 3: puts("水曜"); break;
case 4: puts("木曜"); break;
case 5: puts("金曜"); break;
case 6: puts("土曜"); break;
}
}
return 0;
}

652 :294:05/01/31 03:03:12
>>651
ありがとうございます

653 :デフォルトの名無しさん:05/01/31 03:17:48
c++言語で3DCGの作品を作る課題なのですが、頼んでもよろしいでしょうか?
例としては「車が走っている様子」や「公園を歩いてる様子」などです。
自分の力では全く分かりませんので、よろしければお願いしたいです。

[1] 授業単元:3DCG
[2] 問題文(含コード&リンク):TinyFKを利用したアニメーションを作る。
ttp://www.teu.ac.jp/aqua/~earth/FK/
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C++
[4] 期限:2005年2月7日24:00まで
[5] その他の制限: 作品の解説が必要。
(下記の技術をどのように用いているか)


654 :653:05/01/31 03:18:28
・二種類以上のマテリアル設定(1点)
・平行光源、点光源両方の作成と利用(2点)
・オイラー角を用いた制御(2点)
・アップベクトルを用いた制御(1点)
・モデルの座標軸以外の任意軸回転(2点)
・パンカメラ処理(1点)
・オービットカメラ処理(1点)
・トラックカメラ処理(1点)
・ドリーカメラ処理(1点)
・ティルトカメラ処理(1点)
・ウォークスルーカメラ処理(2点)
・フライスルーカメラ処理(2点)
・速度・加速度の概念の利用(2点)
・力の概念の利用(3点)
・反射の利用(3点)
・摩擦の利用(2点)
・二直線の交点計算の利用(3点)
・平面と直線の交点の利用(3点)
・キー入力の利用(1点)
・テクスチャマッピングの利用(2点)
・曲面テクスチャマッピングの生成(3点)
・十字型配置テクスチャマッピングの利用(2点)
・ビルボードテクスチャマッピングの利用(3点)
・マウス入力の利用(2点)
・GUI部分(ボタン)の利用(3点)


655 :653:05/01/31 03:19:55
上記の内容を幾つか満たしていれば良いです。
長々となってしまいました。。。
やって頂けたら幸いです。
心優しい方、よろしくお願いしますm(_ _)m


656 :294:05/01/31 03:37:19
>>564
pr5解いて下さってる方いますか;;

657 :デフォルトの名無しさん:05/01/31 03:40:33
いるよ

658 :デフォルトの名無しさん:05/01/31 03:43:13
>>656
#include <string.h> だけ使っていい?

659 :294:05/01/31 03:46:28
>>658
はい

660 :デフォルトの名無しさん:05/01/31 03:48:13
>>659
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/165.txt

661 :647:05/01/31 03:50:28
ありがとうございます。 sscanf使ってみます!

また別の質問なのですが、 vector <string> に assignでソースコードを保存していくと
タブの部分で切れて それぞれ別のstringに保存されてしまうのですが これを一行まとめて一つのstringに保存していく方法を 教えてください。。



662 :294:05/01/31 03:57:32
>>660
ありがとうございました。
解いてくださった皆さんのおかげで
すべて課題が終わりました。
>>660さん、遅くまで付き合ってくれて
本当に、ありがとうございます。

課題に全部目を通してから寝ますー

663 :デフォルトの名無しさん:05/01/31 03:58:23
>>661
それはassingで保存する前から別のstringになってるんじゃないか?

664 :647:05/01/31 04:08:57
int main(int argc, onst char* argv[]){

ifstream inputfile(argv[1]);
vector <string> source;
source.assign(istream_iterator<string>(inputfile),istream_iterator<string>());

}

こんな感じでassignまで至っているのですが inputfileに 
AVG ORI
という様な内容のファイルを渡したら、 source.at(0)="AVG", source.at(1)="ORI" という
様になってしまうっぽいです。これを、どうにか source.at(0)="AVG ORI" という事には
できないですか? 

getlineで一行づつ読んでいくことも考えたのですが、できればvectorを使いたいと思いまして。。

665 :つーか、宿題じゃないだろ:05/01/31 04:34:09
>>647
もう一度言う。
死ね。

666 :637:05/01/31 05:21:13
誰か助けてください・・・・

667 :デフォルトの名無しさん:05/01/31 05:35:13
レスキュープリーズ

668 :デフォルトの名無しさん:05/01/31 06:59:26
Q

669 :637:05/01/31 07:12:21
自己解決しました。ありがとうございました。

670 :デフォルトの名無しさん:05/01/31 09:26:50
>>664
マニピュレータ弄れ

671 :デフォルトの名無しさん:05/01/31 09:27:59
>>666
何が問題なのかさえ分かりません。
日本語から勉強し直したらどうですか?

672 :デフォルトの名無しさん:05/01/31 11:12:28
>>664
std::vectorとstd::getline()を組み合わせればいいじゃん。

673 :デフォルトの名無しさん:05/01/31 13:13:16
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
   1、スタックに int型のデータを積む関数pushu_a と、取り出す関数pop_aおよび、その関数を使用するmainを作成せよ。
   2、スタックは配列変数を用いて実現し、最大100個まで記憶するものとする。
3、配列、スタックポインタはグローバル変数として宣言する。
[3] 環境
 [3.1] OS:Win XP
 [3.2] 開発環境:Visual C++ .NET
 [3.3] 言語:C
[4] 期限:1月中
[5] その他の制限:特になし。

よろしくお願いします。


674 :673:05/01/31 13:14:34
詳しい問題はアップローダーにアップしておきました。

675 :デフォルトの名無しさん:05/01/31 13:18:34
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=166

676 :デフォルトの名無しさん:05/01/31 13:49:39
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
 1. 「探索」のプログラムを「リスト構造」を利用して作成せよ。
2. 「ソート」のプログラムを「リスト構造」を利用して作成せよ。

授業中に利用したアルゴリズムの中からリスト構造の扱いに向いたものを選び、プログラムにせよ。
(授業では、探索は逐次探索と二分探索、ソートはバブルソートとクイックソートというのをやったらしいです)
[3] 環境
 [3.1] OS:Windows XP
 [3.2] 開発環境:Visual C++
 [3.3] 言語:C
[4] 期限:今日中

期限が今日の深夜0時までみたいです・・・
突然のお願いで大変かと思いますが、どうかよろしくお願いいたします。。。

677 :デフォルトの名無しさん:05/01/31 14:08:00
1] 授業単元: C言語
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: XP SP2
 [3.2] コンパイラ(バージョン): .NET 2003
 [3.3] 言語:C
[4] 期限:2005年1月31日23:00まで
[5] その他の制限:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=167
に問題文記載

自力でできるところまでやってみたもののどうもうまくいきません。
あれやこれやしてる間に締め切り日になってしまいました。
どなたかよろしくお願いします;;

PS.調べながら書いたソース添付しておきました

678 :デフォルトの名無しさん:05/01/31 14:14:49
>>673
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/169.c

679 :デフォルトの名無しさん:05/01/31 14:39:50
[1] 授業単元: C言語研究
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=170
[3] 環境
 [3.1] OS:WinXPSP2 CPU:Pentium
 [3.2] コンパイラ(バージョン):VisualStadio.NET2003Pro
 [3.3] 言語:C
[4] 期限:2005年2月1日
[5] その他の制限:特になし

よろしくお願いします

680 :デフォルトの名無しさん:05/01/31 15:48:14
>>677
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/171.c

681 :デフォルトの名無しさん:05/01/31 17:02:45
>>680
解放されたかどうかをコンソールに出力して確認しなさい。は、
コンソール画面に入力した数字を羅列して、メモリを開放したあとに
開放されているか確認するためにNULLを出すということです。

682 :デフォルトの名無しさん:05/01/31 17:11:52
じゃあ、最後に、printf( "NULL\n" ); とでもするしかない。

freeは値を返さないし、開放後のメモリ参照はできないし、
開放後の変数には、mallocが返したアドレスがそのまま入ってるんだけど?

683 :デフォルトの名無しさん:05/01/31 17:16:08
>>682
freeしたらNULL代入しとけば?

684 :デフォルトの名無しさん:05/01/31 17:16:48
>>683
ダイナミックツリーなんだから、セグメントエラーになる。

685 :デフォルトの名無しさん:05/01/31 17:20:33
時間いっぱいギリギリまで試行錯誤してみます。
皆さんありがとうございました

686 :デフォルトの名無しさん:05/01/31 17:38:57
>>684
ポインタの先の構造体読みに行く前にNULLチェックすれば問題ないんではないのかなぁ…

687 :デフォルトの名無しさん:05/01/31 17:45:21
あ〜一方通行なのか…

688 :デフォルトの名無しさん:05/01/31 17:54:02
NULL代入してNULLが代入されてることを確認して解放チェックしてみた。
恐らく出題者の望んだ解答はこんな感じかと
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/173.c

689 :デフォルトの名無しさん:05/01/31 18:02:06
だから、free の後で、参照したらまずいんだって。
たまたま動いてるだけ。

690 :デフォルトの名無しさん:05/01/31 18:08:50
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/174.c
これで文句なかろう

691 :デフォルトの名無しさん:05/01/31 18:12:56
いっそSIGSEGV捕まえちまえばいいんじゃ?

692 :デフォルトの名無しさん:05/01/31 18:21:22
>>690
680=682=684=689 だけど、

680、で作ったソースの最後のforで、全部開放済(全部freeを呼んでる)。
だから、最後に何かを付けて、参照するのは、無理です。

693 :デフォルトの名無しさん:05/01/31 18:22:20
>>690
なにしてんだよ…

694 :デフォルトの名無しさん:05/01/31 18:28:46
ダイナミックツリーなんだから、最初の一つのポインターを除けば、
全部、malloc で獲得した領域。

だから、開放したことを示すNULLを入れたポインターも、最初のを除けば、
最終的には開放されてしまう。

もしくは、NULLを入れようとするポインターがfreeで開放された領域になってしまう。

なんで最後に、
head = NULL;
printf( "NULL\n" );
とするしかない。

695 :デフォルトの名無しさん:05/01/31 18:29:21
C歴1日の奴でももっとマシなソース書く

696 :デフォルトの名無しさん:05/01/31 18:34:29
>>694
それじゃ解放を確認したとはいえない。
ただ単にポインタをNULLにするだけだったらいつでもできる。
解放されて無くても出来てしまっては意味がない。

697 :デフォルトの名無しさん:05/01/31 18:36:42
>>696
だから、メモリリークのデバックは大変なんです。


698 :デフォルトの名無しさん:05/01/31 18:41:19
C++のセオリーに、「デストラクタで例外を送出するな」というのがある。
まともな実装のOSならば、freeが失敗する場合ってのは致命的な
エラーなのでは?

699 :デフォルトの名無しさん:05/01/31 18:43:12
例外安全すら知らない無知はすっこんでろ

700 :デフォルトの名無しさん:05/01/31 18:48:20
誰か>>679やってくださいよ(´Д`;)
明日の授業の最初で提出だし、他にもいっぱい課題あるんです・・・

701 :デフォルトの名無しさん:05/01/31 18:49:28
>>700
struct MY_DATA が未定義で、できません。

702 :デフォルトの名無しさん:05/01/31 18:51:06
>>700
ようするに
 お前の態度が
   気に食わない

703 :デフォルトの名無しさん:05/01/31 18:52:21
>>700
あれ?いつからいたの?

704 :デフォルトの名無しさん:05/01/31 19:15:39
structの定義なのに最後にセミコロンないし。

705 :デフォルトの名無しさん:05/01/31 20:00:41
C言語実習の最終課題で「標準入出力 反復文 構造体・共用体 定数と変数 配列 ファイル入出力 式と演算子
関数 動的メモリ 制御文 ポインタ 分割コンパイルを全て使ってオリジナルのシステムを製作する。」
というものが出題されたのですが、アイデアも何も浮かびません・・・

後生ですのでどなたか代行していただけませんでしょうか。
お願いします。

706 :デフォルトの名無しさん:05/01/31 20:10:50
アイディアがあるなら手伝うことは出来る。そこ、一番大事。

707 :デフォルトの名無しさん:05/01/31 20:21:33
例として出されたのは

「選択式ソートシステム」
≫ある複数のデータをソートする場合、ソートの種類を選択することができるシステム。

です、もう時間がないのでこれでお願いしたい所存です。
ソートの種類としては「選択ソート、バブルソート、挿入ソート、シェルソート」で行こうと思います。
ソートする文字、または数値をファイルから読み込むか、入力するかの選択、
どのソートをするかの選択の後、選択された処理を実行し、結果と経過をファイルに出力するシステムでお願いします。

708 :デフォルトの名無しさん:05/01/31 20:22:09
>>705
適当なアーカイバとか作ってみては?
ついでにXORで暗号化すれば恐らく全て使える

709 :705:05/01/31 20:24:57
読み込む際のファイルはタブ区切りで行
改行で列

----------
1[TAB]43[TAB]83[TAB]14[TAB]32
C[TAB]言[TAB]語[TAB]実[TAB]習
----------
というファイルを読み込みそれを昇順でソートするという物をよろしくお願いします。

710 :705:05/01/31 20:26:42
>>708さん
まだ1回生なので本当の初歩的なソースしかかけないので・・・
アーカイバなど実用的なシステムは無理です、すいません。

711 :708:05/01/31 20:31:23
自分は高専の一年〜2年の春休みに暇つぶしでPCゲームの書庫展開を
作ってみた経験から言ってみたんだが…

まぁ、やってみたいものの方がいいとおもうけどね

712 :デフォルトの名無しさん:05/01/31 21:36:41
>>705
表計算でも作ってみるとか。

713 :デフォルトの名無しさん:05/01/31 22:19:01
私は簡単な web server が良いとおもった

714 :デフォルトの名無しさん:05/01/31 22:24:54
[1] 授業単元:C言語
[2] 問題:穴埋めです。
  http://www.geocities.jp/my_jyouhou_u/test1.txt

[3] 環境
 [3.1] OS:Windows XP
 [3.2] 開発環境:Visual C++
 [3.3] 言語:C
[4] 期限:2月1日正午

忙しすぎて手がつけられませんでした。
かなり初歩的な問題だと思います。よろしくお願いします!

715 :デフォルトの名無しさん:05/01/31 22:39:23
[1] 授業単元:C++入門
[2] 問題文(含コード&リンク):

1、自宅から勤務先の会社まで電車で通うとする(片道230円:往復460円)
2005年4月から2010年4月まで会社に通うとした場合に、運賃はいくらになるだろうか。
日数部分と運賃の計算部分は関数化を行い、運賃を求めるプログラムを作りなさい。

2、また、通勤定期を使用すると一ヶ月で6500円かかる。
  1の問題で通常切符と一ヶ月定期を購入したと考え、
   その場合もっとも安い運賃で通勤する方法と、その金額を出力するプログラムを作りなさい。
   作成時に必要だと思った箇所は関数化を行いなさい。


*1、2共に、うるう年と休日(土日)は基本的に考えなくて構いません。
 作成している場合は+αとして採点します

[3] 環境
 [3.1] OS:Windows xp Home
 [3.2] コンパイラ(バージョン):VisualStudio.Net2003
 [3.3] 言語:C++
[4] 期限:2005年02月3日
[5]
+αの部分は考えていませんので、条件として考えて頂かなくて結構です。

2の出力は
「切符で20往復
 一ヶ月定期を5回 =41700円」
 という形になるかと思います。
 
回答頂けます場合は、初心者むけのソースであれば助かります。
どうぞよろしくお願いします。


716 :デフォルトの名無しさん:05/01/31 22:40:52
>>714
そういうときには素直に「分かりませんでした」と言った方が可愛げがあるぞ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/176.txt

717 :714:05/01/31 22:46:18
>>71
はい、正直分かりませんでした。。アフォなので
ありがとうございます!

718 :デフォルトの名無しさん:05/01/31 22:49:51
アから順に。試してないからコンパイルして試してちょ。

問題1
n<=1
1
fact(n-1)
int n;
&n
n<0
fact(n)

問題2
*n
mode == 0
index
meibo[i].name
0
meibo[i].name
meibo[i].name

問題3
*a
n[j] > n[j+1]
&n[i]
n
%d
n[i]

719 :679:05/01/31 22:59:54
どなたか>>679の問1といてもらえませんか。
本当にお願いします

720 :デフォルトの名無しさん:05/01/31 23:05:12
>>679
「queueに突っ込むアイテムを表現してる構造体」の名前が"Que"ってのはいかがなものなのかと問いたいです。

721 :デフォルトの名無しさん:05/01/31 23:06:20
クエッ

722 :679:05/01/31 23:08:23
問2の答えがアップされてますがmain関数がありません・・・

723 :705:05/01/31 23:12:06
締め切り1時間きりました・・・
どなたか>>707でシステム作ってもらえないでしょうか・・・

724 :デフォルトの名無しさん:05/01/31 23:12:17
>>715
閏年を考慮しつつも土日を考慮していないと言う何とも中途半端な内容だが。
#include <iostream>
long ut2jd(double *d, int year, int month, int day, int hour, int min, int sec)
{
    int bc, gregory;
    long j;
    bc = year <= 0;
    gregory = year > 1582 || (year == 1582 && month > 10) || (year == 1582 && month == 10 && day >= 15);
    if (month <= 2) {year--; month += 12;}
    if (hour < 12) {j = 0; *d = 0.5;}
    else {j = 1; *d = -0.5;}
    *d += (hour * 3600L + min * 60 + sec) / 86400.0;
    j += bc ? (year - 3) / 4 : year / 4;
    if (gregory) j += 2 - year / 100 + year / 400;
    j += 1720994L + year * 365L + (month + 1) * 30 + (month + 1) * 3 / 5 + day;
    return j;
}
int days_between(int sy, int sm, int sd, int ey, int em, int ed)
{
    double dummy;
    return ut2jd(&dummy, ey, em, ed, 0, 0, 0) - ut2jd(&dummy, sy, sm, sd, 0, 0, 0);
}
int main()
{
    std::cout << 460 * days_between(2005, 4, 30, 2010, 4, 30) << "円" << std::endl;
    return 0;
}

725 :デフォルトの名無しさん:05/01/31 23:15:22
>>723
2ちゃんねるに課題を丸投げするということはだな、見知らぬ誰かの善意を期待するってことだ。
ということは、誰も期待にこたえてくれないこともあるということだ。つまりこれも運命だからあきらめろってことですな。

726 :デフォルトの名無しさん:05/01/31 23:16:20
ソートってアルゴリズム思い出せないからヤダ

727 :707:05/01/31 23:20:36
課題にそったシステムなら何でもかまいません
何でも構わないので何か提供してもらえませんでしょうか・・・

728 :705:05/01/31 23:24:38
すいません705の間違えです

729 :デフォルトの名無しさん:05/01/31 23:27:12
2ちゃんのあほどもに任せてもらちがあかないから自分でやろうとか思わないの?
今開発環境ないから漏れは煽るだけ。

730 :デフォルトの名無しさん:05/01/31 23:31:38
授業単元:大学の情報基礎という授業
問題文:名前・メルアド・電話番号を登録でき、なおかつ名前検索、一覧表示できる
     アドレス帳プログラムを作成せよ


http://www-it.sci.waseda.ac.jp/ITB1/class6b/l08.html
http://www-it.sci.waseda.ac.jp/ITB1/class6b/l10.html
ここにあるサンプルプログラム二つを一つにまとめればいいと思うのですが、うまくいきません。
何卒よろしくお願いしますm(__)m




※環境:学校のPCなのでよくわかりませんが、テキストファイルで書いたCを
 別の端末ウインドウから「cc **.c」でコンパイル、 「a.out」で実行するタイプです。



731 :730:05/01/31 23:33:32
まとめて欲しいサンプルプログラムA


01 #include <stdio.h>
02
03 int main( int argc, char* argv[] ){
04 FILE* outfile;
05 char name[30], email[50];
06
07 outfile = fopen( argv[1], "a" );
08
09 printf( "名前を入力してください: " );
10 scanf( "%s", name );
11 printf( "E-mailアドレスを入力してください: " );
12 scanf( "%s", email );
13
14 fprintf( outfile, "%s %s\n", name, email );
15
16 fclose( outfile );
17 return 0;
18 }



732 :730:05/01/31 23:34:19
#include <stdio.h>
#include <string.h>

int main(){
int i=0, count, kekka;
char names[10][20], tmpname[20];
char emails[10][50], tmpemail[50];
FILE* infile;

/* ファイルから最大10人分のデータを読み込む */
infile = fopen( "l10_sample1.data", "r" );
while( !feof(infile) && i<10 ){
fscanf( infile, "%s %s", tmpname, tmpemail );
strncpy( names[i], tmpname, 20 );
strncpy( emails[i], tmpemail, 50 );
i++;
} /* 読み込まれた人数を count に保存 */
count = i;
printf( "検索する名前を入力してください: " );
scanf( "%s", tmpname ); /* カウンタ i を 0 に戻してから全員分の検索を行う */
i = 0;
while( i<count ){
kekka = strcmp( names[i], tmpname );
/* i番目にマッチする名前が見つかったので、
i番目の電子メールアドレスを表示する */
if( kekka == 0 ){
printf( "%s さんの電子メールアドレスは %s です。\n",
names[i], emails[i] ); }
i++; }
return 0;
}


733 :730:05/01/31 23:35:30
>>732がBになります。

連投失礼しました・・・orz

734 :705:05/01/31 23:37:24
自分C言語よくわからないんです;;
なにをどうしていいのかサッパリで・・・

735 :673:05/01/31 23:40:03
>>675,678
お答えいただき有難うございました。

736 :デフォルトの名無しさん:05/01/31 23:44:12
>>734
授業受けててなんでそんなレベルなんですか。
とりあえず担当教官に「あなたの授業を受講していたにも関わらずC言語がよく分からなくて何をどうしていいかサッパリです。
この件は大学当局に告発させていただきます」ってメールを出せば配慮してくれるかもしれないよ。

737 :デフォルトの名無しさん:05/01/31 23:45:07
>>736
そんなことしたら出席日数不足がばれるじゃん。

738 :デフォルトの名無しさん:05/01/31 23:46:41
>>730
a.out は、いかんな。
./a.out でないと。

っと別のところに突っ込み。


739 :デフォルトの名無しさん:05/01/31 23:59:46
やっぱ10分じゃ無理だった

740 :デフォルトの名無しさん:05/02/01 00:09:13
PATH に . は含めちゃいけません

741 :デフォルトの名無しさん:05/02/01 00:14:43
>>734
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/177.zip

ちょいっと時間オーバーになったがアーカイバー作ってみた

742 :デフォルトの名無しさん:05/02/01 01:05:22 ID:QKqiqhtw ?
[1] 授業単元: C言語
[2] 問題文はhttp://www.edu.ics.saitama-u.ac.jp/~hira/ex04p/prog04ef.b.htmlにあります。
[3] 環境
OS:UNIX 
言語:C
[4] 期限:2005年2月1日14:00まで

テスト週間でほんとにできなくて困ってます。
よろしくお願いします。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

743 :デフォルトの名無しさん:05/02/01 01:09:09
>>741
すごいな喪前
なんか俺も真面目にプログラム勉強してみたくなった
 
回答人みたく、電車内で前の席に座ってる女子のパンツ覗きながら携帯でちょいちょいと答えたり、
納品日に間に合わなくて剃る暇もなくすっかり生え揃ってしまったヒゲを弄りながらちょいちょい答えられるように
なるにはどうすればいいの?

744 :デフォルトの名無しさん:05/02/01 01:43:34
そんな、前者みたいな軽犯罪法を犯す方法は教えられません!

745 :デフォルトの名無しさん:05/02/01 01:55:26
>>742
めんどくさすぎ。しかも直前に丸投げ。考えた後もなし。諦めな。

746 :デフォルトの名無しさん:05/02/01 02:35:59
>>742
HP見ると、コンテスト行う、とあって、そこを見ると、乱入者部門とかある。
そっちに参加するかな?(w

747 :デフォルトの名無しさん:05/02/01 03:03:13
アメリカホームドラマと吉本新喜劇を混ぜて名古屋風にした感じか

748 :747:05/02/01 03:04:08
誤爆スマン

749 :デフォルトの名無しさん:05/02/01 03:08:05
一瞬何かと思った

750 :デフォルトの名無しさん:05/02/01 04:23:36
質問です。

入力ファイル(テキスト形式)の行数を調べる方法で、最も効率的な方法、又はメソッドは
何でしょうか?教えてください。オネガイします。

751 :デフォルトの名無しさん:05/02/01 04:33:41
wc(1)

752 :デフォルトの名無しさん:05/02/01 04:50:50
>>742
この文書いたやつ、そこはかとなくRuby使いっぽいなw
デバッグにつまったから暇つぶしにやってみるかな。

753 :デフォルトの名無しさん:05/02/01 04:56:08
>>752
じゃあデバッグの方は俺が引き受ける。

754 :デフォルトの名無しさん:05/02/01 05:02:52
つかモロRuby野郎じゃんか。ま、おれもそうなんだけど。
でも課題はCで作るのね。
ていうか、cacrd.tar.gzに含まれてたa.outが意味不明なんすけど…

>>753
よくよく読んでみるとかなり手ごわそうな感じ。
こんなのを解く授業なんて羨ましいっす。

755 :デフォルトの名無しさん:05/02/01 05:05:07
標準入力とは?ディスクリプタstdinでは読み込めませんが・・・。
この教師ちょっと心配。。


756 :デフォルトの名無しさん:05/02/01 05:14:03
>>755
読んでる部分を抜き出してみたよ。

d_open("|#{@command}", 'r+'){|io|
@io = io
proc.call
}

ま、なにをやってるかというとプロセスを作ってパイプ経由で読んでるってこと。

757 :デフォルトの名無しさん:05/02/01 05:19:47
>>756
なるほど、じゃあ、ディスクリプタはstdin,stdoutじゃだめじゃん?

758 :デフォルトの名無しさん:05/02/01 05:22:07
>>742
掲示板に晒してあるソース。そうとう駄目なやつだよ。
もうちょっと勉強したほうがいいんでない?
こいつのためにならんよ。

759 :デフォルトの名無しさん:05/02/01 05:22:30
>>757
ゲームマスター(プログラム)がいて、そいつがパイプ経由で二つのプログラムに入力を与え、
結果判定などをやってる。なんで標準入出力でOK

760 :デフォルトの名無しさん:05/02/01 05:23:45
>>759
おれがcygwinだから駄目なのか?
stdinだと普通に読み込めない・・・

761 :デフォルトの名無しさん:05/02/01 05:25:15
>>760
むー、cygwin環境では試してないや。こっちはFreeBSD。

762 :デフォルトの名無しさん:05/02/01 05:26:21
>>761
たぶん駄目だね。共有メモリ上でやってるみたいだし。
cygwinは共有メモリは無理なんだ。
がんばってくだちぃ。寝ますノシ

763 :デフォルトの名無しさん:05/02/01 05:54:34
オツカレ

764 :デフォルトの名無しさん:05/02/01 07:59:12
1] 授業単元: C++
[2] 問題文(含コード&リンク):
Walking Around Manhattan
プログラムは
1.ユーザーに始めと終わりのStreetを聞く。
2.ユーザーに始めと終わりのAvenueを聞く。
3.どれだけのブロックを歩いたのか表示させる。
Number of blocks = number of avenues to travel + number of street to travel.
4.歩いた合計のFeetを表示させる。(BLOCK_SIZEを定数とする)
Number of streets to travel = |starting street number - ending street number|
Number of avenues to travel = |starting avenue number - ending avenue number|
5.三平方の定理 straight line distance = sqrt(number of streets^2 + number of avenue^2)を使って直線の距離を算出する。(始めから、最終ポイントまでの直線距離。)
6.二つの距離の差を計算し、算出する。
表示されるのは
−--------------
What street are you starting on?
What street are you ending on?
What avenue are you starting on?
What avenue are you ending on?

This trip is ## blocks, or ## feet.
The straight line distance would be ## feet.
The difference is ## feet.
----------------
*## はそれぞれの答え。
[3] 環境 Codewarrior v9.2
 [3.1] OS: XP SP2
 [3.2] コンパイラ(バージョン): Codewarrior v9.2
 [3.3] 言語:C++
[4] 期限:2005年二月三日まで
まだまだ、勉強中です。よろしくお願いします。

765 :デフォルトの名無しさん:05/02/01 08:25:26
中学生でも出来る問題だぞ
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define BLOCK_SIZE 500
int question(char *sa, char *se, double *pd)
{
printf("What %s are you %s on?", sa, se);
return scanf("%lf", pd);
}
int main(void)
{
double ss, es, sa, ea, nst, nat, nb, tf, sld;
question("street", "starting", &ss);
question("street", "ending", &es);
question("avenue", "starting", &sa);
question("avenue", "ending", &ea);
tf = (nb = (nst = fabs(ss - es)) + (nat = fabs(sa - ea))) * BLOCK_SIZE;
sld = sqrt(nst * nst + nat * nat) * BLOCK_SIZE;
printf("This trip is %2.0f blocks, or %2.0f feet.\n", nb, tf);
printf("The straight line distance would be %2.2f feet.\n", sld);
printf("The difference is %2.2f feet.\n", tf - sld);
return 0;
}


766 :デフォルトの名無しさん:05/02/01 09:06:11
>>742
サンプルの中に pl_sparrow.rb とか pl_owl とかあるやん?
それでリーグ戦した結果が README に書いてあるやん?
一番強いやつを C に移植したらええんちゃう?

[ 1] win=3919 (first=1978, second=1941): pl_owl.rb
[ 2] win=3652 (first=1891, second=1761): pl_bulbul.rb
[ 3] win=3538 (first=1836, second=1702): pl_swift.rb
[ 4] win=3483 (first=1806, second=1677): pl_woodpecker.rb
[ 5] win=3139 (first=1660, second=1479): pl_kite.rb
[ 6] win=2176 (first=1108, second=1068): pl_chicken.rb
[ 7] win=1093 (first= 569, second= 524): pl_sparrow.rb

[ 1] *** O(566) O(581) O(552) O(560) O(778) O(882)
[ 2] X(434) *** X(494) O(555) O(531) O(766) O(872)
[ 3] X(419) O(506) *** X(483) O(615) O(687) O(828)
[ 4] X(448) X(445) O(517) *** O(555) O(710) O(808)
[ 5] X(440) X(469) X(385) X(445) *** O(592) O(808)
[ 6] X(222) X(234) X(313) X(290) X(408) *** O(709)
[ 7] X(118) X(128) X(172) X(192) X(192) X(291) ***


767 :742:05/02/01 09:10:40
むきー、トラブル処理して殆どできなかったorz

この課題、今日の14時までなんだよね。もうちょっと早く聞いて欲しかったなあ。
もうだめ、眠気最高潮なんで寝ます。とはいえ面白そうだから最後まで解いてみるけど、
絶対間に合わないよな。ごめんな。

768 :752:05/02/01 09:12:59
う。自分の番号間違った。
>>767はs/742/752/でお願いします。
ホントごめん。

769 :デフォルトの名無しさん:05/02/01 09:21:26


770 :デフォルトの名無しさん:05/02/01 09:23:27
>>754
なんであそこに a.out があるのかと小一時間(w

771 :デフォルトの名無しさん:05/02/01 11:52:46
これは 教授 の 自演 だな

772 :デフォルトの名無しさん:05/02/01 18:18:39
【質問テンプレ】
[1] 授業単元:C++言語
[2] 問題文(含コード&リンク):
   1、サイズはデフォルトで153600バイト。
   2、指定サイズで複数の出力ファイルに元データを分割出力する。
   3、出力ファイル名の後部に通し番号を付加して、[出力ファイル名]00などとして出力する。
[3] 環境
 [3.1] OS:Windows2000
 [3.2] 開発環境:Visual C++ 6.0
 [3.3] 言語:C++
[4] 期限:明日中
[5] その他の制限:特になし。


勉強して間もないのに初めて仕事を頼まれましたが、自分じゃどうしたらいいのか分かりません・・・
急で申し訳ありませんがどなたか宜しくお願い致します。

773 :デフォルトの名無しさん:05/02/01 18:20:01
>>772
元データどうやって渡すんだ?

774 :デフォルトの名無しさん:05/02/01 18:26:14
>>772
ソレで給料貰えるんだ・・・
給料泥棒と呼ばれないうちに、なんとかしようね

775 :デフォルトの名無しさん:05/02/01 18:32:07
>>772
http://ftp.gnu.org/pub/gnu/textutils/textutils-2.1.tar.gz

Version 2.1 (stable) released on 2002-08-06
Licensed under The GNU General Public License, Version 2 or later.
This is a GNU package.

The GNU General Public License Version 2
http://www.fsf.org/licenses/info/GPLv2orLater.html

776 :デフォルトの名無しさん:05/02/01 19:23:34
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
連立1次方程式
5x-y=4
x+y=6
を初期値x=0,y=0として、ヤコビ法で求めよ。
計算回数    x y
0 0 0
1 0.8 1.2
: : :
10 1.0000001 1.000001
実行すると上記のような表が出てくるようにしてください。
[3] 環境
 [3.1] OS:winxp
 [3.2] コンパイラ(バージョン):bcc32
 [3.3] 言語:C
[4] 期限:2005年2月10日
[5] その他の制限:
よろしくお願いします

777 :デフォルトの名無しさん:05/02/01 19:38:10
計算回数    x y
0 0 0
1 0.8 1.2
: : :
10 1.0000001 1.000001
>実行すると上記のような表が出てくるようにしてください。

本当にこんな表でいいのか?

778 :デフォルトの名無しさん:05/02/01 19:56:14
>>772
昔フロッピーディスクに入り切らないファイルを
そうやって分割するソフトがあった。


779 :デフォルトの名無しさん:05/02/01 21:00:15
昔はWindowsがフロッピー数十枚に収められてたなぁ・・・

780 :772:05/02/01 21:37:06
皆さん有難うございます。
入門書籍で一通り勉強したレベルの自分でも出来そうならなんとか頑張ってみます。

781 :776:05/02/01 23:08:08
>>777
正確に書くと、
計算回数    x y
     0 0 0
     1 0.8 1.2
     2 1.04 1.04
     3 1.008 0.992
     4 0.9984 0.9984
     5 0.99968 1.00032
     6 1.000064 1.000064
     7 1.0000128 0.9999872
     8 0.9999974 0.9999974
     9 0.9999995 1.0000005
    10 1.0000001 1.0000001
です。すみませんでした。改めてよろしくお願いします。

782 :776:05/02/01 23:16:07
ぜんぜん正確じゃない orz
出直してきます。

783 :776:05/02/01 23:40:55
すみません。自己解決しました。ありがとうございました。

784 :デフォルトの名無しさん:05/02/02 01:40:07
>>783
まあ、小言を言わせてもらうと、
自己解決したときにはどうやって解決したかくらい書き残していった方がいいよ。

785 :デフォルトの名無しさん:05/02/02 01:41:45
[1] 授業単元:C言語

以下の仕様に基づいて,キューにデータ(頂点番号)を追加する関数
void enqueue(int dt)
を定義せよ.
(必要に応じて,ヘッダー・ファイルをインクルードすること.)
* 関数名:enqueue
* 仮引数int dt:キューに追加するデータとして,int型のデータ(頂点番号)を受け取る.
* 戻り値:なし.
* 機能:int型のデータ(頂点番号)を追加・取り出しできるキューに,頂点番号を追加する.
仮引数として受け取ったint型のdtをメンバNumの値としてもつ NODE型のノードを,連結リストの先頭ノードとして追加すること.
また,キューの先頭ノードを指すポインタとして,
以下のグローバル変数を使用すること(必要であれば初期化すること).
NODE *q_head;


786 :デフォルトの名無しさん:05/02/02 01:42:59
以下の仕様に基づいて,キューからデータ(頂点番号)を取り出す関数
int dequeue()
を定義せよ(必要に応じて,ヘッダー・ファイルをインクルードすること.).
* 関数名: dequeue
* 仮引数:なし.
* 戻り値 (int型):キューのデータ構造に基づいて取り出されるint型のデータ(頂点番号)
※キューにデータがない場合,他の関数および機能の実行に影響のない戻り値を返すこと.
* 機能:呼び出し側にキューから取り出したデータ(頂点番号(int型))を返す.
上記のvoid enqueue(int dt)のデータ構造に基づいて,連結リストの操作をおこない,
末尾ノード(ノードがひとつの場合は先頭ノード)を取り出すこと.



787 :デフォルトの名無しさん:05/02/02 02:06:13
簡単すぎて答える気にならない。もっと難しいのやりたいなぁ

788 :デフォルトの名無しさん:05/02/02 02:08:25
あー

789 :776:05/02/02 02:51:30
>>783さん
人を装うのはやめてください。
自己解決はしていないのですが、あらためて書き直します。
ご迷惑おかけしました。


790 :デフォルトの名無しさん:05/02/02 04:50:27
>>787
暇だったらこれやれば? >>742


791 :デフォルトの名無しさん:05/02/02 05:57:56
>>789
ヤコビ法ならこれでどうかな?意見求む。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/181.txt

792 :デフォルトの名無しさん:05/02/02 08:25:42
[1] 授業単元: C言語演習
[2]ユーザの入力によるファイル名からデータをを読み込む。
読み込まれたデータを利用し、適当な処理する。
処理したデータをソートし、データを別のファイルへ書き込む
[3] 環境
OS:turbolinux 
言語:C
[4] 期限:2005年2月5日14:00まで

全然わかりません;どなたかよろしくお願いいたしますorz

793 :デフォルトの名無しさん:05/02/02 09:42:11
データって数値なのかな

794 :デフォルトの名無しさん:05/02/02 10:26:44
>>792
自分で作った問題でないなら元の文をそのまま晒せ


795 :デフォルトの名無しさん:05/02/02 10:55:01
すいません、C++の宿題をやっているのですが、
intを2進法表示でstringに保存する方法はありませんか?!
かなり困っています。助けてください!

よろしくお願いします。

796 :デフォルトの名無しさん:05/02/02 11:02:23
>>795
このあいだ、このスレでやってたな

797 :776:05/02/02 11:06:24
>>791
ありがとうございました。

798 :デフォルトの名無しさん:05/02/02 11:08:53
>>795
ほい。激しく糞なんで提出したら怒られるかも知れないけど。
#include <iostream>
#include <string>
#include <sstream>
#include <bitset>

template <class Target, class From>
Target binary_cast(From from)
{
    std::bitset<32> bits(from);

    std::stringstream ss;
    ss << bits;

    Target target;
    ss >> target;

    return target;
}

int main()
{
    std::string s(binary_cast<std::string>(32767));

    std::cout << s << std::endl;

    return 0;
}

799 :デフォルトの名無しさん:05/02/02 11:37:23
#include <iostream>
#include <string>
#include <sstream>
#include <bitset>
#include <limits>

template <class Target, class Source>
Target binary_cast(Source source)
{
    std::bitset<std::numeric_limits<Source>::digits> bits(source);

    std::stringstream ss;
    ss << bits;

    Target target;
    ss >> target;

    return target;
}

こっちの方がまだいいかも知れない

800 :デフォルトの名無しさん:05/02/02 13:24:53
>>792
適当な処理って何よ…

801 :デフォルトの名無しさん:05/02/02 13:34:38
>>793データは個人情報みたいなものです。名前とか年とか身長とか
の並んだデータです.

>>794
宿題ではありますが元の文章というものがネット上にありません;
分かり難い文章で申し訳ありません


>>798,799
コンパイルできません;こうエラーがでます
test.c:1:21: iostream: そのようなファイルやディレクトリはありません
test.c:2:18: string: そのようなファイルやディレクトリはありません
test.c:3:19: sstream: そのようなファイルやディレクトリはありません
test.c:4:18: bitset: そのようなファイルやディレクトリはありません
test.c:5:18: limits: そのようなファイルやディレクトリはありません
test.c:7: error: 構文解析エラー before '<' token
test.c:15: 警告: data definition has no type or storage class
test.c:16: error: 構文解析エラー before '>>' token
上の五つのファイル名のものを作りましたが全然反応してくれません
実行したのは下の方です。上の方はもっとエラーがでました;
よろしくお願いします!!

802 :デフォルトの名無しさん:05/02/02 13:39:21
>・・・とか・・・とか・・・とか
どうせいっちゅーねん

803 :デフォルトの名無しさん:05/02/02 13:43:07
>>801 = >>792だと思うが
>>801 != >>795な気がする…っとまぁ、ツッコミどころはむしろ
俺はエスパーじゃねぇんだから>>792の文じゃ
・読み込むファイルの形式
・どんな適切な処理を施すのか
この二点が主にわかんねぇよ
問題文の全文を書け

804 :デフォルトの名無しさん:05/02/02 13:43:31
>>802
読み込むファイルは適当に作ります;
別ファイルを読み込んでソートし別名で書き出しできるようなプログラムを
よろしくお願いいたします


805 :デフォルトの名無しさん:05/02/02 13:43:36
>>801
C++ っつったのはお前だろ

806 :デフォルトの名無しさん:05/02/02 13:49:22
>>805
すみません;自分が頼んだ問題だと勘違いしてましたorz



807 :デフォルトの名無しさん:05/02/02 13:54:08
>>801
C++って言った
コンパイル通らなくてもそれあってるから提出するように

808 :デフォルトの名無しさん:05/02/02 13:54:33
>>804
適当に作るんだな?
つうことはテキストデータじゃなくともいいんだな?
struct{
char name[0x10];
int year;
int height;
};
こんなんが列挙してあるテキストエディタで編集不可のデータでもいいんだな?

809 :デフォルトの名無しさん:05/02/02 14:02:49
union{
char name[0x10];
int year;
int height;
};


810 :デフォルトの名無しさん:05/02/02 14:02:57
>>803
自分で問題を理解せずに質問してしまいすみません;
ファイル形式はtxtで
適切な処理は自分で追加します。
別ファイルを読み込んでソートし別名で書き出しできるようなプログラムを
よろしくお願いいたします
>>808
テキストデータで個人情報みたいなのを作るのでそれをソート
できて別名で書き込めるようお願いいたします




811 :デフォルトの名無しさん:05/02/02 14:30:39
構造体をそのままファイルに出力するのってアラインメントとか大丈夫なの?


812 :デフォルトの名無しさん:05/02/02 14:33:23
別にシステム変わんなければ関係あるまい。
可搬性は低くなるけど。

813 :デフォルトの名無しさん:05/02/02 14:44:27
#include <pshpack1.h>
#include <poppack.h>
ってのがVCだとできたと思うけど…
まぁコンパイラ依存になるかもしんない

814 :デフォルトの名無しさん:05/02/02 16:02:24
>>810
いい加減入力ファイルのフォーマットを決めろ。
そんなこともできないのか?できないなら消えろ。
>>803が言っている意味分からないのか?
ここはエスパー集団の集うスレじゃない。

815 :デフォルトの名無しさん:05/02/02 17:06:45
名前,年齢,身長
でよろしくお願いします
名前でソートできるようお願いします

816 :デフォルトの名無しさん:05/02/02 17:20:25
Linux ってあるし、面倒だし、これでいいよ。あとはbufに読み込め。

for( i = 0 i < size; i++ ) { // 適当な処理
if( buf[i] >= 'A' && buf[i] <= 'Z' )
buf[i] |= 0x20;
}

if( ( fp = popen( "sort > 別ファイル", "w" ) ) ) { // sort
fwrite( buf, 1, size, fp );
pclose( fp );
}

817 :デフォルトの名無しさん:05/02/02 18:12:22
>>801
C++ならtest.cじゃなくてtest.cppにしろ

818 :デフォルトの名無しさん:05/02/02 20:02:36
まぁあれだ恥ずかしくて言いたくないけど
 あ げ

819 :デフォルトの名無しさん:05/02/02 20:53:24
初期的質問すみません。
" 18"のような文字列をint型の18という値にしたいのですが、
どのような方法が理想でしょうか?

820 :デフォルトの名無しさん:05/02/02 20:54:34
ここは宿題スレ
CかC++かもワカラン

821 :デフォルトの名無しさん:05/02/02 20:57:00
>>819
すげー、マジでやる?
最近の、ロボットプログラマーはすごいね

822 :デフォルトの名無しさん:05/02/02 20:58:17
int v;

if (!strcmp(s, " 18")) v = 18;


823 :デフォルトの名無しさん:05/02/02 21:08:15
int main(void){
int i;
char str[16];

str[16]=" 18";
i=18;

return 0;
}

824 :デフォルトの名無しさん:05/02/02 21:25:48
>>819
(1)何も考えずに atoi を使うか。
(2)ちょこっとだけ考えて strtod を使うか。
(3)だいぶ考えて 自作 するか。

おれは(3)を選んだ。関数の戻り値を見て愕然としたからだ。
(1)(2)を使うんなら、できる限りの検証処理を盛り込んでおけ。

825 :デフォルトの名無しさん:05/02/02 21:27:49
>>824
まだ選択肢はあるんだが。

826 :デフォルトの名無しさん:05/02/02 21:46:24
もうちょっとアバウトにsscanfとか

まぁ、私も自作ですね
asciiなら'0'との差を取るだけで出るし

827 :デフォルトの名無しさん:05/02/02 21:46:40
>>822
非常にかっこいいと思う

828 :デフォルトの名無しさん:05/02/02 21:48:02
>>823
>str[16]=" 18";
明らかにお化視衣

829 :デフォルトの名無しさん:05/02/02 21:58:08
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
int i;
char *s[5];
char str[100];
for(i=0;i<5;i++){
scanf("%s", str);
s[i]=(char *)malloc(sizeof(char) * (strlen(str)+1));
strcpy(s[i], str);
printf("%s\n",*(s+i));
}
}

これでprintfを*s[i]にすると、入力の一文字目でエラーがでるんですが、
なぜでしょうか?

830 :デフォルトの名無しさん:05/02/02 21:58:10
#include <stdio.h>
int CharToInt(char c);
void main(){
char st[30],*cp=st;
int n,d=0;
printf("整数文字列を入力");
gets(st);
for (;*cp;cp++){
if (-1!=(n=CharToInt(*cp))){
d=d*10+n;
}
}
printf("%d\n",d);
}
int CharToInt(char c){
char ch='0';
if (c<'0' || c>'9') return -1;
for(;c!=ch;ch++);
return ch-'0';
}

831 :デフォルトの名無しさん:05/02/02 22:06:15
>>829
*s[i]って何型かよく考えよう

832 :デフォルトの名無しさん:05/02/02 22:11:24
ま、普通に考えてboost::lexical_cast<>だろうな。

833 :デフォルトの名無しさん:05/02/02 22:13:03
*(s+i) char*
 s[i] char*
*s[i]  char

834 :デフォルトの名無しさん:05/02/02 22:47:47
>>792=>>815
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct {
    char name[256];
    unsigned age;
    unsigned height;  // cm
} PERSON;
int cmp(const void * e1, const void * e2) {
    const PERSON * p1 = e1;
    const PERSON * p2 = e2;
    return strcmp(p1->name, p2->name);
}
int main(int argc, char ** argv) {
    FILE * in_f, * out_f;
    unsigned n, i;
    PERSON data[256];
    if (argc < 3) return 1;
    if ((in_f = fopen(argv[1], "r")) == NULL) return 1;
    if ((out_f = fopen(argv[2], "w")) == NULL) {fclose(in_f); return 1;}
    for (n = 0; n < 256 && fscanf(in_f, "%256s%u%u", data[n].name, &data[n].age, &data[n].height) == 3; ++n) ;
    qsort(data, n, sizeof(PERSON), cmp);
    for (i = 0; i < n; ++i) 
        fprintf(out_f, "%s %u %u\n", data[i].name, data[i].age, data[i].height);
    fclose(in_f); fclose(out_f);
    return 0;
}

835 :819:05/02/02 23:13:34
自作するとしたら、どういった処理にしますか?
atoiなどは先頭文字を変換するだけなので・・。


836 :デフォルトの名無しさん:05/02/02 23:18:13
先頭文字だけ?

837 :デフォルトの名無しさん:05/02/02 23:20:10
「"  19"のような」と言うのは非常に曖昧なので答えにくいのだが。
次のnumでいいのかな?
num ::= space* digit*
space ::= ' ' | \t
digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'

838 :819:05/02/02 23:24:22
>>837
え〜と、処理の見方がよくわからないのですが、
配列に
char[0]=' ';
char[1]=' ';
char[2]=' ';
char[3]='1';
char[4]='8';
char[5]='0';
のように文字が入っています。

839 :デフォルトの名無しさん:05/02/02 23:24:23
それだと "" も受理されるぞ。


840 :デフォルトの名無しさん:05/02/02 23:29:56
#include <stdio.h>
main(){
int i;
char str[]=" 18";
sscanf(str, " %d", &i);
printf("%d\n", i);
}

841 :819:05/02/02 23:30:19
すいません。
char[5]='\0' の間違いです。

842 :837:05/02/02 23:30:38
ハズイ
num ::= space* (nonzerodigit digit+) | '0'
space ::= ' ' | \t
nonzerodigit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'

843 :デフォルトの名無しさん:05/02/02 23:37:38
>>842
>(nonzerodigit digit+)
(nonzerodigit digit*) では?


844 :デフォルトの名無しさん:05/02/02 23:40:11
>>834
ありがとうございます
非常に勉強になりました
感謝

845 :デフォルトの名無しさん:05/02/03 01:16:40
くそぅまだココの解答者になれるレベルに自分がなっていない…。
もっと精進せねば。

846 :デフォルトの名無しさん:05/02/03 01:35:04
どなたか785と786を解いてもらえないでしょうか


847 :デフォルトの名無しさん:05/02/03 01:42:18
>>845
一生無理だよ、と酷いことを言って競争相手を蹴落とそうとするテスト。

848 :こもん:05/02/03 02:51:16
C++のプログラムで5教科・英語・数学・国語・理科・社会の
50人分一人一人各教科の点数と合計と平均を表示させるプログラムを
2月4日までお願いいたします。


849 :こもん:05/02/03 02:53:13
C++のプログラムで5教科・英語・数学・国語・理科・社会の
50人分一人一人各教科の点数と合計と平均を表示させるプログラムを
2月4日までお願いいたします。


850 :デフォルトの名無しさん:05/02/03 03:05:49
マルチ乙

851 :デフォルトの名無しさん:05/02/03 05:01:57
for(50人分ループ){
合計 = 英語[i] + 数学[i] + 国語[i] + 理科[i] + 社会[i];
printf(フォーマット1, 英語[i], 数学[i], 国語[i], 理科[i], 社会[i]);
printf(フォーマット2, 合計, 合計 / 5);
}


852 :デフォルトの名無しさん:05/02/03 11:10:30
【質問テンプレ】
[1] 授業単元: C++ の入門的なコース
[2] 問題文(含コード&リンク):10進法から2進法、2進法から10進法、
10進法からローマ数字、2進法からローマ数字へ変換するプログラム
[3] 環境
 [3.1] OS: Win XP
 [3.2] コンパイラ(バージョン): すみません、本当に初心者なのでバージョンは
どこを見ればいいのかわかりません。
 [3.3] 言語:C++でお願いします。
[4] 期限:早くに越したことはありません。
[5] その他の制限: Stringは使用禁止とのことです。

よろしくお願いします。


853 :デフォルトの名無しさん:05/02/03 11:35:43
>>852
・変換というのは表示を変更するだけでいいのか
・入出力例を挙げろ

854 :852です。どなたか力を貸してください。:05/02/03 12:11:25
>>853さん、お返事ありがとうございます。
そうです。表示を変更すればいいです。(例12→1100、14→IVX)
実は、途中までのプログラムはできていて、そこに関数を入れるようになっています。

ここの// WRITE THIS の部分を埋めるだけでよいのですが...
数字を一桁ずつ読ませるのか、そのためにどうすればいいのか、
変換できたとして、それを表示するにはどうすればいいのか、などなど
わからないことだらけです。

#include <iostream>
using namespace std;
char menu();
int convert10to2(int n);
void convert10toRom(int n);
int convert2to10(int n);
void convert2toRom(int n);
int convertRomto10(const char * input);
int convertRomto2(const char * input);



855 :デフォルトの名無しさん:05/02/03 12:14:47
// WRITE THIS

856 :852です。どなたか力を貸してください。:05/02/03 12:17:14
int main()
{
char ch;
do
{
ch = menu();
// 10 to 2
if(ch=='1')
{
cout<<"Enter a base10 number: ";
int n;
cin>>n;
cout<<"\n*** "<<n<<" base10 equals "<<convert10to2(n)<<" base2 ***\n\n";
}
// 10 to Rom
else if(ch=='2')
{
cout<<"Enter a base10 number: ";
int n;
cin>>n;
cout<<"\n*** "<<n<<" base10 equals ";
convert10toRom(n);
cout<<" in Roman numerals ***\n\n";
}



857 :デフォルトの名無しさん:05/02/03 12:17:44
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。

858 :852です。長くてすみません。:05/02/03 12:18:56
// 2 to 10
else if(ch=='3')
{
// WRITE THIS
}
// 2 to Rom
else if(ch=='4')
{
// WRITE THIS
}
// Rom to 10
else if(ch=='5')
{
cout<<"Enter a Roman numeral expression: ";
char input[80];
cin>>input;
cout<<"\n*** The expression "<<input<<" in Roman numerals equals "<<convertRomto10(input)<<" Base10 ***\n\n";
}
// Rom to 2
else if(ch=='6')
{
cout<<"Enter a Roman numeral expression: ";
char input[80];
cin>>input;
cout<<"\n*** The expression "<<input<<" in Roman numerals equals "<<convertRomto2(input)<<" Base2 ***\n\n";
}
}while(ch!='q' && ch!='Q');


859 :デフォルトの名無しさん:05/02/03 12:20:10
↓あっそれっもういっちょ

860 :デフォルトの名無しさん:05/02/03 12:20:13
> 実は、途中までのプログラムはできていて、そこに関数を入れるようになっています。
> ここの// WRITE THIS の部分を埋めるだけでよいのですが...
待て、待て。
>>854に書いてあるのはおまいが書いたんじゃなくて「出題者が作ったプログラム」なのか?
だったら出題者を棒で滅多打ちにすべきだ。

861 :デフォルトの名無しさん:05/02/03 12:21:59
なんじゃこりゃーーーーー

862 :859:05/02/03 12:22:26
おいっ!>>860 空気嫁!
すべっちゃったじゃないか!

863 :852です。長くて申し訳ありません。:05/02/03 12:25:37
>>857さん
854に書いたとおり、プログラムはほぼ出来上がっていて、関数のみ入れる形に
なっています。必死になってやっているのですが、数字をどうやって1桁
として扱えばいいのかということがネックになっているかと思います。
あと、申し訳ないのですが、問題のプログラムが、長く、改行も多いので一度では
貼り付けられないのです。
説明不足で申し訳ありませんでした。



864 :デフォルトの名無しさん:05/02/03 12:26:03
そんなコード捨てちまえ

865 :852です。まだあります。:05/02/03 12:27:50
return 0;
}
char menu()
{
char ch;
do
{
cout<<"(1)\tTo convert base10 to base2\n";
cout<<"(2)\tTo convert base10 to Roman numerals\n\n";
cout<<"(3)\tTo convert base2 to base10\n";
cout<<"(4)\tTo convert base2 to Roman numerals\n\n";
cout<<"(5)\tTo convert Roman numerals to base10\n";
cout<<"(6)\tTo convert Roman numerals to base2\n\n";
cout<<"(q)\tTo quit\n\n";
cout<<"==> ";
cin>>ch;
}
while((ch<'1' || ch>'6') && ch!='q' && ch!='Q');
return ch;
}


866 :852です。もうすこしです。:05/02/03 12:30:07
int convert10to2(int n)
{
// WRITE THIS
}
void convert10toRom(int n)
{
// WRITE THIS
}
int convert2to10(int n)
{
// WRITE THIS
}
void convert2toRom(int n)
{
// WRITE THIS


867 :852です。もうすこしです。:05/02/03 12:31:33
}
int getValue(char ch)
{
switch(ch)
{
case 'I':
case 'i':
return 1;
case 'V':
case 'v':
return 5;
case 'X':
case 'x':
return 10;
case 'L':
case 'l':
return 50;
case 'C':
case 'c':
return 100;
case 'D':
case 'd':
return 500;
case 'M':
case 'm':
return 1000;
}
return 0;
}


868 :デフォルトの名無しさん:05/02/03 12:31:41
↓あっそれっもういっちょ

869 :852です。これで最後かと。:05/02/03 12:37:43
//ここから先はとくに何もしなくていいとのことです。
int convertRomto10(const char * input)
{
int ans = 0;
while(*input!=0)
{
int value1 = getValue(input[0]), value2 = getValue(input[1]);
if(value1==0)
{
cout<<"That is not a valid Roman numerals expression.\n";
return 0;
}
else if(value1<value2)
{
input+=2;
ans+=value2-value1;
}
else
{
++input;
ans+=value1;
}
}
return ans;
}
int convertRomto2(const char * input)
{
return convert10to2(convertRomto10(input));
}


870 :デフォルトの名無しさん:05/02/03 12:45:14
↓まだまだいくよー

871 :デフォルトの名無しさん:05/02/03 12:47:15
    _  ∩
  ( ゚∀゚)彡 おっぱい!おっぱい!
  (  ⊂彡
   |   | 
   し ⌒J

872 :デフォルトの名無しさん:05/02/03 12:53:24
【アップローダー】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)

いい加減にしろこの馬鹿

873 :デフォルトの名無しさん:05/02/03 12:54:56
まあなんだ、そういうことだ、
ぼるじょあ、頼んだぞ

874 :デフォルトの名無しさん:05/02/03 12:56:19
とんでもない糞野郎がきたな

875 :852です。:05/02/03 12:58:22
>>872さん
すみません。注意不足でした。

876 :デフォルトの名無しさん:05/02/03 13:00:00
まぁうpしたところで
質問に答えるやつはいないんだけどな。
長すぎると

877 :852です。:05/02/03 13:00:08
>>872さん
すみません。注意不足でした。

878 :デフォルトの名無しさん:05/02/03 13:07:15
最初からろだに上げていれば、部分部分はやってくれる人はいただろうに
さすがにこの状況じゃ誰ももう答えてはくれんよ

879 :852です。ありがとうございました。:05/02/03 13:18:54
そうですか。自分の未熟さがふがいないばかりです。
お時間とらせて申し訳ありませんでした。
失礼します。


880 :デフォルトの名無しさん:05/02/03 14:17:54
>>852
でもまぁなんだとりあえずupろだにあげとけ。
気が向いたらやるかもしれんから。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm


881 :デフォルトの名無しさん:05/02/03 14:19:44
881

882 :デフォルトの名無しさん:05/02/03 16:35:53
ねむひ。
ヒマ・・・。
簡単そうな問題ぷりーづ。

883 :デフォルトの名無しさん:05/02/03 16:43:21
1に7を足すには?

884 :デフォルトの名無しさん:05/02/03 16:50:22
884

885 :デフォルトの名無しさん:05/02/03 16:52:45
むつかしそぉだ>883
#include <stdio.h>
#include <stdlib.h>
int nstack = 0;
double stack[100];
void push(doble v) {if (nstack < sizeof(stack)/sizeof(stack[0])) stack[nstack++] = v; else exit(2); }
double pop(if (nstack > 0) {return stack[--nstack];} else exit(2); }
void print_stack(void) {int i = 0; for (i = 0; i < nstack; i++) printf("%f\n", stack[i]); }
void add(void) {push(pop()+pop())};
int main(void) {push(1); push(7); add(); print_stack(); return 0};




886 :デフォルトの名無しさん:05/02/03 19:09:17
int main(){printf("%d+%d=%d"1,7,25 / 3); return 0;}

887 :デフォルトの名無しさん:05/02/03 19:19:40
効率のいい素数を求めるプログラム

888 :デフォルトの名無しさん:05/02/03 19:34:54
>>887
http://ja.wikipedia.org/wiki/AKS%E7%B4%A0%E6%95%B0%E5%88%A4%E5%AE%9A%E6%B3%95

アルゴリズムがわかっているので簡単に実装できる。
ガンガレ

889 :デフォルトの名無しさん:05/02/03 19:42:43
>>888
このアルゴリズムは実装が要だぞ。
実装によって速さが全然違う。

890 :デフォルトの名無しさん:05/02/03 22:38:41
AKSはまだオーダーの係数がでかすぎて使い物にならんだろ。

>>887
Lagarias‐Miller‐Odlyzko algorithmの反転。

891 :1/2:05/02/04 00:52:58
[1] 授業単元: C言語入門
[2] 問題文:(1)減算関数(sub)の動作原理(なぜこのやりかたで減算が
  できるのか)について説明せよ。(下に示すプログラム)
  (2)除算のアルゴリズムを考えてわかりやすく示せ。
  Cのプログラムを書く必要はないが,アルゴリズムの説明に加えて
  それをプログラムとして実装した場合は評価する。
  ただし,プログラムのみの提出は認めない。

(1)の減算のアルゴリズム

void neg (int x[], int a[]) {
int carry = 1;
int i;
for (i = 0; i< SIZE; i++) {
int z = BASE - 1 -x[i] + carry;
a[i] = z % BASE;
carry = z / BASE;
}
}


void sub (int x[], int y[], int a[]) {
static int z[SIZE];
neg(y, z);
add(x,y,a);

892 :2/2:05/02/04 00:54:28
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:2005年2月7日8:00まで のいずれか
[5] その他の制限:(1)はx+(-y)=x-yという解答ではなく、どのような過程を経て
その状態までたどり着いたかの説明が求められています。(2)はa / b;という答え
では駄目だそうです。お願いします。

893 :デフォルトの名無しさん:05/02/04 02:17:41
add(x, z, a);

894 :デフォルトの名無しさん:05/02/04 02:21:02
除算はニュートン法か?
divide and correct は漏れがやるとニュートンより遅かったんだよなぁ…

895 :デフォルトの名無しさん:05/02/04 04:07:45
すみません、以下の課題がどうにもお手あげです。どうかよろしくお願いします。
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク)
氏名  性別 年齢 電話番号 メルアド
Kinniku m  20  000-000 xxxx@xxxxxx
Maccho  f  21  111−111 xxxx@xxxxxx
@このような一覧を5人程度作り印刷をせよ
A氏名の頭文字を読み込み、該当する者のデータを印刷せよ

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] 言語:C
[4] 期限:明日まで
お願いします


896 :デフォルトの名無しさん:05/02/04 07:11:56
明日って土曜日?

897 :デフォルトの名無しさん:05/02/04 08:39:54
>>891
(1)このプログラムでは配列をBASE進数、SIZE桁の符号なし数、最下位桁を添え字0として扱っている。
桁固定であふれたぶんを無視すれば、一般に、
・BASE進数のBASE-1の補数+1は、BASE進数のBASEの補数となる。
・BASE進数のBASEの補数を加算することは、減算に相当する。
ため、関数sub()は減算として動作する。

(2)遅い方法だが・・・
a.商=0
b.割られる数が割る数以上なら、割られる数から割る数を引き、商を+1する。割られる数が割る数未満になるまでbを繰り返す。
c.bから抜けた時点で商と余り(割られる数)が得られる。

898 :デフォルトの名無しさん:05/02/04 08:44:36
>>895
(1)
#include <stdio.h>
int main(void) {int c; while ((c = getchar()) != EOF) { putchar(c); } return 0;}

(2)
#include <stdio.h>
int main(int argc, char *argv[]) {char line[1000]; if (argc != 2) exit(2); while (gets(line)) {if (argv[1][0] == line[0]) puts(line);} return 0;}

899 :デフォルトの名無しさん:05/02/04 09:49:08
ブラウン運動を非整数階微積分するプログラムを作成したのですが、上手く動きません。どこがわるいのでしょうか??
実行結果は数値を出し、エクセルでグラフ化しています。(window.hが使えないため)
#include <stdio.h>  #include <stdlib.h>
#include <time.h>  #include <math.h>
#define KMAX 100  #define XMAX 300
#define PI 3.14159265358979323846
double gar()
{double r = 0.0;
int i;
for(i = 0; i < 10; i++){r += ((double)rand() / RAND_MAX) - 0.5;}
return r;}
int main(void)
{int x, k;     float d; scanf("%f",&d);
double ek = PI * 2.0 * 0.7 / XMAX; double a = 5.0 – 2*d;
double f[XMAX];  double g[KMAX];
srand((unsigned)time(NULL));
for(k = 1; k < KMAX; k++){
g[k]=pow(( ek * rk ),-a/2);}
for(x = 0; x < XMAX; x++){  f[x] = 0.0;
for(k = 1; k < KMAX; k++){  double kx = ek * rk * x;
f[x] = f[x]+g[k]*(gar() * cos(kx) - gai() * sin(kx));}
printf("%g\n",f[x]);}
}

900 :デフォルトの名無しさん:05/02/04 10:12:01
#include <stdio.h>  #include <stdlib.h>
#include <time.h>  #include <math.h>
#define KMAX 100  #define XMAX 300
ここがわるい

901 :デフォルトの名無しさん:05/02/04 10:14:15
C++言語って何て読むんですか?
しーぷらすぷらすげんご?
しーだぶるぷらすげんご?
それとも他に・・・

902 :デフォルトの名無しさん:05/02/04 10:16:05
しーぷらすぷらすげんご

903 :899:05/02/04 10:25:54
>900さん
なんで定義がわるいのですか??
どうか教えてください。

904 :デフォルトの名無しさん:05/02/04 10:36:46
しーぷらぷら

905 :デフォルトの名無しさん:05/02/04 10:37:28
コンパイルできないコードは実行できません

906 :デフォルトの名無しさん:05/02/04 10:37:41
>>899
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:

907 :899:05/02/04 10:45:45
>906
すいませんでした。
【質問テンプレ】
[1] フラクタル幾何学
[2] 長くて書けないので899を参照して下さい。
[3]
 [3.1] OS: windows
 [3.2] gcc
 [3.3] C言語
[4] 期限:2005年02月05日まで/無期限
です。
コンパイルはできるのですが、実行結果が違ってしまいます。
[5] windows.hが使えません。

908 :891-892:05/02/04 10:47:31
>897
ありがとうございます!

909 :デフォルトの名無しさん:05/02/04 11:07:16
期限:2005年02月05日まで/無期限
って何だ

910 :デフォルトの名無しさん:05/02/04 11:08:34
>>907
未定義のシンボル rk(関数 main() )
未定義の関数 'gai' を呼び出した(関数 main() )

911 :899,907:05/02/04 11:14:21
>>910
すいません。移す時にミスをしました。
rk=k gai=garでした。
試行錯誤しているうちに変になってしまいました。

912 :デフォルトの名無しさん:05/02/04 12:44:53
>>911
なんかバグだらけだから一度きちんとコンパイルできたものをアップローダに上げない?
Typoをいちいち修正するのめんどくさいよ。

913 :ホルモン:05/02/04 15:16:16
[1] 授業単元:プログラミング
[2] 問題文:商品が売れた年は商品の数が倍になります。そうでなかった年は商品の数が13個減ります。商品は1個から始まり、1年目で2個、2年目で4個、3年目で8個になりました。ある年でちょうど100個になりましたが、それは最も早くて何年目のことでしょう。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年2月9日17:00まで
[5] その他の制限:2分木(線形リスト)を使うこと、途中経過も表示すること。

914 :デフォルトの名無しさん:05/02/04 15:28:30
>>913
>2分木(線形リスト)
ってどういうことだ?
親が2つの子のポインタを持ってるってこと?


915 :デフォルトの名無しさん:05/02/04 15:35:57
>>914
売れた場合と売れなかった場合ということだろう。

916 :デフォルトの名無しさん:05/02/04 15:38:26
>>915
いや,それは分かるけど,
2分岐をリストで表現して良いことある?
配列でいんじゃねーの?

917 :ホルモン:05/02/04 15:41:58
最短経路を求める問題なので二分木探索がいいようなのですが・・・

918 :デフォルトの名無しさん:05/02/04 15:45:30
>>917
オレなら幅優先探索でいくけどな。
二分探索木はちょっと書くのがめんどくさい。


919 :ぽろじょあ ◆niBmDfC40k :05/02/04 18:18:55
( .3.) ヌェー  マルェー
ぽろじょあの登場だYO

名前欄に「ぽろじょあ#ぽろっぽ」って書けば、キミも今日から ぽろじょあ◆niBmDfC40kだYO!


*ぽろじょあ◆niBmDfC40kはみんなでコテハンだYO!
*ぽろじょあ◆niBmDfC40kはいつだって全力投球かもYO!!
*ぽろじょあ◆niBmDfC40kは共同体で連続体で群生体かもしれないYO
*ぽろじょあ◆niBmDfC40kはみんななれるからイイぽろじょあばっかりだYO
*ぽろじょあ◆niBmDfC40kは2ちゃんねるの人気者かもしれないYO
*ぽろじょあ◆niBmDfC40kはエムエクース、ニーは分かるけど聞かないでYO!

920 :デフォルトの名無しさん:05/02/04 21:03:54
>>913
#include <stdio.h>
int main(void)
{
printf(" 1年目 2\n");
printf(" 2年目 4\n");
/* ... */
printf("10年目 ... 100\n");
return 0;
}

マジメに2分木+幅優先ってゆーのわ・・・デモンストレーション用だわ・・・
配列に登録データをノードにすりゃ、出来るだろーけど、メンドイ。

921 :デフォルトの名無しさん:05/02/04 21:05:07
総当たりでがん枯れ

922 :デフォルトの名無しさん:05/02/04 21:05:53
アルファ・ベータ狩りまで期待していないw

923 :デフォルトの名無しさん:05/02/04 21:10:51
手でも総当りできるっしょ・・・深さ10で答えでるし。>>921
ゲーム探索木じゃねーってばよ。>>922

924 :デフォルトの名無しさん:05/02/04 22:44:11
[1] 授業単元:C言語

1.以下の仕様に基づいて,キューにデータ(頂点番号)を追加する関数
void enqueue(int dt)
を定義せよ.
(必要に応じて,ヘッダー・ファイルをインクルードすること.)
* 関数名:enqueue
* 仮引数int dt:キューに追加するデータとして,int型のデータ(頂点番号)を受け取る.
* 戻り値:なし.
* 機能:int型のデータ(頂点番号)を追加・取り出しできるキューに,頂点番号を追加する.
仮引数として受け取ったint型のdtをメンバNumの値としてもつ NODE型のノードを,連結リストの先頭ノードとして追加すること.
また,キューの先頭ノードを指すポインタとして,
以下のグローバル変数を使用すること(必要であれば初期化すること).
NODE *q_head;

2.以下の仕様に基づいて,キューからデータ(頂点番号)を取り出す関数
int dequeue()
を定義せよ(必要に応じて,ヘッダー・ファイルをインクルードすること.).
* 関数名: dequeue
* 仮引数:なし.
* 戻り値 (int型):キューのデータ構造に基づいて取り出されるint型のデータ(頂点番号)
※キューにデータがない場合,他の関数および機能の実行に影響のない戻り値を返すこと.
* 機能:呼び出し側にキューから取り出したデータ(頂点番号(int型))を返す.
上記のvoid enqueue(int dt)のデータ構造に基づいて,連結リストの操作をおこない,
末尾ノード(ノードがひとつの場合は先頭ノード)を取り出すこと.

提出期限は明日月曜までです。よろしくお願いします

925 :デフォルトの名無しさん:05/02/04 22:45:29
明日月曜日じゃない、月曜までです;;

926 :デフォルトの名無しさん:05/02/04 23:09:14
で、その場合、デスプレースめんと許すか?

927 :デフォルトの名無しさん:05/02/04 23:15:41
>>924
#include <stdio.h>
typedef struct NODE NODE;
struct NODE { int Num; NODE *next; };
NODE *q_head = NULL;
void enqueue(int dt) {
NODE *p = (NODE *) malloc(sizeof(*p));
if (p == NULL) exit(2);
p->Num = dt;
p->next = q_head;
q_head = p;
}
int dequeue(void) {
NODE *p, **prev;
int dt;
if (q_head == NULL) return 0;
for (prev = &q_head, p = q_head; *p; prev = &p->next; p = p->next) ;
*prev = NULL;
dt = p->Num;
free(p);
return dt;
}

928 :質問:05/02/05 01:25:30
[1] 授業単元: OS
[2] 問題文(含コード&リンク):
ユーザーからコマンドプロンプトの入力を求めてそれを実行する、という部分なのですが、
なにやら昔にやった覚えがあるのですがどうしても思い出せません。
例"copy initial destination"のように、ユーザーがEnterを入力するまでのラインを受け取り、
ソレを"copy","initial","destination"などの各個の文字列として保存したいのです。
よろしくお願いします
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ(バージョン): G++
 [3.3] 言語:できればCでお願いします。
[4] 期限:2004年2月7日まで
[5] その他の制限:

929 :デフォルトの名無しさん:05/02/05 01:34:24
>>928
fgets
strtok


930 :デフォルトの名無しさん:05/02/05 01:37:43
あらま、簡単な
たん、
FOR EACH ARGUMENTO DO PRINNT LN;


931 :928:05/02/05 01:58:37
あーそうだ、strtokでした。
1年触んないとすっかり忘れるモンですね。
ありがとうございました。

932 :ホルモン:05/02/05 09:33:12
913なんですが、線形リストを使うのが条件なので線形リストを使ったプログラムでぜひお願いします。

933 :デフォルトの名無しさん:05/02/05 14:05:41
>2分木(線形リスト)
ってどういうことだ?

934 :デフォルトの名無しさん:05/02/05 18:07:37
おまいらどうして期限ギリギリになって出してくるんだ?
どうせ丸投げするんだったら、もっと早く出してこいよ。

935 :デフォルトの名無しさん:05/02/05 18:33:03
出された日にここへ書き込む俺を見習え

936 :デフォルトの名無しさん:05/02/05 18:36:21
そうだ。どうせ無能なんだから、935みたいに自分の能力に
見切りを付けて即日に出せ。935を見習え。

937 :デフォルトの名無しさん:05/02/05 18:41:33
自我自賛?

938 :デフォルトの名無しさん:05/02/05 18:44:27
いや皮肉

939 :デフォルトの名無しさん:05/02/05 18:55:05
どうせ釣りじゃないのか?

940 :デフォルトの名無しさん:05/02/05 18:58:27
よろしくお願いします。
専門学校の住所録作成の課題です。
友人に助けてもらいながら進めていたのですが、行き詰まってしまいました。

[1] 授業単元:プログラミング基礎

[2] 問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

no184 9641のソースです。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):BorlandC++
 [3.3] 言語:C

[4] 期限:2005年2月13日まで

[5] その他の制限:特になし。

住所録の機能のうち検索、削除、追加、全表示はなんとかできたのですが、
ファイルを使った関数saveとloadが作れないでいます。
ソースの中では{未完}と書いてあります。
講師にヒントとしてfwrite関数を使うよう言われているんですが、イマイチうまくいきません。
ファイルに書き込むsave関数と読み込みのload関数を作っていただきたいです。

よろしくお願いします。

941 :デフォルトの名無しさん:05/02/05 19:00:02
ある程度考えたが、出来そうにないと悟ってここに来る奴
何もせず、出されたその日にここに来る奴
直前まで考えたが、結局出来ずにここに来る奴
直前まで何もせず、前日辺りに焦ってここに来る奴

下に行くほど救いようが無い

942 :デフォルトの名無しさん:05/02/05 19:02:23
>>940
問題文&ソースを張ってあるURLを出せよ
一応番号は書かれているが、なんでわざわざ答える側がソースを探しに行かにゃならんのだ

943 :940:05/02/05 19:09:58
>>942
失礼しました。
以下のものです。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=185

元々は友人のソースのコピーだったのですが、色々改変し、自分用にコメントもいれています。
見難いかも知れませんが、よろしくお願いします。

944 :デフォルトの名無しさん:05/02/05 20:24:40
この程度ならテキストにまるまる載ってそうだな。

945 :デフォルトの名無しさん:05/02/05 20:42:58
>>940

int save(Address *ap, int cnt)
{
FILE *fp = fopen("data.bin", "rb");
if (fp == NULL) {
return 0;
}
return write(ap, sizeof(*ap), cnt, fp);
}

int load(Address *ap, int cnt)
{
FILE *fp = fopen("data.bin", "rb");
if (fp == NULL) {
return cnt;
}
return fread(ap, sizeof(*ap), cnt, fp);
}

946 :デフォルトの名無しさん:05/02/05 20:56:30
/* バイナリファイルにする必然性を感じられないのでテキストファイルとして扱う。 */
int save(Address * ap, int cnt)
{
int ic;
FILE * fp = fopen("住所録.txt", "w");
for (ic = 0; ic < cnt; ++ic) {
fprintf(fp, "%s\n%s\n%s\n", ap[ic].Add, ap[ic].Name, ap[ic].Tel);
}
fclose(fp);
return cnt;
}
int load(Address * ap, int)
{
FILE * fp = fopen("住所録.txt", "r");
for (cnt = 0; fscanf(fp, "%50[^\n]%20[^\n]%10[^\n]", ap[ic].Add, ap[ic].Name, ap[ic].Tel) == 3; ++cnt) {
}
fclose(fp);
return cnt;
}
/* そうそう、仕様が明示されていないのでファイル名は固定、エラーチェックも割愛。 */

947 :デフォルトの名無しさん:05/02/05 20:59:53
>>945
・関数名のtype。
・ファイルをクローズしていないから繰り返し操作するといずれ破綻する。
・書き込み失敗時にデータが破棄されてしまうのは如何なものか。
・最大件数くらいチェックしたら?

>>946
・全くエラーチェックしないというのも剛毅だw
・出力は兎も角、入力をそこまでこらなくてもいいのでは?

948 :デフォルトの名無しさん:05/02/05 21:25:45
突っ込みだけですか

949 :デフォルトの名無しさん:05/02/05 21:26:03
>>941
2番目と3番目は順番が逆じゃね?

950 :デフォルトの名無しさん:05/02/05 21:28:25
2番目は
・出来るけど面倒なだけ
・出来ないと分かってるから
にもよるんじゃない

951 :デフォルトの名無しさん:05/02/05 22:02:33
だめな奴は何をやっても
てやつにあてはめると>>941でいいような気もするが

952 :デフォルトの名無しさん:05/02/05 22:20:52
>>943
>自分用にコメントもいれています。

いくつか嘘のコメントが入っていますね。

953 :デフォルトの名無しさん:05/02/05 22:27:56
最悪のパターンですな

954 :デフォルトの名無しさん:05/02/05 22:30:07
無いほうがマシ

955 :945:05/02/05 22:31:14
さあ? コンパイルすらしとらんで、直にここに書いてるから。>>947
いーかげんなんで、直す気はないが、指摘してくれるのは、利用者のためにいいことです。
まーダレか直してくれるっしょ。たたき台程度よ。おいらのは。

956 :940:05/02/05 22:33:04
>>945-947
ありがとうございます。
946さんのやりかたを参考に進めていってます。
とりあえず、コンパイルはできましたがDOS窓からload関数を実行しようとすると
強制終了してしますので、ソースをよく読んでみます。

>>952
探してみます。
コメントのうち自分で書いたのは2割程度なので・・・。

957 :ぼるじょあ@スレ立てお願い 以下テンプレ ◆yBEncckFOU :05/02/05 22:42:07
(・3・)エェー C++房のぼるじょあですYO!わからない宿題を片づけますYO!
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:

【アップローダー】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【歴代スレは>>1-10辺り】
39代目: http://pc5.2ch.net/test/read.cgi/tech/1106650397/
38代目: http://pc5.2ch.net/test/read.cgi/tech/1105541524/
37代目: http://pc5.2ch.net/test/read.cgi/tech/1103913840/
36代目: http://pc5.2ch.net/test/read.cgi/tech/1102753497/
35代目: http://pc5.2ch.net/test/read.cgi/tech/1101568895/
34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/

958 :ぼるじょあ ◆yBEncckFOU :05/02/05 22:42:49
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
1代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html

ではよろしく

959 :デフォルトの名無しさん:05/02/05 23:56:48
そーいや、ぼるじょあになってから、足が遠のいたんだよなー。

960 :デフォルトの名無しさん:05/02/05 23:58:22
ぼるじょあ止めろよ。
C/C++の宿題を片付けます
でいいじゃないか。

961 :デフォルトの名無しさん:05/02/06 00:03:00
実際ぼるじょあでてこねーし

962 :940:05/02/06 00:09:31
>>940>>946氏のお陰でなんとか進めてきました。
しかし、自分なりにいじってみたのですがload関数がうまくいきません。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=185
>>942を改変したものです。

save関数は正常に動くのですが、load関数が動きません。
コンパイルはされるのですが、DOS窓の画面からsave関数を実行しようとすると
強制終了してしまいます。

何度も申し訳ありませんが、よろしくお願いします。

963 :つーか、宿題じゃないだろ:05/02/06 00:12:26
>>962
最後のforの{}を消すなら;で。

964 :940:05/02/06 00:20:55
>>963
ありがとうございます。
早速修正しました。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=185

965 :デフォルトの名無しさん:05/02/06 01:59:51
次スレはどうすんのかね

966 :ぼるじょあ ◆yBEncckFOU :05/02/06 02:01:42
ぼるじょあ!ぼるじょあ!

967 :940:05/02/06 02:26:20
皆さんの助けでなんとかで出来上がりました。
ありがとうございました。

968 :デフォルトの名無しさん:05/02/06 02:35:07
スレ立ててきます
しばらくお待ちを

969 :デフォルトの名無しさん:05/02/06 02:40:40
ttp://pc5.2ch.net/test/read.cgi/tech/1107625122/
立てた。

970 :デフォルトの名無しさん:05/02/06 03:30:03
ほげほげ

971 :デフォルトの名無しさん:05/02/06 10:01:31
んで、未解決の問題ってば?
それとか、月曜までの宿題とかは?
夜駆け込みだと、手伝えないぞ。


972 :デフォルトの名無しさん:05/02/06 11:23:26
プログラミング入門のテスト問題。
文字列abcdefを配列に入力し、配列の中で小文字を大文字に変換した後、
ABCDEFと出力するプログラムを作成せよ。a=97,A=65である。
よろしくお願いします。

973 :デフォルトの名無しさん:05/02/06 11:31:16
>>972
int main () {
int i;
char str[] = "abcdef";

for (i = 0; i < sizeof(str)/sizeof(char); ++i)
switch (str[i]) {
case 'a':
str[i] = 'A';
break;
case 'b':
str[i] = 'B';
break;
case 'c':
str[i] = 'C';
break;
case 'd':
str[i] = 'D';
break;
case 'e':
str[i] = 'E';
break;
case 'f':
str[i] = 'F';
break;
}
printf("%s\n", str);
}


974 :デフォルトの名無しさん:05/02/06 11:33:43
a=97って…十進数だな

975 :デフォルトの名無しさん:05/02/06 11:42:04
#include <stdio.h>
int main()
{
  int i;
  char str[] = "abcdef";

  for(i = 0; i < sizeof(str); i++)
    str[i] -= 97 - 65;
  puts(str);
  return 0;
}

976 :デフォルトの名無しさん:05/02/06 13:08:50
>>975
sizeofじゃなくてstrlenね
あとstr[i] -= 97 - 65よりも
stri[i] = str[i] - 'a' + 'A'のほうが良いよ

977 :デフォルトの名無しさん:05/02/06 13:19:23
char *strtoupper(char *s) {
  char *ret = s;
    while (*s) {
      if (*s >= 'a' && *s <= 'z')
        *s += 'A' - 'a';
      s++;
    }
   return ret;
}
うーん。入力部は任せるとして。ASCIIコードを想定。(SJISやJISを入れるとイカレル)

978 :972:05/02/06 14:07:52
答えて下さった方ありがとうございます。
自分はこんな感じで書いてしまいました。
#include <stdio.h>
main()
{
char s[7]="abcdef";
int i,d=-32;
for(i=0;i<=5;i++)
{
s[i]=s[i]+d;
printf("%c",s[i]);
}
}

979 :デフォルトの名無しさん:05/02/06 15:36:07
>>977
何故retを使う

980 :デフォルトの名無しさん:05/02/06 16:43:33
その方が便利だから

981 :デフォルトの名無しさん:05/02/06 18:27:15
>>949
自分の能力では無理だと気づくのが遅すぎる人は論外かと思う
それぞれ担当部分を分けているとき、直前になって「全然できていない」とか言われるとこっちにしわ寄せが来る
もうちょい早く言ってくれれば、大まかな部分だけを余裕のある奴が手伝って残りを任せるのに

まあそういうことが続くと、手伝う側の人間が潰れてさらに苦しくなるわけだが

982 :デフォルトの名無しさん:05/02/06 21:18:49
>>978
>>973が一番正しい解法だと思うぞ。

983 :デフォルトの名無しさん:05/02/07 03:24:05
EBCDIC

984 :デフォルトの名無しさん:05/02/07 08:42:27
>>979

>>980氏の言うように、便利だから。
char s[] = "abc";
printf("%s\n", strtoupper(s));
とゆーふーに、使えるんで、便利っしょ。
標準ライブラリのstr...系はそういうふうに考えられて作ってあるよん。

985 :デフォルトの名無しさん:05/02/07 10:09:27
>>984 が今日覚えたての知識を披露しております。


986 :デフォルトの名無しさん:05/02/07 10:43:41
Emotional age!

987 :デフォルトの名無しさん:05/02/07 13:42:29
埋めよう。

今日の名言
 寝言は寝て言え

988 :デフォルトの名無しさん:05/02/07 16:39:36
埋めよう。

今日二回目の名言
A「おまえの好きなものってなに?」
B「んっ?俺?え〜っと 女のわがまま かなっ」


989 :デフォルトの名無しさん:05/02/08 06:37:03
静かなる梅

990 :デフォルトの名無しさん:05/02/08 07:05:06
990

991 :デフォルトの名無しさん:05/02/08 07:10:38
991

992 :デフォルトの名無しさん:05/02/08 08:50:17
1000

993 :デフォルトの名無しさん:05/02/08 08:51:10
993

994 :デフォルトの名無しさん:05/02/08 09:08:27


995 :デフォルトの名無しさん:05/02/08 09:09:21


996 :デフォルトの名無しさん:05/02/08 09:09:24
もうそろそろいいか
埋めよう

997 :デフォルトの名無しさん:05/02/08 09:10:17
997

998 :デフォルトの名無しさん:05/02/08 09:10:24


999 :デフォルトの名無しさん:05/02/08 09:11:04
↓↓↓↓↓↓↓↓↓↓

1000 :デフォルトの名無しさん:05/02/08 09:11:04
999

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

266 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)