08/12/18 03:48:27
>>226
エラトステネスの篩でやってみた
10^9 以下の素数をすべて求める段階だけで 60 秒かかる (PentiumM 1.7GHz)
素数テーブルが完成した後から時間を計ると早い(0.10秒)けどねw
263:デフォルトの名無しさん
08/12/18 04:01:54
>>262
すまん、思いつきで言ったが、明らかに効率が悪いとすぐに分かったw
264:250
08/12/18 04:04:06
URLリンク(kansai2channeler.hp.infoseek.co.jp)
さっきつながらなかったので送れてしまいましたがうpしました。
お願いいたします
265:デフォルトの名無しさん
08/12/18 05:10:07
>>209=>>90
てんめぇ、せっかく人が作ってやってんのに、同じ宿題書き込んでんじゃねーよ。
10個程度しかレス見られないのかよ、カス。
266:デフォルトの名無しさん
08/12/18 05:51:12
同じ学校の別の生徒だろ
267:デフォルトの名無しさん
08/12/18 05:59:02
>>229
>>239
>>240
>>241
>>245
>>249
>>251
268:デフォルトの名無しさん
08/12/18 06:11:42
[1]授業単元:C言語
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年12月18日AM8時00分まで(それか昼まで・・)
[5]急で申し訳ないのですがよろしくおねがいします
269:デフォルトの名無しさん
08/12/18 06:24:24
>>268
#include<stdio.h>
int main(void)
{
unsigned int x=0x10fa; /*演算対象の初期化*/
unsigned int y=0x000F;
printf("%X AND %04X : %04X\n",x,y,x&y);
printf("%X OR %04X : %04X\n",x,y,x|y);
printf("%X XOR %04X : %04X\n",x,y,x^y);
printf("%X >> 2 : %04X\n",x,x>>2);
printf("%X << 2 : %04X\n",x,x<<2);
return 0;
}
270:デフォルトの名無しさん
08/12/18 06:25:12
スイマセン、どなたか
>>239 の方を解いてもらえないでしょうか?
271:デフォルトの名無しさん
08/12/18 06:38:13
>>239(あまり検証してない)
#include <stdio.h>
#define NINZU 3
#define KAMOKU 4
int main()
{
int ten[NINZU][KAMOKU]={ /*国語、算数、理科、社会の順に格納*/
{69,62,68,72}, /*伊藤くんの成績*/
{28,100,88,48}, /*田中さんの成績*/
{60,48,65,76}}; /*林くんの成績*/
int total = 0; /*合計点数*/
int i, j, all60over;
for (i=0; i<NINZU; i++) {
total = 0;
all60over = 1;
for (j=0; j<KAMOKU; j++) {
total += ten[i][j];
if (ten[i][j] < 60) all60over = 0;
}
if (total >= 260 || all60over) {
printf("OK\n");
} else {
printf("NG\n");
}
}
return 0;
}
272:デフォルトの名無しさん
08/12/18 06:55:16
>>268
っつか、演算子を使わずに実装しろってオチは無かろうな?
273:268
08/12/18 07:15:39
>>272
ハイ、それはないです。
274:デフォルトの名無しさん
08/12/18 07:53:27
>>240
それくらい短い問題文なら、upローダ使わなくて、直接書いても大丈夫だと思う。
#include <stdio.h>
int getTeenagerCount(int *age){
return *age<0?0:(*age/10==1)+getTeenagerCount(age+1);
}
int main(){
int age[] = {18,29,10,19,22,9,20,-1};
printf("The number of teenager:%d\n",getTeenagerCount(age));
}
275:デフォルトの名無しさん
08/12/18 09:12:37
>>264
どれ?
276:250
08/12/18 10:59:58
8391zip 住所録 と書いてあるものです
277:デフォルトの名無しさん
08/12/18 11:40:27
>>245のものですが
リミットが迫ってるので出来るだけ早くお願いします。
278:250
08/12/18 12:25:46
リミット過ぎてしまいましたが
もしよろしければ引き続きお願いたします<(_ _)>
279:デフォルトの名無しさん
08/12/18 12:37:59
「2科目得点の和が140点以上」かを判定したらどうするの?
入力はどんな形式のファイルになっているの?
入力は正しい形式になっていると仮定してもよいの?
280:デフォルトの名無しさん
08/12/18 12:43:50
>>277
URLリンク(kansai2channeler.hp.infoseek.co.jp)
281:166
08/12/18 12:44:27
>>167
習ってない関数が多いので、だめだと言われました・・・
すみませんが、もう一度お願いします。
282:デフォルトの名無しさん
08/12/18 12:53:25
>>280
ありがとうございます。
283:デフォルトの名無しさん
08/12/18 13:20:40
>>245
ファイル形式はcsvでよろしいでしょうか?
284:デフォルトの名無しさん
08/12/18 13:26:32
>>281
習ってない関数ってどれのことだよ
285:デフォルトの名無しさん
08/12/18 13:39:17
カマかけられたんじゃないの?
286:デフォルトの名無しさん
08/12/18 13:42:58
前スレ972のどこに習ってない関数が・・・
287:デフォルトの名無しさん
08/12/18 14:03:24
>>278
そもそも課題の内容が分からないし、
そのコンパイルも通らないファイルをどうしたいのかさえ
288:281
08/12/18 14:23:38
>>284
>>286
const、boolなどです。
というより、例あるのだから、それにあてはめてやれと言われました。
289:デフォルトの名無しさん
08/12/18 14:40:34
>>288
自分で当てはめればいいだろ
290:デフォルトの名無しさん
08/12/18 14:45:42
>>229をよろしくお願いします
291:デフォルトの名無しさん
08/12/18 14:59:36
>>290
はじめのは
GET /
が見つからなかったときに無限ループしてるんじゃないかと思った。
後のは、無限に読み込もうと待ってる気がする。
UNIXプログラムはうろ覚えだから的外れだったらごめんw
292:デフォルトの名無しさん
08/12/18 15:00:35
>>290
>後、のこった要求を
何が残る予定なんだ?
293:デフォルトの名無しさん
08/12/18 15:35:44
>>292
client側から以下(client.cの76,77行目)でGET /%s HTTP/1.1\r\nHOST: %s\r\n\r\nを送信します
size = sprintf (str, "GET /%s HTTP/1.1\r\nHOST: %s\r\n\r\n", url.path, url.host);
write (s, str, size+1);
server側はこれを受け取って処理するんですが
パスだけ取得できればいいんで、はじめは、fgets (str, STR_SIZE, ns_read);でGET /%s HTTP/1.1だけ読み込んで
そこからパスを取得してそれ以降の処理をしてました
でも、どうやらclient側から送信された文字列を全部受け取らずにそれ以降の処理に進むとパイプ破壊のエラーが出ることが分かったんで、
while(fgets (str, STR_SIZE, ns_read));でclient側から送信された文字列を全て(残りの”HOST: %s\r\n\r\n”の部分)取得しようとしたら、このwhile分の2回目のループのfgetsの部分で
止まってそれ以降プログラムが動かないみたいなんです
とりあえず、while(fgets (str, STR_SIZE, ns_read));をfgets (str, STR_SIZE, ns_read);に書き換えればパイプ破壊も起きず問題なく動くんですが、
ネット上のechoサーバサンプルコード見てても、特に何が原因でこうなってるのかよく分からなかったので質問させてもらいました
>>291
一応それ以降まで進んでることは確認してます
”HOST: %s\r\n”も読み込んで次に実行されたfgetsで止まってる見たいです
294:デフォルトの名無しさん
08/12/18 15:58:53
>>293
>止まってそれ以降プログラムが動かないみたいなんです
client側が次に何か送って来るのを待っているんだから
295:182
08/12/18 16:01:54
int i=0,j=0,//イテレータ
jousu[10],//乗数を格納
TEMP;//ソート用
char bunkatsu[10][NAGASA] = {},//別けた式を格納
TEMP_MOJI[10][NAGASA] = {};
for(i=0;i<tate-1;i++){
for (j=tate-1;j>i;j--){
if (jousu[j-1] < jousu[j]) {//前の要素のほうが大きいなら
//乗数配列の交換
TEMP = jousu[j];
jousu[j] = jousu[j-1];
jousu[j-1]= TEMP;
//分割式配列の交換
TEMP_MOJI[j] = bunkatsu[j];
bunkatsu[j] = bunkatsu[j-1];
bunkatsu[j-1] = TEMP_MOJI[j];
}
}
}
これでソートしようと思ってるんだけど、分割式配列の交換で代入できない型ってエラーが出ます。
char型で統一してるのに駄目なの?
296:デフォルトの名無しさん
08/12/18 16:05:17
>>295
プログラム全体を貼り付けてよ
できればうpろだに
297:デフォルトの名無しさん
08/12/18 16:10:53
>>293
>>291だけど、言いたかったのは>>293がうまく言ってくれたw
ns_readから読み込むと、普通のファイルと違ってパイプから読みこむから、読み込みたいときにパイプが空っぽだと、誰からパイプに入れてくれるのをずっと待ってるんだよ。
298:デフォルトの名無しさん
08/12/18 16:38:48
[1] 授業単元:
[2] 問題文(含コード&リンク):
「エラトステネスのふるい」は素数を求めるアルゴリズムです。
このアルゴリズムを用いて、100までの素数をすべて表示する
プログラムを作成してみよう。
(ヒント)
101個の配列aを用意して、添字2~100を数として扱います。
数2がふるいに入っている状態はa[2]=1、ふるいから取り
除かれた場合はa[2]=0となるようにします。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc32)
[3.3] 言語: (C)
[4] 期限: ([2008年12月20日18:00まで] )
[5] その他の制限: (なし)
299:デフォルトの名無しさん
08/12/18 16:50:55
[1] 授業単元:
[2] 問題文(含コード&リンク):
year年 month月のカレンダーを表示するプログラムを作成してみよう。
ヒント
次の関数を作ってカレンダーを作成してみよう。
int leap(int year) 閏年の判定
int days(int year,int month) year年(month-1)月終了時までの日数のずれ
void cal_print(int year,int month) year年month月の表示
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc32)
[3.3] 言語: (C)
[4] 期限: ([2008年12月20日18:00まで] )
[5] その他の制限: (なし)
300:デフォルトの名無しさん
08/12/18 17:05:54
>>299
URLリンク(kansai2channeler.hp.infoseek.co.jp)
301:デフォルトの名無しさん
08/12/18 17:11:15
>>298
#include <stdio.h>
int main(void)
{
int i, j;
int a[101];
for(i=2; i<101; i++)
a[i] = 1;
for(i=2; i<=10; i++){
for(j=i+1; j<101; j++){
if(j%i == 0){
a[j] = 0;
}
}
}
for(i=2; i<101; i++){
if(a[i]){
printf("%d\n", i);
}
}
return 0;
}
302:301
08/12/18 17:19:13
間違えた
for(i=2; i<=10; i++){
if(a[i]){
for(j=i+1; j<101; j++){
if(j%i == 0){
a[j] = 0;
}
}
}
}
303:デフォルトの名無しさん
08/12/18 17:20:18
>>301 ちょっとふいたw 答えは合っているが、ちょっと違う。
304:デフォルトの名無しさん
08/12/18 17:20:27
>>296
お願いします。
URLリンク(www.uploda.org)
パス:1111
305:デフォルトの名無しさん
08/12/18 17:20:38
>>229
クライアントの write (1, str, size+1);も変だな。サイズ大きすぎるだろ。
306:デフォルトの名無しさん
08/12/18 17:27:38
>>298
#include <stdio.h>
#define MAX 101
int main(void) {
int i,j,k;
int a[MAX]={0,0,1};
for(i=3; i<101; i++) a[i] = 1;
for(i=2; i<=10; i++) {
if(a[i]==1) for(k=i,j=i*2; j<101; j+=k) a[j] = 0;
}
for(i=2; i<101; i++)
if(a[i]) printf("%d ", i);
return 0;
}
307:デフォルトの名無しさん
08/12/18 17:29:03
>>298
#include <stdio.h>
#define MAX 101
int main(void) {
int a[MAX]={0,0,1},i,j,k;
for(i=3; i<MAX; i++) a[i] = 1;
for(i=2; i*i<=MAX; i++) { if(a[i]==1) for(k=i,j=i*2; j<101; j+=k) a[j] = 0; }
for(i=2; i<MAX; i++) if(a[i]) printf("%d ", i);
return 0;
}
308:デフォルトの名無しさん
08/12/18 17:38:51
struct Point
{
int x;
int y;
}p;
int length_vector(struct Point p)
{
int a,b,c,d;
a=pow(p.x , 2 );
b=pow(p.y , 2 );
c = a + b;
d =sqrt(c);
return d ;
}
int main(void)
{
struct Point p;
printf("Input Point X: ");
scanf("%lf", &p.x);
printf("Input Point Y: ");
scanf("%lf", &p.y);
print_v(p); /* print_vを使用して,座標の表示 */
printf("The length of vector: %f\n", length_vector(p) );
return 0;
}
なぜ動かん!
309:デフォルトの名無しさん
08/12/18 17:45:18
print_v()を定義していないし、整数型じゃなくて浮動小数点型を使うべき
310:デフォルトの名無しさん
08/12/18 18:03:36
>>300
ページを開くことができませんでした…
311:デフォルトの名無しさん
08/12/18 18:04:04
>>310 嘘は言わなくて良いから。
312:デフォルトの名無しさん
08/12/18 19:29:35
>>215
ありがとうございマス!
313:デフォルトの名無しさん
08/12/18 19:33:38
>>245の者ですが>>280で少し間違いがあったみたいなのでもう一度お願いします。
途中まで、あってるか確証はありませんが、自分でやったのでこの続きをお願いします。
#include<stdio.h>
int main(void)
{
FILE *fp1,*fp2, *fp3;
int num, math, eng, total;
char name[20];
fp1=fopen("/home/sample/PE1/2008/e12math.txt","r");
if(fp1==NULL){
printf("open error\n");exit(1);
}
fp2=fopen("/home/sample/PE1/2008/e12eng.txt","w");
if(fp2==NULL){
printf("open error\n");exit(1);
}
fp3=fopen("report.txt.","x");
while(fscanf(pf1,"%d %s %d",&num,name,&math)!=EOF){
314:デフォルトの名無しさん
08/12/18 19:48:12
>>313
どう間違えてたの?
315:デフォルトの名無しさん
08/12/18 19:51:22
>>314
一致せずが1つあるはずなのになかった
316:デフォルトの名無しさん
08/12/18 19:52:40
やり方も、できれば>>313のような漢字でお願いします
317:デフォルトの名無しさん
08/12/18 19:56:17
>漢字
感じ
318:デフォルトの名無しさん
08/12/18 20:07:35
何で英語が"w"ww
319:デフォルトの名無しさん
08/12/18 20:14:53
>>316
どこら辺が>>313っぽくなればいいのかが読み取れないなぁ。
別に>>280と大差あるように見えない。
変数名をtypoしたりcloseをOS任せにする辺りが特徴?
320:デフォルトの名無しさん
08/12/18 20:34:32
[1] 授業単元: 科学実習Ⅰ
[2] 問題文: 16進数を入力するプログラムを作れ。
[3] 環境
[3.1] OS: windows xp
[3.2] コンパイラ名とバージョン:gcc -o
[3.3] 言語: C言語
[4] 期限: 2008年12月31日23時59分
[5] その他の制限:scanfは使用禁止。よろしくお願いします。
321:デフォルトの名無しさん
08/12/18 20:37:55
>>320
#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[1000];
int x;
fgets(s, 1000, stdin);
x = strtol(s, NULL, 16);
return 0;
}
322:デフォルトの名無しさん
08/12/18 20:40:15
>>320
#include <stdio.h>
int main()
{
char str[256];
unsigned int n;
fgets(str, 256, stdin);
sscanf(str, "%x", &n);
return 0;
}
323:デフォルトの名無しさん
08/12/18 21:23:54
>>313=315であると仮定して
検証に使った math.txt と eng.txt
そして実際にはどういう結果(出力)が欲しかったのか
それを示さないと何とも言えない。
324:デフォルトの名無しさん
08/12/18 21:29:24
math.txtに10人、eng.txtに11人あると最後の人が検出できなさそうにも見える
325:280
08/12/18 21:32:49
今気づいたが29行目くらいに else を漬け忘れているような気がする
>>324
問題文に > 2つのファイルの行数は同じ とあるので。
326:デフォルトの名無しさん
08/12/18 21:43:49
C言語にて、数列(12,43,17,23,57,50,17,41, 7,63)をクイックソートを用いて降順にソートしなさい。
なお、整列完了までの途中経過を表示せよ。
いろいろなサイトで公開されているクイックソート昇順のプログラムを弄ってみたのですが
どうしてもうまく行きません。よろしくお願いします。
また、このプログラムを改良し、左端・中央・右端の3要素の中をうちを枢軸
右端)とする
場合のプログラムを考えよ。
に関しては自分で考えてみるつもりなのですが、もし良ければお願いします
327:デフォルトの名無しさん
08/12/18 21:51:09
>>325
ほんとだ。よく見ず難癖つけてすまんかった>行数
328:デフォルトの名無しさん
08/12/18 22:14:16
>>326
URLリンク(kansai2channeler.hp.infoseek.co.jp)
329:デフォルトの名無しさん
08/12/18 22:24:35
>>326 途中経過の表示を追加
URLリンク(kansai2channeler.hp.infoseek.co.jp)
330:デフォルトの名無しさん
08/12/18 22:38:43
>>328,329
ありがとうございます。
ですが、今回は数列(12,43,17,23,57,50,17,41, 7,63)が指定されているので、
これをscanfでの入力もしくは、プログラム内に埋め込みという形で出来ないでしょうか?
331:デフォルトの名無しさん
08/12/18 22:40:26
授業単元:C言語
問題
0~9、+、-、×、÷、(、)、を使った整数式を
ポーランド記法を使ったツリー構造に変換し出力。
さらに計算し解を出力するプログラムを作成。
ただし整数式は標準入力から式ブロックで入力され"quit"が
入力されるまで繰り返し入力できるものとする
※割り算によって発生する小数部は切り捨ててよい
※入力式の誤り判定は不必要とする
※ただし-符号は考慮すること
環境:WS
コンパイラ:gcc
制約:breakは原則使用禁止(Selectcase文は除く)
scanfは使用禁止
以上です。お願いします
332:デフォルトの名無しさん
08/12/18 22:43:24
>>331
breakの代わりにgoto使ってもいい?