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

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

C/C++の宿題やらせてください。7代目。

1 :デフォルトの名無しさん:03/05/27 00:43
私はC++房。
今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
5代目(前スレ): http://pc2.2ch.net/test/read.cgi/tech/1051594046/l50
4代目: http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html

ラウンジ:質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html

前スレ 

http://pc2.2ch.net/test/read.cgi/tech/1053045530/l50



952 :デフォルトの名無しさん:03/06/08 01:14
あ、間違えた
Σ| x_i * sin(s) + (y_i - b) * cos(s) |

953 :デフォルトの名無しさん:03/06/08 01:24
>>960
新スレお願いします。

954 :デフォルトの名無しさん:03/06/08 01:33
>>948
for (i = 0; i < N; i++){
wb = wb + pow(h[i] - ave, 2);
}
じゃないの?

955 :デフォルトの名無しさん:03/06/08 01:36
10回の独立な計算とか分散の平均値とかよくわからん。
何がしたいのか詳しく説明して。

956 :デフォルトの名無しさん:03/06/08 02:09
マクスウェル方程式の導出
をプログラムにして

957 :デフォルトの名無しさん:03/06/08 02:18
自然対数をだすプログラムを作成せよ

958 :デフォルトの名無しさん:03/06/08 02:29
log

959 :デフォルトの名無しさん:03/06/08 02:31
ガンダムのプログラム作って

960 :デフォルトの名無しさん:03/06/08 03:17
>>959
学校名か、学部名か、学科名を教えて下さい。

961 :デフォルトの名無しさん:03/06/08 03:19
>>960
新スレお願いします。

962 :デフォルトの名無しさん:03/06/08 06:05
最大25桁(少数も有り)の四則演算をしなければいけないのですが、
桁あふれしないようにするには、一体どうすればいいでしょうか?

963 :デフォルトの名無しさん:03/06/08 06:23
d[25]

964 :959:03/06/08 06:24
>>960
ホワイトファング所属
オペレーションメテオ科

965 :デフォルトの名無しさん:03/06/08 06:36
>>962
mail(){long long double x;}
これがコンパイルできるなら long long double を使えば良い。
さもなくば多倍長数を使う。既存なら libmp か libruby など。もしくは自作。
Cを使わなくていいなら bc コマンドなど。

966 :デフォルトの名無しさん:03/06/08 06:43
>>944
あんたの main を整理してみたがやっぱりやりたいことが分からん。
数学の試験問題程度に明確に書いてくれ。

967 :デフォルトの名無しさん:03/06/08 08:15


(^^)(^^)(^^)(^^)(^^)(^^)
(^^)(^^)(^^)(^^)(^^)(^^)
(^^)(^^)(^^)(^^)(^^)(^^)
(^^)(^^)(^^)(^^)(^^)(^^)
山崎渉

968 :デフォルトの名無しさん:03/06/08 08:58
文字列を文字数の制限なしに入力するにはどうしたらいいですか?
文字数の制限というのはa[100]なら100文字(99?)までしか入れれないという感じのやつです
どうかよろしくお願いします

