C/C++の宿題を片付け ..
511:デフォルトの名無しさん
07/05/20 17:40:24
プログラマしんどいんですか??
人並に働ける会社なんですかね皆さんは
512:デフォルトの名無しさん
07/05/20 17:58:22
>>511
人並みっていうのは終電までには帰れる
とかそういうこと?
513:デフォルトの名無しさん
07/05/20 18:06:54
家でもプログラミングする変態だから参考にならないかもしれないけど
そんなにしんどくないよ
終電には間に合うし
514:デフォルトの名無しさん
07/05/20 18:11:05
だ、誰か・・・そろそろあの言葉を>>511へ言ってやってくれ
515:デフォルトの名無しさん
07/05/20 18:13:00
>>495
長くなってしまった。すまん。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
516:デフォルトの名無しさん
07/05/20 18:51:00
[1] 授業単元:
[2] 問題文:
@. ハノイの塔のボトムアップ(反復形)のプログラムを作れ。
プログラムは,maink関数と,hanoi関数(ともに再帰を含まない)とで構成する。
./a.out N の形に円盤の枚数 N を十九時引数として指定すると,N枚の円盤の山を右回りに隣の柱に移す最短手順を出力するようにせよ。
A.アジア地区予選の問題Gをお願いします
URLリンク(www.acm-japan.org)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: cygwin
[3.3] 言語: C
[4] 期限: 5月21日23時
よろしくお願いします
517:デフォルトの名無しさん
07/05/20 19:01:39
再帰無しのハノイは(;´Д`)ハァハァだな
518:デフォルトの名無しさん
07/05/20 19:01:41
[1] 授業単元: C++実習
[2] 問題文(含コード&リンク):
反復文を用いて、トランプゲーム(ババ抜き、7ならべなど)を実現するプログラムを作成しなさい
ゲームの種類はなんでもよい
[3] 環境
[3.1] OS: WindowsXP
[3.2] visual studio2005
[3.3] 言語: C++
[4] 期限: 5/26まで
[5] その他の制限: 特になし
よろしくお願いします。
519:デフォルトの名無しさん
07/05/20 19:11:41
>枚数 N を十九時引数として指定
にほんごでおけ
520:デフォルトの名無しさん
07/05/20 19:30:10
非再帰のハノイは昔このスレに書いた記憶があるが、見付からん
521:デフォルトの名無しさん
07/05/20 19:38:25
>>519
>516 はローマ字打ちと予測する
>枚数 N を十九時引数として指定
実行時引数
jikkoujihikisuu
jikk ujihikisuu
じっくじひきすう
十九時引数
522:デフォルトの名無しさん
07/05/20 20:12:35
非再帰ハノイは6から塔の番号を引いたり、何か変な工夫が
必要だった気がする。
523:sage
07/05/20 20:27:09
[1] 授業単元: プログラミング
[2] 問題文:
以下に与えられたg(x)に対して、与えられた「x」の最初の値「x0」から出発して、
x=g(x)の形の方程式の解を不動点反復法によって求めよ。
(1) g(x)=1/3*(x^2+1), x0=1
(2) g(x)=3-(1/x), x0=1
(3) g(x)=1/(x^2+1), x0=1
[3] 環境
[3.1] OS: (WindowsXP)
[3.2] コンパイラ名とバージョン: UNIX
[3.3] 言語: C言語
[4] 期限: 5月21日:午前10時まで
よろしくお願いします。
524:デフォルトの名無しさん
07/05/20 20:42:09
>>523
#include <stdio.h>
#include <math.h>
#define EPS 1.0e-5
#define KMAX 1000
int main(void)
{
int ct = 0;
double x, xn;
x = 1; /* ここにx0を入れる */
while (1) {
ct++;
printf("%3d : %f\n", ct, x);
xn = 1. / 3 * (x * x + 1); /* ここにg(x)を入れる */
if (fabs(xn - x) < EPS) {
printf("Solution found.\n");
break;
}
if (ct > KMAX) {
printf("Error.\n");
break;
}
x = xn;
}
return 0;
}
525:デフォルトの名無しさん
07/05/20 20:59:00
ハノイの塔の手順を書き出してじっくり眺めると、
動かす円盤の番号と手順の2進数のビットパターンに関連があることが判る。
つまり、奇数手目には必ず最上位の円盤を動かすわけで、これが最下位ビット(bit0)に相当する。
同様に二手目、六手目などに第二位の円盤を動かすのが第二ビット(bit1)、四手目に第三ビット(bit2)……
従って、この方法を使えば任意の手数番目にどの円盤を動かすかは簡単に得られる。
そこまで判れば、どこからどこへ動かすかも同様に定数時間で得られる。
526:デフォルトの名無しさん
07/05/20 21:12:23
なんとか思い出せた。
>>516
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>525
まさにその方法だ。
527:デフォルトの名無しさん
07/05/20 21:13:09
>>524
ありがとうございます!とても速いです!あこがれます!
528:デフォルトの名無しさん
07/05/20 21:20:18
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
入力した二つの値の掛け算を筆算形式で計算せよ。
ただし入出力ともに16進数とし符号なしとする。
[3] 環境
[3.1] OS: Vine Linux
[3.2] gcc
[3.3] 言語: C
[4] 期限: 5/22 21:00
[5] その他の制限: 特になし
よろしくお願いします。
529:デフォルトの名無しさん
07/05/20 21:22:05
>>524
早撃ちジャックと呼んであげようw
530:デフォルトの名無しさん
07/05/20 21:57:13
>>516
2006年のでいいの?
531:デフォルトの名無しさん
07/05/20 22:19:13
>>504
#include <stdio.h>
int add(int a, int b) { return a + b; }
int mul(int a, int b) { return a * b; }
void prtable(int (*op)(int, int))
{
int i, j;
putchar(' ');
for (j = 1; j < 0x10; ++j)
printf("%3X", j);
putchar('\n');
for (i = 1; i < 0x10; ++i) {
printf("%X", i);
for (j = 1; j < 0x10; ++j)
printf("%3X", (*op)(i, j));
putchar('\n');
}
}
int main(void)
{
prtable(add);
putchar('\n');
prtable(mul);
return 0;
}
532:デフォルトの名無しさん
07/05/20 22:26:52
>>531
dd
533:デフォルトの名無しさん
07/05/20 22:32:16
1授業単元:プログラミング実習
2問題文:配列を用いて100個までの値を入力し、その最大値、最小値、及び
全体の平均点を出すプログラムを作成せよ。
3環境:Linux3.2
gcc
C
4 2007年5月22日17時
5 ifやwhile、そして今日配列まで習いました。 関数とかはまだです
534:デフォルトの名無しさん
07/05/20 22:44:14
>>533
#include<stdio.h>
int main(){
int i, data[100], max, min, sum;
i = 0;
while(i<100){
scanf("%d",&data[i]);
i++;
}
max = data[0];
min = data[0];
sum = data[0];
i = 1;
while(i<100){
if(max < data[i]) max = data[i];
if(min > data[i]) min = data[i];
sum += data[i];
i++;
}
printf("最大値:%d\n",max);
printf("最小値:%d\n",min);
printf("平均点:%f\n",sum/100.0f);
return 0;
}
がんばって初心者っぽく書いてみた
535:デフォルトの名無しさん
07/05/20 23:08:36
>533
ぼるじょあスレで答えてもらってなかったか?
536:デフォルトの名無しさん
07/05/20 23:35:24
>>528は筆算ってことは、いちいち各桁ごとを、しかも16進数の形(文字配列のデータ同士)
のまま演算するようにしろと?10進数に戻して計算して、また16進数に戻す(というか書式で指定して表示)
した方が楽やん・・・。ってボヤいてみるテスト。誰かがんばれ〜。
537:528
07/05/20 23:52:06
>>536
そうなんです
一度10進法に変換して計算してはいけないって制限付でした・・・
538:デフォルトの名無しさん
07/05/21 00:00:42
>>536>>537
10進法に変換してから計算するってどういうこと?
539:デフォルトの名無しさん
07/05/21 00:03:22
>>528 >>537
#include<stdio.h>
int main(){
int a,b,c;
scanf("%x %x",&a,&b);
printf(" %x\nx %x\n----------\n",a,b);
c = b;
while(b>0){
printf("%x\n",a*(b%0x10));
b/=0x10;
}
printf("----------\n%x\n",a*c);
return 0;
}
それっぽく書こうとして力尽きた
540:デフォルトの名無しさん
07/05/21 00:13:03
>>538
例えばFF * FFの場合に255 * 255と変換してから計算して
積の65025を16進数に変換してFE01と表示することです
>>539
dです
これをいろいろ弄ってみたいと思います
541:デフォルトの名無しさん
07/05/21 00:15:09
>>540
んあー・・・。
プログラムないだとどっちみち「int型」で、10進も16進もないんだけど
筆算の表記を10進にしちゃダメ、ってことかな・・・
542:デフォルトの名無しさん
07/05/21 00:16:29
その条件だと文字列のまま計算しろってことじゃね?
543:デフォルトの名無しさん
07/05/21 00:18:44
だろうね。俺もそう思う。
544:デフォルトの名無しさん
07/05/21 00:20:41
漏れ的には
char nums[]={"0123456789ABCDEF"};
の配列を使って、入力された文字列がこの配列の要素の番号を値として計算するようにと考えたが
結局計算した結果を16進数に戻して結果を入れる文字配列に入れるとか・・・わけわからなくなって
それじゃ駄目?なのかと思ってあきらめた orz
545:デフォルトの名無しさん
07/05/21 00:24:14
>>541
すいません、説明の仕方が非常にまずかったみたいですね・・・
あくまで印字される値の見かけが10進数ならNGって事です・・・
546:デフォルトの名無しさん
07/05/21 00:25:25
うん。非常にまずい。
547:デフォルトの名無しさん
07/05/21 00:36:39
んじゃ、やっぱ10進数に換算してからまたそれを16進数に戻すやり方で。誰か頼む。
俺は諦めた orz
548:デフォルトの名無しさん
07/05/21 00:40:14
筆算形式だと必然的に文字列全体を数字に直接変換しないで計算することになると思うんだが。
文字を数字に変換するのは当然だけど、一桁ずつ計算していくってことだろ?
549:デフォルトの名無しさん
07/05/21 00:56:47
>>548
あまり必然でもない
>>539
550:デフォルトの名無しさん
07/05/21 01:03:23
>>528
やっつけ仕事。
ここまで作ったところで「桁数制限ががが」ということに気づいた。
最大4桁「ffff * ffff」まで。
エラー処理は入れてない。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
551:デフォルトの名無しさん
07/05/21 01:07:44
>539は表示してるだけで、計算方式は筆算じゃねーだろ
552:デフォルトの名無しさん
07/05/21 01:11:16
>528 入力部分は割愛
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int char2int(char a) { return '0'<=a && a<='9' ? a - '0' : tolower(a) - 'a' + 10;}
int main(void)
{
char a[] = "FF", b[] = "FF", c[256] = {0};
int lena, lenb, lenc, i, j;
lena = strlen(a);
lenb = strlen(b);
for(i=0; i<lena; i++) {
int tempa = char2int(a[lena-1-i]);
for(j=0; j<lenb; j++) {
int tempb = char2int(b[lenb-1-i]);
c[i+j] += tempa * tempb % 16;
if(c[i+j]/16) {
c[i+j+1] += c[i+j]/16;
c[i+j] %= 16;
}
c[i+j+1] += tempa * tempb / 16;
if(c[i+j+1] / 16) {
c[i+j+2] += c[i+j+1]/16;
c[i+j+1] %= 16;
}
}
}
for(i=255; i>0; i--) if(c[i]) break;
lenc = i+1;
for(i=lenc-1; i>=0; i--) printf("%x", c[i]);
return 0;
}
553:デフォルトの名無しさん
07/05/21 01:11:25
>>551
ちゃんと一桁ずつ計算してるよ。
最後でサボって足し算の部分は無いけど。
ループ内の計算の計算結果を保存して、最後に足し算したら
筆算と同じ工程だと思うんだが。
必ずしも文字列変数は必要でない、というつもりなんだけど、
もしかして俺、「筆算」の方式を間違えて理解してる?
554:デフォルトの名無しさん
07/05/21 01:16:58
>553
bは一桁ずつでもaが一桁ずつじゃないじゃん。
555:デフォルトの名無しさん
07/05/21 01:20:33
>>539
c = b;
printf("----------\n%x\n",a*c);
ごまかせないだろw
556:デフォルトの名無しさん
07/05/21 01:21:04
>>554
筆算形式ってソコまでやって筆算なのか・・・。
俺は [a] × [bの各桁] をbの桁数だけやって
最後にそれらを足すのが筆算だと思ってた。
理解間違い、申し訳ない
557:デフォルトの名無しさん
07/05/21 01:22:19
Wikipedia項目リンク
筆算を理解していなかったなんで、ゆとり世代?なんてひっさん(悲惨)な、なんつって orz
558:デフォルトの名無しさん
07/05/21 01:32:17
>>552でa[]のほうをb[]より大きい桁にすると表示おかしくなるんだけど。
559:デフォルトの名無しさん
07/05/21 01:35:49
int tempb = char2int(b[lenb-1-i]);
じゃなくて
int tempb = char2int(b[lenb-1-j]);
でした。
560:デフォルトの名無しさん
07/05/21 01:39:03
なら、おっきした方と入れ替えするコードを入れてみては?
561:デフォルトの名無しさん
07/05/21 05:58:13
[1] 授業単元:
アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):
次の手順に従ってプログラムorder.cを作成せよ.
10個の整数データを図1の木構造に保存するときを考える.
まず,ポインタにより木を実現し,データを保存せよ.
(ファイルからデータを読み込み,木構造ができるようにすると良い)
次に,キーボードから前順(行きがけ),中順(通りがけ),後順(帰りがけ)を選択する.
すると,その順で木をなぞり,指定した順にデータを表示する
(再帰プログラミングで作成せよ).
図1(例)
==============================
0
/ \
1 2
/│\ / \
3 4 5 6 7
/ \
8 9
==============================
[3] 環境
[3.1] Windows XP Pro
[3.2] Visual Studio
[3.3] C++
[4] 期限:2007/5/22
10個の整数データをテキストファイルから読み込んで、図1の木構造に数字をいれるみたいです。
よろしくおねがいしますm(_ _)m
562:デフォルトの名無しさん
07/05/21 06:55:55
それは何という木構造?
563:デフォルトの名無しさん
07/05/21 07:01:13
>>561
その探索法を使うなら二分木だと思うが、図間違ってないか?
564:デフォルトの名無しさん
07/05/21 07:13:31
>>561
数日前にも君みたいなのが居たが、、、
種類を特定しないで木構造とだけ言ったところで何の説明にもなってない。
また出鱈目にデータを繋げて木構造を構築したところでアルゴリズムとして何の意味も無い。
Wikipedia項目リンク
565:デフォルトの名無しさん
07/05/21 07:46:48
[1] 授業単元: C言語入門
[2] 問題文:
1〜100までの整数を半角スペースで区切って表示する。ただし、
3の倍数のときは「せんだ」
5の倍数のときは「みつお」
3の倍数かつ5の倍数のときは「せんだみつお」
「せんだみつお」に置き換えられた次の数のときは「ナハナハ」
と、置き換えて表示しなければならない。(表示時に「」は不要)
コーディングに要した時間をソース内にコメントとして記述すること。
[3] 環境
[3.1] OS: 指定無し
[3.2] コンパイラ名とバージョン: gcc, VisualC++など
[3.3] 言語: C言語
[4] 期限: 5月21日:正午まで
566:デフォルトの名無しさん
07/05/21 07:57:28
>>565
所要時間5分くらい
#include <stdio.h>
#define MAX 100
void main(void) {
int i;
int naha=0;
for ( i=1; i<MAX+1; ++i ) {
if ( naha ) { naha=0; printf("ナハナハ "); continue; }
if ( (i%3==0) && (i%5==0) ) { printf("せんだみつお "); naha=1; continue; }
if ( i%3==0 ) { printf("せんだ "); continue; }
if ( i%5==0 ) { printf("みつお "); continue; }
printf( "%d ", i );
}
}
567:デフォルトの名無しさん
07/05/21 08:02:34
しかしなんつー課題だw
568:デフォルトの名無しさん
07/05/21 08:06:05
URLリンク(www.aoky.net)
569:デフォルトの名無しさん
07/05/21 08:14:53
#include <stdio.h>
int main(void)
int i;
for(i=1; i<=100; i++) {
if(i%15==0) {
printf("せんだみつお");
printf("ナハナハ ");
i++;
}
else if(i%3==0) printf("せんだ");
else if(i%5==0) {
printf("みつお");
if((i-1)%3==0) {
i++;
if(i > 100) break;
printf("ナハナハ ");
}
}
else printf("%d ", i);
}
return 0;
}
3の約数と5の約数が連続したときもナハナハ入れてみた。
所要時間3分程度。
570:デフォルトの名無しさん
07/05/21 08:15:01
ナハナハ付けることでフラグ操作まで考えさせてるのか
実は「ふるい」としては良問?w
571:デフォルトの名無しさん
07/05/21 08:17:02
仕様から逸脱したコード書く香具師って痛いよね
572:デフォルトの名無しさん
07/05/21 08:18:29
>>569
それ、1-100 の範囲ではなく、
1-150 の範囲で出力させても大丈夫?
573:デフォルトの名無しさん
07/05/21 08:21:42
566のほうがスマートだ
574:デフォルトの名無しさん
07/05/21 08:29:41
continueはスマートじゃねえw
575:デフォルトの名無しさん
07/05/21 08:43:26
[1] 授業単元:画像工学
[2] 問題文(含コード&リンク):
1.64×64画像(raw データ形式)の横方向の一次元フーリエ変換を順次行う。
2.変換後の画像のパワースペクトル画像を計算する。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: Visual C++ 2005
[3.3] 言語: どちらでも可
[4] 期限: 2007年5月21日23:59まで
よろしくお願いします。
576:デフォルトの名無しさん
07/05/21 08:57:25
>>575
【raw データ形式】についてkwsk
IEEE754?
?bit
整数?
577:デフォルトの名無しさん
07/05/21 09:05:51
>>576
64×64は画像のサイズです。
説明不足ですみません。
578:デフォルトの名無しさん
07/05/21 09:07:27
>>561
単元から言って、データ構造やらそれを表現するデータファイルの仕様策定も
やるべき作業に含まれてるんかな?
ということで適当に作ってみたが。
動いてるけど、一般的に見て正しいかどうかは知らんよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
579:575
07/05/21 09:15:43
>>576
整数(ピクセル?)です。
580:デフォルトの名無しさん
07/05/21 09:49:13
>>565
#include <stdio.h>
#define SENDA num%3==0
#define MITSUO num%5==0
int SendaMitsuoNahanaha(int num){
if(num != 1) switch(SendaMitsuoNahanaha(num-1)){
case 1: printf("ナハナハ "); return 0; break;}
if(0);
else if(SENDA && MITSUO) {printf("せんだみつお "); return 1;}
else if(SENDA) {printf("せんだ ");}
else if(MITSUO) {printf("みつお ");}
else {printf("%d ", num);}
return 0;}
int main(void){
SendaMitsuoNahanaha(100);
return 0;}
/* 90分くらい。完全敗北した気分だ...*/
581:デフォルトの名無しさん
07/05/21 10:19:31
90分はかかりすぎなうえにマクロ内に変数名直接書くな。
せめて引数つきマクロにせい。
582:デフォルトの名無しさん
07/05/21 12:11:32
時間割の宿題って過去にでた?
過去スレから探そうと思うんだが。
583:デフォルトの名無しさん
07/05/21 12:50:56
つーかマクロはカッコで囲めよな・・・・
584:デフォルトの名無しさん
07/05/21 13:52:22
通常の式と同じように扱うことを意図したマクロでは括弧を使うのが当然だが、
>>580みたいな局所的なテキスト置換の用途では、正しく使うにはいずれにせよ展開後の
テキストを具体的に知っておく必要があるから、括弧はどっちでもいいような。
585:デフォルトの名無しさん
07/05/21 14:25:15
どっちでもいいわけないだろうが。
利用側の識別子に依存するマクロってなんだそれ?
586:デフォルトの名無しさん
07/05/21 14:31:42
どーでもいい。>>565はせめてC++ならまだ面白かっただろうな。
587:デフォルトの名無しさん
07/05/21 15:19:11
[1] 授業単元: 情報2
[2] 問題文(含コード&リンク):
10 個の整数データを入力して,総和,平均値,最大値,最小値,分散および標準偏差を求める
プログラムを作成しなさい
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (Cygwin)
[3.3] 言語: (C/)
[4] 期限: (2週間後)
[5] その他の制限: (なし)
お願いします。
588:デフォルトの名無しさん
07/05/21 15:28:10
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
1.2つの正の整数u, vの最大公約数gcd(u, v)を求めるユークリッドのアルゴリズムについて,
繰り返し版のプログラムをつくりなさい。尚,ユークリッドの方法は,「uがvより大きいならば,
uとvの最大公約数がvとu-vの最大公約数に等しい」ことに基づく。
関数のプロトタイプ宣言は次のようにしなさい。
int gcd(int, int);
▼出力例
最大公約数を求めます!
2つの正整数を入力してください:124 432↵
124と432の最大公約数は4です
2.キーボードから0〜9の数字dと,正の整数nを読み込み,n以下の整数xで,
xとxの2乗の10進数表示の両方にdを含むものをすべて出力するプログラムをつくりなさい。
ただし,次のプロトタイプ宣言で示すように,整数xとdを仮引数として,
xとxの2乗の10進数表示の両方にdを含む場合に1,
そうでない場合に0を返す関数hit_digitを作成しなさい。
int hit_digit(int x, int d);
▼出力例
0〜9の数字dを入力して下さい:7↵
正の整数nを入力して下さい:100↵
該当するものは次の通り:
27 74 76 87
全部で4個ありました
[3] 環境
[3.1] OS:windows (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン:borland (gcc 3.4 VC 6.0等)
[3.3] 言語:C (C/C++/どちらでも可 のいずれか)
[4] 期限: 今週日曜日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
2つありますがよろしくお願します。
589:デフォルトの名無しさん
07/05/21 16:03:59 BE:46584364-2BP(222)
>>588上段
#include<stdio.h>
int gcd(int u,int v){int tmp,res,r;if(u<v){tmp=u;u=v;v=tmp;}
if((r=u%v)==0){res=v;}else{res=gcd(v,r);}return res;}
int main(void){char tmp[256];int u,v,d;printf("最大公約数を求めます!\n");
printf("2つの正整数を入力してください:");fgets(tmp, 256, stdin);
sscanf(tmp, "%u %u", &u, &v);d=gcd(u,v);if(d!=1){
printf("%uと%uの最大公約数は%uです。\n",u,v,d);}else{
printf("%uと%uは互いに素です。\n",u,v);}return 0;}
590:デフォルトの名無しさん
07/05/21 16:21:59
1000までの素数を求めて出力するプログラムの作成を教えてください。
mod使う方法でお願いします」。
591:デフォルトの名無しさん
07/05/21 16:23:37 BE:29115353-2BP(222)
>>588下段
#include<stdio.h>
#include<stdlib.h>
int hit_digit_h(int x,int d){char tmp[256];char* p=tmp;
sprintf(tmp,"%i",x);while(*p!='\0'){if(*p==(d+'0')){
return 1;}p++;}return 0;}
int hit_digit(int x, int d){
return hit_digit_h(x,d) && hit_digit_h(x*x,d);}
int main(void){char tmp[256];int d,x,i,c=0;do{
printf("0〜9の数字dを入力して下さい:");fgets(tmp, 256, stdin);
d = atoi(tmp);}while(d<0||d>9);printf("正の整数nを入力して下さい:");
fgets(tmp, 256, stdin);x=atoi(tmp);for (i=0; i<=x; i++){
if(hit_digit(i,d)){printf("%i ",i);c++;}}if(c){
printf("\n%i個ありました。\n",c);}else{printf("\nありません。\n");
}return 0;}
592:デフォルトの名無しさん
07/05/21 16:26:45 BE:46585038-2BP(222)
>>590
#include<stdio.h>
int mod[]={2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89,
97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223,
227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359,
367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433,
439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593,
599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659,
661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743,
751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827,
829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,
919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997,};
int main(void){int i;for(i=0;i<sizeof(mod)/sizeof(int);i++){
printf("%i ",mod[i]);}return 0;}
593:デフォルトの名無しさん
07/05/21 16:30:36
>>592
マジカヨw
594:デフォルトの名無しさん
07/05/21 16:36:25 BE:58230465-2BP(222)
何か問題でも?
595:デフォルトの名無しさん
07/05/21 16:53:30
>>592
そんならこれでよくね?
#include <stdio.h>
int main() { return puts(
"2 3 5 7 11 13 17 19 23 29 31 37 "
"41 43 47 53 59 61 67 71 73 79 83 89 "
"97 101 103 107 109 113 127 131 137 139 149 151 "
"157 163 167 173 179 181 191 193 197 199 211 223 "
"227 229 233 239 241 251 257 263 269 271 277 281 "
"283 293 307 311 313 317 331 337 347 349 353 359 "
"367 373 379 383 389 397 401 409 419 421 431 433 "
"439 443 449 457 461 463 467 479 487 491 499 503 "
"509 521 523 541 547 557 563 569 571 577 587 593 "
"599 601 607 613 617 619 631 641 643 647 653 659 "
"661 673 677 683 691 701 709 719 727 733 739 743 "
"751 757 761 769 773 787 797 809 811 821 823 827 "
"829 839 853 857 859 863 877 881 883 887 907 911 "
"919 929 937 941 947 953 967 971 977 983 991 997"
), 0; }
596:デフォルトの名無しさん
07/05/21 16:56:32 BE:157221599-2BP(222)
>>595
>mod使う方法でお願いします」。
とあったのでやむを得ず変数名にした。
597:≠595
07/05/21 17:10:31
#include <stdio.h>
int main()
{
const char * mod =
"2 3 5 7 11 13 17 19 23 29 31 37 "
"41 43 47 53 59 61 67 71 73 79 83 89 "
"97 101 103 107 109 113 127 131 137 139 149 151 "
"157 163 167 173 179 181 191 193 197 199 211 223 "
"227 229 233 239 241 251 257 263 269 271 277 281 "
"283 293 307 311 313 317 331 337 347 349 353 359 "
"367 373 379 383 389 397 401 409 419 421 431 433 "
"439 443 449 457 461 463 467 479 487 491 499 503 "
"509 521 523 541 547 557 563 569 571 577 587 593 "
"599 601 607 613 617 619 631 641 643 647 653 659 "
"661 673 677 683 691 701 709 719 727 733 739 743 "
"751 757 761 769 773 787 797 809 811 821 823 827 "
"829 839 853 857 859 863 877 881 883 887 907 911 "
"919 929 937 941 947 953 967 971 977 983 991 997";
printf("%s\n", mod);
return 0;
}
んじゃ、こんなもんでw
598:デフォルトの名無しさん
07/05/21 17:22:28
お前ら意地悪だなw
599:デフォルトの名無しさん
07/05/21 17:26:05
暗号なんかの実装だと既知素数はテーブル化されていることが多いよね。
600:デフォルトの名無しさん
07/05/21 17:35:55
いちいち求めるの面倒だもんな
601:デフォルトの名無しさん
07/05/21 17:49:01 BE:104814296-2BP(222)
面倒っつーか無駄だしね。
602:デフォルトの名無しさん
07/05/21 17:58:14
>>565
#include <stdio.h>
/* 3分ほど */
int main()
{
int n;
for(n = 1; n <= 100; n++){
printf("%3d ", n);
if(n % 5 == 0)
printf("せんだ");
if(n % 3 == 0)
printf("みつお");
printf("\n");
}
return 0;
}
603:602
07/05/21 17:59:42
仕様満たしてねえな俺w
604:デフォルトの名無しさん
07/05/21 18:02:07 BE:104814296-2BP(222)
ナハナハが抜けてるのくらい視力の問題だろw
605:デフォルトの名無しさん
07/05/21 18:06:07
>>565 やべえな。
#include <stdio.h>
/* 人間失格 */
int main()
{
int n, flag = 0;
for(n = 1; n <= 100; n++){
if(flag){
printf("ナハナハ");
flag = 0;
}else{
if(n % 15 == 0){
printf("せんだみつお");
flag = 1;
}else if(n % 5 == 0)
printf("せんだ");
else if(n % 3 == 0)
printf("みつお");
else
printf("%3d", n);
}
printf(" ");
}
return 0;
}
606:デフォルトの名無しさん
07/05/21 18:23:41
>>587
#include <stdio.h>
#include <math.h>
#define N 10
int main()
{
double sum = 0, ave, powsum = 0, var, dev;
int i, num[N], max, min;
for(i = 0; i < N; i++) scanf("%d", &num[i]);
for(i = 0; i < N; i++) sum += num[i];
ave = sum/N;
for(i = 0; i < N; i++) powsum = pow(num[i] - ave, 2);
var = powsum/N; //分散のつもり
dev = sqrt(var);//標準偏差のつもり
printf("sum = %f\nave = %f\nvar = %f\ndev = %f\n", sum, ave, var, dev);
return 0;
}
607:デフォルトの名無しさん
07/05/21 18:29:33
>>587 眼科逝ってくる。
#include <stdio.h>
#include <limits.h>
#include <math.h>
#define N 10
int main()
{
double sum = 0, ave, powsum = 0, var, dev;
int i, num[N], max = INT_MIN, min = INT_MAX;
for(i = 0; i < N; i++) scanf("%d", &num[i]);
for(i = 0; i < N; i++){
sum += num[i];
if(num[i] > max) max = num[i];
if(num[i] < min) min = num[i];
}
ave = sum/N;
for(i = 0; i < N; i++) powsum = pow(num[i] - ave, 2);
var = powsum/N; //分散のつもり
dev = sqrt(var);//標準偏差のつもり
printf("sum = %f\nave = %f\nmax = %d\nmin = %d\nvar = %f\ndev = %f\n", sum, ave, max, min, var, dev);
return 0;
}
608:デフォルトの名無しさん
07/05/21 18:52:28
宿題スレにどうしてC++固有の機能を使った問題が少ないのかな?
教官がCしかわからない頭の固いジジイが多いせいかもしれないな。
609:デフォルトの名無しさん
07/05/21 19:42:37
[1] 授業単元:c言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年05月22日08:00まで
よろしくお願いします。
610:デフォルトの名無しさん
07/05/21 19:43:18
>>608
Cレベルの宿題すら丸投げするんだから、C++レベル要求しても無駄かと
611:デフォルトの名無しさん
07/05/21 20:07:22
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):次の処理を行うプログラムを作成しなさい。
1、文字配列seiに姓を、文字配列namaeに名前を入力する。
2、seiにnamaeを連結させる。
3、seiの文字数をカウント表示する。
4、seiを出力する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:vc2005
[3.3] 言語:C++
[4] 期限:21時まで
[5] その他の制限:特になし
表示結果
姓は=> 永井
名前は=> さゆり
姓名は 永井さゆり です
文字数は 10 です
お願いします。
612:デフォルトの名無しさん
07/05/21 20:16:52
>>609
#include <stdio.h>
#define N 5
int main(int argc, char **argv)
{
int i, n, sum = 0;
double ave;
if (argc < 3)
return fprintf(stderr, "ファイル名を指定してください\n"), 1;
if (!freopen(argv[1], "r", stdin) || !freopen(argv[2], "w", stdout))
return fprintf(stderr, "ファイルが開けません\n"), 2;
for (i = 0; i < N && scanf("%d", &n) == 1; i++)
sum += n;
printf("平均値は%.1fです。\n", (double)sum/N);
return 0;
}
613:デフォルトの名無しさん
07/05/21 20:20:52
>>611
仕様と出力例が矛盾しとるようだな
614:デフォルトの名無しさん
07/05/21 20:26:49
>>565
#include<stdio.h>
int main(){
/*仕事中に携帯でこっそりやったら一時間以上かかった*/
int i, j;
for(i=1; i<=100; i++){
j = 0;
if(i%3 == 0){ printf("せんだ"); j += 1; }
if(i%5 == 0){ printf("みつお"); j += 1; }
if(!j){ printf("%d", i); }
putchar(' ');
if(j>1){printf("ナハナハ ");++i;}
}
return 0;
}
615:デフォルトの名無しさん
07/05/21 20:37:03
[1] 授業単元: C
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限:出来る限り早くお願いします。 無理言ってすいません。
[5] その他の制限:現在習っているのが関数、配列、制御文です。初心者です。よろしくおねがいします。
616:デフォルトの名無しさん
07/05/21 20:46:17 BE:29115735-2BP(222)
#include<stdio.h>
#include<ctype.h>
int alpha_jdg_cnt(int c){if(c=='.'){return 0;}if(isalpha(c)){return 1;}return 2;}
int main(void){int f,count=0;char s[256];do{printf("Input charactor:");fgets(s,256,stdin);
f=alpha_jdg_cnt(s[0]);if(f==1){count++;printf("ALPHABET : %i\n",count);}}
while(f!=0);return 0;}
617:デフォルトの名無しさん
07/05/21 20:47:34 BE:54348847-2BP(222)
>>611
>姓名は 永井さゆり です
>文字数は 10 です
何の文字数なのかと小一時間ry
618:デフォルトの名無しさん
07/05/21 20:50:38
姓 1
名 2
は 3
永 4
井 5
さ 6
ゆ 7
り 8
で 9
す 10
619:デフォルトの名無しさん
07/05/21 20:55:50
>>616
alpha_jdg_cntの中でカウントして無くないか?
多分static変数使って、関数内で出力するんでそ
620:デフォルトの名無しさん
07/05/21 20:56:47
>>615
#include <stdio.h>
int alpha_jdg_cnt(char);
int main(void) {
int cnt=0,flg;
char buf[32];
printf(">>\n\n");
do{
printf("Input character : ");
scanf("%s",buf);
flg=alpha_jdg_cnt(buf[0]);
if( flg == 1) {
cnt++;
printf("\nALPHABET : %d\n\n",cnt);
}
}while( flg!=0 );
printf("\n>>\n");
return 0;
}
int alpha_jdg_cnt(char ch) {
if( (ch>='A' && ch<='Z') || (ch>='a' && ch<='z') )
return 1;
else if( ch=='.' ) return 0;
return 2;
}
621:デフォルトの名無しさん
07/05/21 20:59:25
答えてる人ってやっぱりそういう職業に就いてる方?
それとも学生だったりします?
622:デフォルトの名無しさん
07/05/21 20:59:30
>>615 確かに、アルファベットのカウントも定義したライブラリの中か。それじゃこうか?
#include <stdio.h>
int alpha_jdg_cnt(char);
int main(void) {
int flg;
char buf[32];
printf(">>\n\n");
do{
printf("Input character : ");
scanf("%s",buf);
}while( alpha_jdg_cnt(buf[0])!=0 );
printf("\n>>\n");
return 0;
}
int alpha_jdg_cnt(char ch) {
static cnt=0;
if( (ch>='A' && ch<='Z') || (ch>='a' && ch<='z') ) {
cnt++;
printf("\nALPHABET : %d\n\n",cnt);
return 1;
}
else if( ch=='.' ) return 0;
return 2;
}
623:デフォルトの名無しさん
07/05/21 21:00:09
あ、流れに関係なく興味本位で聞いてみただけです
624:デフォルトの名無しさん
07/05/21 21:02:17
>>618
その通りです。
>>611をお願いします。
625:デフォルトの名無しさん
07/05/21 21:03:20
>>621
内定もらえない俺、将来有望なお前
626:デフォルトの名無しさん
07/05/21 21:04:59
>>624
>3、seiの文字数をカウント表示する。
嘘をつくな。
627:デフォルトの名無しさん
07/05/21 21:06:47
>>621
俺高卒ニート。
専門学校とか大学行ってる奴らってこんな宿題もできないんだね。
628:デフォルトの名無しさん
07/05/21 21:06:47
>>626
せいせいせいせいせいせーい、細かいことは気にするなフー!
629:デフォルトの名無しさん
07/05/21 21:08:57
>>627
全員ができないと思い込むあたり、やっぱりおまえ自身のレベルが低いってことだなw
ここで授業を受けている人の大半が質問しているわけじゃないだろ。
ほんの一部。ずるがしこい奴もいるだろうけど。
第一、こんなの最後に単位をもらっちゃえばどうでも良いことなんだよ。
卒業後に習ったことを使い続ける人でないならなおさらな。そんなもんだよ、社会ってのは。
630:デフォルトの名無しさん
07/05/21 21:11:13
はい釣れました
631:デフォルトの名無しさん
07/05/21 21:11:19
>>611 手抜き
#include <stdio.h>
#include <string.h>
#define STR_SIZE 256
int main()
{
char sei[STR_SIZE] = {0}, namae[STR_SIZE] = {0};
printf("姓は=> "); scanf("%s", sei);
printf("名前は=> "); scanf("%s", namae);
strcat(sei, namae);
printf("姓名は%sです\n", sei);
printf("文字数は%dです\n", strlen(sei));
return 0;
}
632:デフォルトの名無しさん
07/05/21 21:16:02
>>526の書いてある>>516のプログラムを解説していだたけないでしょうか?
まったく同じ課題が出ていて、「なぜそのプログラムのアルゴリズムで正しく動くのかについての解説を書く。」というのがあるのでお願いします。
633:思い込みによる勘違い低レベル馬鹿
07/05/21 21:18:18
627 名前:デフォルトの名無しさん 投稿日:2007/05/21(月) 21:06:47
>>621
俺高卒ニート。
専門学校とか大学行ってる奴らってこんな宿題もできないんだね。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
○〜に通っているやつらの中にはできない奴もいるんだね。
634:デフォルトの名無しさん
07/05/21 21:34:36
>>621
このスレで勉強すれば就職も夢じゃない!(※年齢制限有)
635:デフォルトの名無しさん
07/05/21 21:35:41
>>616=性帝トーマス◆13ThomasYo
トーマスですYO!
636:デフォルトの名無しさん
07/05/21 21:39:12
>>621
自分は職業としてプログラマやってるけど復習の為に時々やってる。
仕事はJavaメインだからC/C++を忘れないようにと。
637:デフォルトの名無しさん
07/05/21 21:50:53
>>621
元職業PG
鬱で退職して今はヒキ
仕事は辞めたが元々趣味でコード書いてたし、
やっぱ仕事じゃないプログラミングは楽しい。
638:デフォルトの名無しさん
07/05/21 21:55:53
>>621
組み込みのEmbedded C++ばかりやっているので普通のC++は
あまり知らない。テンプレートも例外処理も使えないC++でつ。
639:デフォルトの名無しさん
07/05/21 21:59:02
>>612
ありがとうございます!!
640:デフォルトの名無しさん
07/05/21 22:06:26
>>611
#include <iostream>
#include <cstring>
void ask(const char *prompt, char *buff, size_t len)
{
char c;
std::cout << prompt << std::flush;
if (!std::cin.get(buff, len))
std::cin.clear();
while (std::cin.get(c) && c != '\n')
;
}
int main(int argc, char **argv)
{
const int namelen = 256;
char sei[2 * namelen], namae[namelen];
ask("姓は=>", sei, namelen);
ask("名前は=>", namae, namelen);
std::strcat(sei, namae);
std::cout << "姓名は" << sei << "です\n"
<< "文字数は" << strlen(sei) << "です\n";
return 0;
}
>>621
もと三流請負システム屋なので、ちょっと難しい問題になると解けないんだYO。
641:デフォルトの名無しさん
07/05/21 22:09:29
俺ROM組だけど学生
暇つぶしに見てる
642:デフォルトの名無しさん
07/05/21 22:18:54
>>621
俺も学生。
化学科だから学校ではやってないけど趣味でプログラミングやってる。
でもここでは見てるだけ。
実用的なプログラムを作る他のスレでは作ってるけど。
643:デフォルトの名無しさん
07/05/21 22:23:59
[1] 授業単元: C
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: cygwin
[3.3] 言語: C
[4] 期限: 出来るだけ早めにお願いしたいです><
[5] その他の制限:特になし
自分でもやってみたのですが、全然上手くいきませんでした
力を貸していただけるとありがたいです
644:デフォルトの名無しさん
07/05/21 22:32:12
お願いしたいのはわかったが、期限はいつなんだ?
私はGUIはタルイからやらないけど・・・
645:643
07/05/21 22:32:27
すみません。
制限として、メニュー画面は上から「end」(終了)、「free」(フリー曲線)、
「moji」(文字の描画)、「line」(直線の描画)と、左上部に縦並びで表示して下さい。
よろしくお願いします。
646:643
07/05/21 22:33:44
度々すみません。
期限は5月23日です。
647:デフォルトの名無しさん
07/05/21 22:35:44
わざわざcygwinでXlibって、これまたマニアックな課題だな
648:デフォルトの名無しさん
07/05/21 23:00:07
>>632
ググってからどの辺が分からないのか聞いた方が良い。
基本的なところはWikipediaとかに載ってる
649:前スレ699,720
07/05/21 23:12:53
>>621
自分も学生ですね。
情報系なんだけどプログラミングの授業は始まったばかりなので、
趣味知識が大半かな・・・
答えたこと数回しかないんですけどね。
650:デフォルトの名無しさん
07/05/21 23:42:32
Javaでも悪くないがやっぱすVC++マンせー!
651:デフォルトの名無しさん
07/05/21 23:47:05
[1] 授業単元:アルゴリズム論
[2] 問題文(含コード&リンク):
抽象データ型「優先度つき待ち行列の半順序木による実現」を、配列を用いて実現せよ.
上の「優先度つき待ち行列の半順序木による実現」を用いて、与えれた整数配列を昇順に
並び換えて出力する関数を作成せよ.さらに以下の入力に対して実行せよ.
7 3 4 6 8 5 1 9
参考プログラム→URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007/05/23
[5] その他の制限: スタックとキューの辺り
よろしくお願いします。
652:デフォルトの名無しさん
07/05/22 00:06:36
[1] 授業単元:C++
[2] 問題文(含コード&リンク):C++で▽×Eの▽はどう表すでしょうか?
[3] 環境
[3.1] OS: Windows XP
[3.2] gcc
[3.3] 言語: C++
[4] 期限: 明日の朝
▽の表し方をどう作るのかわかりません・・・
よろしくお願いします。
653:デフォルトの名無しさん
07/05/22 00:14:21
>>652
URLリンク(www.google.co.jp)
654:デフォルトの名無しさん
07/05/22 01:07:14
[1] 授業単元:情報処理実習
[2] 問題文(含コード&リンク):fgetsを使ってキーボードからCTRL+D(EOFかNULLのことだと思います)
を入力されるまで文字を入力する。その後後ろから出力する。
例
入力: def
入力: ghi
入力: (Ctrl+D)
出力: ghi
出力: def
[3] 環境
[3.1] OS: Windows XP
[3.2] gcc
[3.3] 言語: C言語
[4] 期限: 明日の22時まで
よろしくお願いします。
655:デフォルトの名無しさん
07/05/22 01:10:48
>>652
ナブラよりも微分方程式をC++で解く方法がわかればいいんでしょ?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4185日前に更新/299 KB
担当:undef