969 :デフォルトの名無しさん:03/06/08 09:06
>>968
一文字ごとに領域確保と解放を繰り返せ(w

970 :デフォルトの名無しさん:03/06/08 09:16
適当な文字数毎にリンクリストに繋いでいくとか。
読んだ端からファイルに格納していくとか。

想定される最大文字数 (メモリーに入るのか否か) と、そのあとどう言うことしたいんだ ?

971 :968:03/06/08 09:24
すいません、ホント宿題なので・・・
C言語でとりあえず文字列を文字数制限なく読み込めって感じの課題なので、
読み込んだことが分かるようにそのまま表示しようと思っています

972 :デフォルトの名無しさん:03/06/08 09:31
>>971
文字の読み込みにはどの関数を使うん?
getchar?

973 :デフォルトの名無しさん:03/06/08 09:32
バッファをreallocで伸長しながら読むとか。

974 :デフォルトの名無しさん:03/06/08 09:33
>>973
現実的には避けたい方法だな。

975 :968:03/06/08 09:34
特に指定なしです
最近習ったstrlenとmallocなどを使ってやるのかと思ったのですが、無理でしょうか?

976 :デフォルトの名無しさん:03/06/08 09:39
>>975
じゃあ1文字ごとにmallocしてリストとして繋げばいいだろ。
どうも聞いてる限りでは大した課題じゃないっぽいし。
リスト構造の勉強にもなるし、いい機会じゃないか。

977 :デフォルトの名無しさん:03/06/08 10:06
文字列を文字数制限なく読み込んで何するんだろ・・

978 :デフォルトの名無しさん:03/06/08 10:30
文字数制限なく読み込むけど、
メモリへの格納何もしないプログラム
#include <stdio.h>
int main() {
while( !feof(stdin) )
getchar();
}

読み込みつつ、全部表示するバージョン
#include <stdio.h>
int main() {
while( !feof(stdin) )
putchar( getchar() );
}

979 :デフォルトの名無しさん:03/06/08 12:31
文字数制限無しで読み込んで、格納先のアドレスを返す。ちゃんとfreeしてね。
けど多分、VCじゃないとコンパイル通らない。
char* hogealloc(void) {
char*str;
chardummy;/* 先頭1文字の格納先*/

scanf("%c", &dummy);/*stdinと関連付ける*/

if( ( str=(char*)calloc( stdin->_cnt+1, 1 ) ) == NULL ) {
fprintf(stderr, "メモリの確保に失敗しました。\n");
exit(1);
}

strncpy(str, stdin->_base, stdin->_cnt);
fflush(stdin);

return str;
}

980 :979:03/06/08 12:41
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
です。

981 :デフォルトの名無しさん:03/06/08 12:52
>>979
おいおい、構造体FILEの実装に依存したコードかくなよ…
VC++じゃないと通らないというか、
VC++の特定のバージョンじゃないと通らないかも知れんぞ。

982 :979:03/06/08 12:58
はい、それで無くても全然ダメっぽいです。
stdin->_cntで表現できない程の文字数は格納できないです。
でもそんな事言ってたら、reallocもsize_t型の変数で領域の大きさ指定するしなぁ。

それじゃ逝きます。さよなら!

983 :デフォルトの名無しさん:03/06/08 13:10
便乗質問。
 gcc -ansi -pedantic -Wall
でワーニングもエラーも出なかったら、どのコンパイラでも
OKと考えていいですか?

984 :デフォルトの名無しさん:03/06/08 13:22
>>983
どのコンパイラでもコンパイルが通ることだけは期待できる。
が、それがちゃんと動くかどうかは別問題。

985 :r:03/06/08 13:27
>>968 どの処理系でもイケるはず。
#include <stdio.h>
#include <stdlib.h>
#define CELL_SIZE 100
typedef struct cell {
    char data[ CELL_SIZE + 1 ];
    struct cell* next;
}cell_t;
cell_t* CreateCell() { return (cell_t*)calloc( 1, sizeof( cell_t ) ); }
void Cell_Display( const cell_t* cell ) {
    while( cell != 0 ) {
        fputs( cell -> data, stdout );
        cell = cell -> next;
    }
}
void Cell_Clear( cell_t* cell ) {
    cell_t* target;
    while( cell != 0 ) {
        cell = ( target = cell ) -> next;
        free( target );
    }
}
int main(int argc, const char** argv) {
    cell_t *head, *tail;
    FILE* fp = 1 < argc ? fopen( argv[1], "r" ) : stdin;
    tail = head = CreateCell();
    while( !feof( fp ) )
        fgets( ( tail = tail -> next = CreateCell() ) -> data, CELL_SIZE, fp );
    Cell_Display( head );
    Cell_Clear( head );
}


986 :r:03/06/08 13:46
メモリ確保に失敗するのが恐いときは、
cell_t* CreateCell() {
cell_t* cell = (cell_t*)calloc( 1, sizeof( cell_t ) );
if( cell == 0 ) exit(-1);
return cell;
}
とでも。
# 未チェック。

987 :デフォルトの名無しさん:03/06/08 14:04
8代目まだ?

988 :デフォルトの名無しさん:03/06/08 14:15
>>985
CamelCase と underscore_delimited を混ぜたのは初めて見たかも

989 :デフォルトの名無しさん:03/06/08 14:18
>>985
exit の直前に限っては free する必要はない。

990 :デフォルトの名無しさん:03/06/08 14:22
>>983
あらゆるコンパイラがANSI Cに完全準拠しているわけじゃないし、ライブラリの問題もあるし。

991 :デフォルトの名無しさん:03/06/08 15:56
線形リスとなんぞ使わなくても、これで十分だろ。
#include <stdio.h>
#include <stdlib.h>
int main( int argc, const char** argv ) {
FILE* fp;
char* buf;
size_t size;
if( fp = fopen( argv[1], "rb" ), fp == 0 ) { return -1; }
fseek( fp, 0, SEEK_END );
buf = malloc( ( size = ftell( fp ) ) + 1 );
rewind( fp );
fread( buf, size, 1, fp );
buf[size] = '\0';
printf( "[%s]\n", buf );
}


992 :デフォルトの名無しさん:03/06/08 16:04
>>991
うわー、絶対いっしょに仕事したくないタイプ。

993 :デフォルトの名無しさん:03/06/08 16:15
>>992
なんで?カンマ演算子とか使ってるから?

994 :デフォルトの名無しさん:03/06/08 16:21
めちゃ素直なコードだと漏れは思うよ。
fopen は検査して malloc は検査しないのは分からんが。

995 :デフォルトの名無しさん:03/06/08 17:30
main()の戻り値に-1を使うような奴とは仕事したくないと言うなら>>992に同意。

996 :デフォルトの名無しさん:03/06/08 17:45
埋まる前に転記。
http://pc2.2ch.net/test/read.cgi/tech/1055056940/l50

997 :デフォルトの名無しさん:03/06/08 17:48
>>978
下の方のプログラムは一文字余分に表示される。

998 :デフォルトの名無しさん:03/06/08 17:50
プログラム板だと1000取り合戦も起こらないんですね


999 :デフォルトの名無しさん:03/06/08 17:52
C++ >>>>>>> Java

1000 :デフォルトの名無しさん:03/06/08 17:53
次スレ
http://pc2.2ch.net/test/read.cgi/tech/1053045530/


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

301 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)