C/C++の宿題片付けま ..
511:デフォルトの名無しさん
09/07/03 14:55:39
[1] 授業単元:情報基礎B
[2] 問題文(含コード&リンク):試験の点数10人分をキーボードから入力し、以下の内容を出力するプログラムを作成せよ。
平均点、標準偏差、得点の高い順の点数リスト(出来れば、バブルソート以外のアルゴリズムでお願いします。)
[3] 環境
[3.1] OS: Turbo Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 7月7日まで
[5] その他の制限:特にありません。よろしくお願いします。
512:デフォルトの名無しさん
09/07/03 15:35:32
>>493
最後の方の問題がよくわからなかったので、途中までだけれど
URLリンク(codepad.org)
『ベクトルv_1,v_2,...,v_nのすべての要素を計算し表示せよ。』まで実装済み
80行あたりまでが汎用の行列演算処理で、それ以降が今回の問題を解いている
513:512
09/07/03 15:39:58
「MltMatrix」って略し方に絶望した そこは「MulMatrix」だろぉぉぉorz
あと、SetMatrixRow関数の呼び出しでコンパイルエラーがでるようならコメントアウトを外してみて
SetMatrixRow(mat, 0, (NUM[]){3}/*&_v0[0]*/); → SetMatrixRow(mat, 0, &_v0[0]);
514:デフォルトの名無しさん
09/07/03 15:45:50
ピタゴラス数が生成されるみたいだね
515:デフォルトの名無しさん
09/07/03 16:07:54
>>511
URLリンク(kansai2channeler.hp.infoseek.co.jp)
516:デフォルトの名無しさん
09/07/03 16:22:29
>>514
この方法(ピタゴラス数を行列で計算する)は面白いな。初めてみた。
ぐぐったら「ピタゴラス行列」とか呼ばれてて、算数の愛好家には有名みたいだ。
517:デフォルトの名無しさん
09/07/03 16:32:04
>>512さん
本当にありがとうございます。とても助かります。
ちょっとコンパイルしてみます。
518:511
09/07/03 16:32:13
>>515
/tmp/cc9mdrSa.o(.text+0x1f2): In function `main':
: undefined reference to `pow'
/tmp/cc9mdrSa.o(.text+0x217): In function `main':
: undefined reference to `sqrt'
collect2: ld はステータス 1 で終了しました
コンパイルしてみたのですが、こんな表示が出ました。
これはどういうことでしょうか?
519:デフォルトの名無しさん
09/07/03 16:35:28
>>518
>>508
520:デフォルトの名無しさん
09/07/03 16:36:58
>518
その二つの関数が無かったよと
コンパイルの最後にmathが提供してる関数をくっつける作業があるんだけど
そのリンクの段階でもなかったよといわれてる
コンパイルで -lm つけないと
521:デフォルトの名無しさん
09/07/03 16:37:29
初歩的なことですが・・・
std::string aa;
aa.size(128);
char bb[128];
aaにbbを指定バイト分コピーするにはどうしたらいいですか?
ちなみにbbには0x00を含むバイナリデータも含んでいます。
522:デフォルトの名無しさん
09/07/03 16:37:53
どこにつけていいかわからないなら
makefileの中晒して
523:デフォルトの名無しさん
09/07/03 16:43:22
>>521
aa.assign(bb, bb + sizeof bb)
524:デフォルトの名無しさん
09/07/03 16:49:36
>>523
できました。ありがとうございます。
525:522
09/07/03 16:50:07
makefileって何ですか??
526:デフォルトの名無しさん
09/07/03 16:55:43
出題がgccである事をいい事にまたC99でソースを書いてるカスがいるな
527:デフォルトの名無しさん
09/07/03 16:59:09
>>525
拡張子無しのmakefileというのがあるんだけど
コンパイルってmakeとかmake rebuildとかコマンドでやてるんでしょ?
528:511
09/07/03 17:02:35
>>527
cc ファイル名.c ってやるとコンパイルできるタイプなんですが・・・・
529:デフォルトの名無しさん
09/07/03 17:10:43
ソースは何で編集してるんだろうww
linuxのコマンドとかそんなのまで説明しないといけないのか?
530:511
09/07/03 17:13:45
kwrite編集して、コンソールでこんぱいるしておます。
531:511
09/07/03 17:15:49
kwriteで編集して、コンソールでこんぱいるしておます。
532:511
09/07/03 17:31:32
>>529
いま言われた通りやってみたらできました!!!
ご迷惑お掛けしました。ありがとうございました!
533:デフォルトの名無しさん
09/07/03 17:56:21
まじ神っす!!
534:デフォルトの名無しさん
09/07/03 19:01:05
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
例えば下図に示すように,通行可能なマス目に'0'が,障害物があって通行不能なマス目に'+'が記されている盤がある.
盤の左上をスタート地点,右下をゴール地点として,経路を表示するプログラムを作りなさい.
盤の例
0 0 + 0 +
+ 0 0 0 +
0 + + 0 0
0 0 + 0 0
+ 0 0 0 0
例えばこのようなアルゴリズムが考えられる.
1) 現在位置を表示の後、進行方向に対して,右に進めるなら右に,そうでなければ直進,それもだめなら左に,さらにそれもダメなら後退する.
2) 1を繰り返してゴールに達したらその旨を表示する.ただし,マス目の数分だけ移動してもゴールに達しない場合はその時点で終了する.
入力形式は、
%> ./a.out 00+0+ +000+ 0++00 00+00 +0000
とする.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 7/13
お願いします。
535:デフォルトの名無しさん
09/07/03 20:06:23
>>534 右手沿い
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char *argv[]){
int width[100]={0}, height, try_count=0, i, j, x=-1, y=0, d, pd=0;
int vx[4]={ 1, 0,-1, 0}, vy[4]={ 0,-1, 0, 1};
if(argc<2) return 1;
height=argc-1;
for(i=0;i<height;i++){
try_count+=(width[i]=strlen(argv[i+1]));
for(j=0;argv[i+1][j];j++) printf("%c ", argv[i+1][j]);
printf("\n");
}
for(i=0;i<try_count;i++){
for(j=0;j<4;j++){
d=(pd+j+3)%4;
if(x+vx[d]<0 || x+vx[d]>=width[y] || y+vy[d]<0 || y+vy[d]>=height) continue;
if(argv[y+vy[d]+1][x+vx[d]]!='0') continue;
x+=vx[d];
y+=vy[d];
pd=d;
break;
}
if(x==width[y]-1 && y==height-1) break;
}
if(i<try_count) printf("\nゴールに達した\n");
return 0;
}
536:デフォルトの名無しさん
09/07/03 20:35:10
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): 乱数を使って配列に値を代入するようにせよ。サイズを変化させて時間を計測してみせよ。
サイズが十倍になると計算結果は何倍になるか?
[3] 環境
[3.1] OS: Windows/vista
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C++
[4] 期限: ([2009年07月9日まで]
[5] その他の制限: 乱数はrand()関数、clock()関数を利用する。
537:デフォルトの名無しさん
09/07/03 20:38:01
>>536の参照データっぽいもの
#include<stdio.h>
void soft_swap(int *x,int *y)
{
int temp;
if(*y<*x){temp=*y;
*y=*x;
*x=temp;}}
void sort_array(int a[],int size){
int i,j;
for(j=0;j<size-1;j++){
for(i=0;i<size-1;i++){
soft_swap(&a[i],&a[i+1]);}}}
int main()
{
int a[100],i,size;
printf("数列のサイズを入力してください\n");
scanf("%d",&size);
printf("数列を入力してください\n");
for(i=0;i<size;i++){
scanf("%d",&a[i]);}
printf("\n");
for(i=0;i<size-1;i++){
sort_array(a,size);}
for(i=0;i<size;i++){
printf("%d",a[i]);}
printf("\n");
return(0);
538:デフォルトの名無しさん
09/07/03 21:14:23
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:7月8日 17:00
[5] その他の制限:
539:デフォルトの名無しさん
09/07/03 21:56:21
>>538 課題5
始めにファイル名入れる?
540:デフォルトの名無しさん
09/07/03 22:08:20
1] 授業単元: 数値計算プログラミング
[2] 問題文(含コード&リンク): (1)√57を求めよ (2)三乗根の7を求めよ
(3)f(x)=3x^3+2x^2+5x-15=0の解を求める
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C++
[4] 期限: ([2009年07月10日まで]
[5] その他の制限:ニュートン法を用いる 初期値 x0=1
541:デフォルトの名無しさん
09/07/03 22:24:47
>>536
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こんなくだらない内容だと解釈したけど本当に合ってるのだろうか・・・。
542: ◆/91kCCQXBo
09/07/03 22:43:48
>>538 課題4 % gcc -o score score.c
URLリンク(jbbs.livedoor.jp)
>>538 課題5 % gcc -o score2 score2.c
URLリンク(jbbs.livedoor.jp)
543:デフォルトの名無しさん
09/07/03 23:07:12
>>540
// ニュートン法で「f(x) = 0」を解く
#include <iostream>
// f(x) および f'(x)
double f1(double x) { return x*x - 57; }
double f1d(double x) { return 2*x; }
double f2(double x) { return x*x*x - 7; }
double f2d(double x) { return 3*x*x;}
double f3(double x) { return 3*x*x*x + 2*x*x + 5*x - 15; }
double f3d(double x) { return 9*x*x + 4*x + 5; }
int main() {
int n; double x; // 繰り返し回数、初期値
n = 10; x = 1.0;
while (n--) { x -= f1(x) / f1d(x); }
std::cout << "(1) " << x << std::endl;
n = 10; x = 1.0;
while (n--) { x -= f2(x) / f2d(x); }
std::cout << "(2) " << x << std::endl;
n = 10; x = 1.0;
while (n--) { x -= f3(x) / f3d(x); }
std::cout << "(3) " << x << std::endl;
return 0;
}
544:デフォルトの名無しさん
09/07/03 23:50:03
いきなりですいません!!
コンパイラしてくれるサイトってありませんでしたっけ??
以前使ったんですけど忘れてしまって...CやらC++やら選択できてコンパイルしたいデータ貼っつけてって感じのダウンロードいらずのサイトなんですけど。。;;
ネットで調べているんですが出てこなくて。
場違いなのはわかっていますが
ここの人なら知ってると思いまして。。
本当すいません
545:デフォルトの名無しさん
09/07/03 23:52:49
>>544
codepad でググるとか
546:デフォルトの名無しさん
09/07/04 00:07:07
そう!それです!codepadでした!!
早くも返答ありがとうございます!
なんかスッキリしましたw
これでレポートだせそうです。
ありがとうございます!
547:デフォルトの名無しさん
09/07/04 00:38:41
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
下に示すように,非負の整数値を読み込んで,その数を逆順に表示するプログラムを作成せよ。
なお,負の値を読み込んだ場合は,再入力を促すメッセージを表示すること。
非負の整数を入力してください: 1963
1963 を逆から読むと3691 です.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 09年07月04日
[5] その他の制限:なし。
548:547
09/07/04 00:41:31
[4] 期限: 09年07月06日
でした^^;
549:デフォルトの名無しさん
09/07/04 01:01:56
[1] 授業単元: プログラミング
[2] 問題文
二つの整数をキーボードから入力して、ユークリッドの互除法を用いて最大公約数を求めよ。
ただし、関数の再帰呼び出しを用いること。
[3.1] OS Windows
[3.2]VisualC++
[3.3] 言語 C++
[4] 期限:7月6日
わかる方どうかよろしくお願いします。
550:デフォルトの名無しさん
09/07/04 01:13:10
>>547
#include <stdio.h>
int main(void) {
int input;
do {
printf("非負の整数を入力してください: ");
scanf("%d",&input);
} while(input < 0);
printf("%dを逆から読むと",input);
do {
printf("%d",input % 10);
input /= 10;
} while(0 < input);
printf("です");
return 0;
}
551:デフォルトの名無しさん
09/07/04 01:13:59
>>549
#include <iostream>
int gcd(int a, int b)
{
int r = a % b;
if(r==0) return b;
return gcd(b, r);
}
int main()
{
int a, b;
std::cin >> a >> b;
std::cout << gcd(a,b);
}
552:デフォルトの名無しさん
09/07/04 01:19:19
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
(1)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
(2)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 3日後まで
[5] その他の制限: 構造体
よろしくお願いします。
553:デフォルトの名無しさん
09/07/04 01:22:20
>>547
URLリンク(kansai2channeler.hp.infoseek.co.jp)
無駄に1023桁までの非負の整数値で遊べるようにしてみた。
554:デフォルトの名無しさん
09/07/04 01:26:10
表示するだけなのに、いちいち逆順の文字列を作るのは無駄。
555:デフォルトの名無しさん
09/07/04 01:33:16
それ以前に
>*(reverse + length - i - 1) += *(str + i);
これはねーよw
556:デフォルトの名無しさん
09/07/04 01:33:28
>>554
つい、後でこれを他にも使いまわすように拡張するかもしれんとか考えちゃう人でごめんね。
557:デフォルトの名無しさん
09/07/04 01:35:48
>>555
じゃぁどう書けばいいと思う?
558:デフォルトの名無しさん
09/07/04 01:36:55
こんな題意も満たしてない糞コード、他に使いまわすとか正気かよw
559:デフォルトの名無しさん
09/07/04 01:42:07
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):url.txtに書き込まれている"http://〜をhttp://〜に書き換えresult.txtに出力せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年07月05日19:00まで
[5] その他の制限: とくになし
よろしくお願いします.
560:デフォルトの名無しさん
09/07/04 01:43:33
>>559
追記です
できればコメントも書いて頂けるとうれしいです.
561:デフォルトの名無しさん
09/07/04 01:46:53
>>557
普通に計算だけでなんとかならねえ?
562:デフォルトの名無しさん
09/07/04 01:54:39
+=じゃなくて=
mallocで確保した領域は0クリアされてるとは限らない。
そこに文字を足すと元の文字とは別になる可能性が高い。
っていうかお前>>346だろ?
似たようなことやっときながら、全然成長してないのな。
563:デフォルトの名無しさん
09/07/04 01:55:21
>>553
mallocの確認と解放してない。
書き捨てPGならいいけど、課題ならやっととかないと講師がうるさい。
fgetsでは常に改行が入るとは限らないからmain文のfor文で暴走の可能性あり。
っていうかstrlenとかstrchr使えばおk
564:デフォルトの名無しさん
09/07/04 01:58:06
>>561
ちょっと頭冷やしてきて改めて見たら、言われた通り糞コードだった。
565:デフォルトの名無しさん
09/07/04 02:07:37
>>552(1)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
566:デフォルトの名無しさん
09/07/04 02:15:34
>>562
そこは普通に書き間違えてる。
本人は=書いたつもり。
>>563
strlen使ってないのはわざとやってる。
fgetsは素で間違えた。
こんなクソコードにツッコミ入れてくれてありがとう。
567:デフォルトの名無しさん
09/07/04 02:40:45
なんとなーく、だけど、
while(input) {
printf("%d", input%10);
input /= 10;
}
を期待した課題だと思う
568:デフォルトの名無しさん
09/07/04 02:41:57
ごめん>>550見てなかった
569:デフォルトの名無しさん
09/07/04 02:54:30
>>552
Complex c_div(Complex s, Complex t)の部分や、sscanfというものが解りません。
もう少し簡単にして頂けないでしょうか?
570:デフォルトの名無しさん
09/07/04 03:17:52
>>569
題意の通りじゃないの?
571:デフォルトの名無しさん
09/07/04 03:18:53
>>565ではないが
sscanfは文字列に対してscanfする関数
c_divは仕様通りだから。。
572:デフォルトの名無しさん
09/07/04 03:25:18
ならsscanf()は使わずに危険なscanf()でも使って書き直そうか
573:デフォルトの名無しさん
09/07/04 03:26:20
つーか誰か(2)やってくれ
だるい
酒飲んでるし
574:デフォルトの名無しさん
09/07/04 03:30:54
>>569
(1)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
(2)は誰か任せた
寝る
575:デフォルトの名無しさん
09/07/04 03:32:50
>>552 (2)ってポインタ使っていいのか?
構造体の実体渡すの?
576:デフォルトの名無しさん
09/07/04 03:36:02
>>574
ありがとうございました。
577:デフォルトの名無しさん
09/07/04 03:40:22
typedef struct{
int bunshi, bunbo;
}bunsu;
bunsu* bunsu_seki(bunsu* A,bunsu* B)
{
if(A == NULL) return NULL;
if(B == NULL) return NULL;
bunsu C;
C.bunshi = A->bunshi * B->bunshi;
C.bunbo = A->bunbo * B->bunbo;
return &c;
}
578:デフォルトの名無しさん
09/07/04 03:42:02
あーーーーーーーーーーーーすまん>>577は無しで
typedef struct{
int bunshi, bunbo;
}bunsu;
bunsu* bunsu_seki(bunsu* A,bunsu* B)
{
if(A == NULL) return NULL;
if(B == NULL) return NULL;
bunsu* C = (bunsu*)malloc(sizeof(bunsu));
if(C == NULL) return NULL;
C->bunshi = A->bunshi * B->bunshi;
C->bunbo = A->bunbo * B->bunbo;
return C;
}
579:デフォルトの名無しさん
09/07/04 03:42:34
>>569 (2)
bunsu bunsu_seki(bunsu a, bunsu b)
{
a.bunsi *= b.bunsi;
a.bunbo *= b.bunbo;
return a;
}
>>577
だめじゃね?
580:デフォルトの名無しさん
09/07/04 03:45:31
>>578
どんどん話がややこしい方にすすんでるし題意は満たしてないし
581:デフォルトの名無しさん
09/07/04 03:50:55
いかん
ついつい・・>>552の(2)は>>579でいいね
>>577>>578はなしで
582:デフォルトの名無しさん
09/07/04 03:52:17
ポインタで渡す方が処理が速い伝説に惑わされたらいかんよ
583:デフォルトの名無しさん
09/07/04 03:55:52
実際どっちがいいんだろうね
もっとでかい構造体をリストにして扱うことがほとんどなのでついつい
584:デフォルトの名無しさん
09/07/04 03:56:21
>>574
何か消し忘れた#defineが残ってるな
あれは不要だから消しとけ
585:デフォルトの名無しさん
09/07/04 03:57:50
リストにするなら隣のポインタ持たないとダメだからしょうがないけど。
試しにベンチでもやってみたら?
>>578のはちゃんと呼び出し側でfreeしないとメモリどんどん使うから気をつけてね
586:デフォルトの名無しさん
09/07/04 04:25:38
[1] 授業単元:C+
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
OS: vista
コンパイラ名とバージョン: gcc
言語:C
[4] 期限: 一週間
[5] その他の制限:
4題あります。
テストの類題なのでなるべく簡単に題意を満たす解答をお願いします。
587:デフォルトの名無しさん
09/07/04 04:28:35
>>559
URLリンク(kansai2channeler.hp.infoseek.co.jp)
588:デフォルトの名無しさん
09/07/04 05:08:00
>>586
1.
int sum1toN(int n)
{
int i, s;
for(i = 1, s = 0; i <= n; i++){
s += i;
}
return s;
}
2.
#include <stdio.h>
#define PAI 3.14159
void circle(double r, double *enshu, double *menseki);
int main(void){
double r, enshu, menseki;
printf("半径を入力 >>");
scanf("%lf", &r);
circle(r, &enshu, &menseki);
printf("円周 = %f 面積 = %f\n"
, enshu, menseki);
return 0;
}
void circle(double r, double *enshu, double *menseki)
{
*enshu = 2.0 * PAI * r;
*menseki = PAI * r * r;
return;
}
589:デフォルトの名無しさん
09/07/04 05:08:42
>>586 続き
3.
#include <stdio.h>
int main(void)
{
int a[8] = { 1, 2, 3, 4, 5, 6, 7, 8 }, i;
for(i = 0; i < 8; i++){
if(7 - 2 - i >= 0) a[7 - i] = a[7 - 2 - i];
else a[7 - i] = 0;
}
for(i = 0; i < 8; i++)
printf("a[%d] = %d\n", i, a[i]);
return 0;
}
4.
#include <stdio.h>
int main(void){
char ch[81], max;
int i;
gets(ch);
for(i = 0, max = '\0'; ch[i] != '\0'; i++){
if(ch[i] > max) max = ch[i];
}
printf("文字コード最大は%c <%d>\n", max, max);
return 0;
}
590: ◆/91kCCQXBo
09/07/04 08:06:02
>>547 0123 の逆順 3210
URLリンク(jbbs.livedoor.jp)
591:デフォルトの名無しさん
09/07/04 11:41:47
>>586
(1)
int sum1toN(int n){
return (n + 1)*n/2;
}
オーバーフローしたら知らん。
592:デフォルトの名無しさん
09/07/04 11:58:38
>>591
仕様は満たしているが、出題者の意図に沿ってないような…。
593:デフォルトの名無しさん
09/07/04 12:03:29
>>592
やっぱ模範解答は>>588だよね。
こっちはこんなのもあるよ程度で。
594:デフォルトの名無しさん
09/07/04 12:40:12
>>586
(3)
#include <stdio.h>
#define SHIFT_NUM 2
#define ARRAY_SIZE 8
int main(void){
int a[ARRAY_SIZE] = {1,2,3,4,5,6,7,8}, i, j;
for(i = 0; i < SHIFT_NUM; ++i){
for(j = ARRAY_SIZE - 1; j > 0; a[j] = a[j-1], --j);
a[0] = 0;
}
for(i = 0; i < ARRAY_SIZE; ++i)
printf("a[%d]=%d\n", i, a[i]);
return 0;
}
簡単かどうかと言われるとどうなんだろう。
595:デフォルトの名無しさん
09/07/04 13:34:22
[1] 授業単元: 関係演算子
[2] 問題文(含コード&リンク):
どんな計算式でもいいが、10で割ると余りが0になる場合だけをprintf文で表示させろ
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: gcc )
[3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 明後日まで
[5] その他の制限: 制限なし
596:デフォルトの名無しさん
09/07/04 13:53:08
>>595
#include <stdio.h>
int main(void){
int n = 100;
if( n%10 == 0 ){
printf("%dは10の倍数\n");
}
return 0;
}
こういう意味でおk?
597:デフォルトの名無しさん
09/07/04 13:54:51
>>596
訂正:
printf => printf("%dは10の倍数\n", n);
598:デフォルトの名無しさん
09/07/04 14:01:36
どんな計算式の、計算式が重要。n=100か?
599:デフォルトの名無しさん
09/07/04 14:09:58
>>598
どんな10で割ったら余りが0になる数値を特定しろ
特定方法(計算式)はどんなのでも構わない
って意味じゃないの?
600:598
09/07/04 14:15:41
商を用いて、10で割ると余りが0になる場合だけをprintf文で表示させろ <= これが設問じゃないかと
どんな計算式でもいいが商を用いて、10で割ると余りが0になる場合だけをprintf文で表示させろ
601:デフォルトの名無しさん
09/07/04 14:23:18
>>587
ありがとうございます。
602:599
09/07/04 14:28:30
>>600
int n1, n2
n1 = 123; /* 調査対象 */
n2 = n1 / 10;
n2 *= 10;
if(n1 - n2 == 0){
表示処理
}
こんなん?
603:aka
09/07/04 14:33:17
情報オリンピックの2008年度予選問題3の連鎖のプログラムを教えてください。
URLリンク(www.ioi-jp.org)
604:598
09/07/04 14:33:30
ループすべき。
#include <stdio.h>
int main() {
int ans;
for(ans=-21;ans<=21;ans++)
if(!(ans%10)) printf("%d ",ans);
else printf(".. ");
}
605: ◆/91kCCQXBo
09/07/04 14:58:08
URLリンク(jbbs.livedoor.jp)
>>538 課題1 % gcc -o space space.c
#include <stdio>
>>538 課題2 % gcc -o innpro innpro.c
#include <stdio>
>>538 課題3 % gcc -o janken janken.c
char janken_com(int seed){
int t;
srand(seed); //乱数の種(seed)を設定.
t=rand()%3; //rand()は整数の乱数を返す関数.rand()%3により0から2の乱数を発生させることができる.
if(t==0) return 'g';
if(t==1) return 'c';
return 'p';
}
606:デフォルトの名無しさん
09/07/04 16:03:08
[1] 授業単元:C
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 7月7日
[5] 番号の場所を書き直すようお願いします。
607:デフォルトの名無しさん
09/07/04 16:07:08
[1] 授業単元:プログラミング言語2
[2] 問題文(含コード&リンク)
簡単なデータベース機能を持つプログラムを作成しなさい.対象となるデータは自分で考えてください.
(住所録,商品の在庫,図書,ワールドカップの勝敗....)
以下の要件を示します.
1. ファイルからデータを読み込む機能をつけること.
2. データは4つ以上の項目を保持させること.
(住所録では、「名前」「住所」「郵便番号」「電話番号」等で4項目以上)
3. 並び替えの機能をつけること.また並び替える項目が指定できること.
4. 各項目についてデータの検索を行う機能をつけること.また,検索条件を組み合わせることができること.
(住所録なら,「郵便番号」が 399 で始まって,かつ,「電話番号」が 026 で始まる 等)
5. データは半角英数字(英語やローマ字)で扱ってよい
6. データの追加ができること.
7. データの削除ができること.削除は上記の検索と組み合わせることで,ある条件に合致したデータを削除できること.
8. 追加・削除した結果をファイルに保存できること.
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: cygwinのgccです。 バージョンはわかりません。
[3.3] 言語: C
[4] 期限: 2009年7月13日まで
[5] その他の制限: 双方向リストまで、終わりました。
対象となるデータは住所録でお願いします。
プログラムに説明を付けてくれると、助かります。
よろしくお願いします。
608: ◆/91kCCQXBo
09/07/04 16:33:55
>>595
#include <stdio.h>
int main(int argc, char *argv[]) {
int i, c;
FILE *fp;
if(argc < 2) {
printf("Usage : %s filename.ext", argv[0]); return 1; }
if((fp=fopen(argv[1],"r")) == NULL) {
printf("%s file open error!", argv[1]); return 1; }
puts("ASCIIコードが10の倍数の時の、ファイル先頭からの位置:");
for(i=1; (c=getc(fp)) != EOF; i++) { // 結果の値はファイルから読み込む
if(!(c%10)) printf("%dx%d ", i, c); // 結果の値が、10 で割ると余りが0になる場合だけを表示
// else if(!(i%10)) printf("x%d ", c); // 繰返しの回数が、10 で割ると余りが0になる場合
// else printf("."); // その他の場合
}
fclose(fp);
}
609:デフォルトの名無しさん
09/07/04 18:07:38
>>603
URLリンク(kansai2channeler.hp.infoseek.co.jp)
610: ◆/91kCCQXBo
09/07/04 18:57:23
>>606 リストを用いて個人データを格納する表を作成。(穴埋め問題)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
611:デフォルトの名無しさん
09/07/04 19:29:17
>>609
これ「落ちた状態」をいちいち作って数えたんだけど
よく考えたらその必要なかった…。無駄無駄無駄ー!
612:デフォルトの名無しさん
09/07/04 19:53:43
未回答文plz
613:デフォルトの名無しさん
09/07/04 20:12:41
>>603
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>609で作ったやつの修正版
614:デフォルトの名無しさん
09/07/04 20:55:21
>>607
>8. 追加・削除した結果をファイルに保存できること.
これって追加・削除の「履歴」じゃなくて単に「現在のデータ」でいいんだよね?
615:デフォルトの名無しさん
09/07/04 21:21:31
[1] 授業単元: C言語
[2] 問題文
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これを参考に、100人以内の生徒ID、名前を入力するプログラムを作る
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VisualC++
[3.3] 言語 C
[4] 期限: 7月6日
[5] その他の制限 ソースプログラムにある形の関数を使うこと
616:デフォルトの名無しさん
09/07/04 21:34:14
>>615
これでいいのかな
#include<stdio.h>
#include<string.h>
#define SIZE 100
略
int main(){
int i;
student_type students[SIZE];
for( i = 0; i < SIZE; ++i ){
read_student( &students[i] );
}
}
617:デフォルトの名無しさん
09/07/04 22:26:52
>>613
高校生でも分かる簡単なプログラムになりませんかね?
図々しくてごめんなさい…
ぜひお願いします。
618:613
09/07/04 22:37:57
>>617
いや、そう言われても…
この板の住人なら高校生でも>>613は読めると思うが
一般的な高校生レベルってどんなのよ
まあ、どの行がわからんのか言ってみれ
619:デフォルトの名無しさん
09/07/04 22:52:23
ホント無知で申し訳ないっす。。
printf("%s : %d --> %d\n", filename, N, min);
free(array);
fclose(fp);
}
int check_okikata(int *array, int size, int index, int color)
{
らへんがよく分かりません
どういう意味でしょう?
620:デフォルトの名無しさん
09/07/04 23:30:29
>>614
そうです。
項目が削除されたリストと、項目が追加されたリストを出力します。
621:デフォルトの名無しさん
09/07/04 23:35:28
>>619
つまり動的な配列の確保(mallocとfree)がわからないんだな
じゃあ固定配列で書き換えるから
622:デフォルトの名無しさん
09/07/04 23:56:20
>>619
malloc()とfree()を使わないようにした
URLリンク(kansai2channeler.hp.infoseek.co.jp)
623:デフォルトの名無しさん
09/07/05 00:18:10
>>620
えっ?2つのリストが出力されるの!?
追加や削除をして変更された「現在のデータベースのデータ」のリスト1つじゃないの?
624:デフォルトの名無しさん
09/07/05 01:35:36
[1]数値情報解析
[2]ガウス−ザイデル法によりn元1次方程式を解くプログラムを作りなさい。
[3]
[3.1]Windows
[3.2]Visual Studio 2008
[3.3]C
[4]2009年7月15日
[5]ほぼ素人なので、少しでも優しい表現にしていただけるようよろしくお願い致します。
あと、パワーポイントでこのプログラムのフローチャートを書いていただければありがたいです。
625:デフォルトの名無しさん
09/07/05 02:42:19
>>624 >>162 問題 >>174 >>177 >>183 解答
626:デフォルトの名無しさん
09/07/05 02:57:38
ガウスザイデル法って反復法だからガウス法と違うだろ
627:デフォルトの名無しさん
09/07/05 03:19:53
C++なんですが、
文字変数aの中身が'a'ならば『aが格納されています』と表示させ、'a'でないならば、
『'a'でない文字が格納されています』と表示させるプログラムを作成せよ
誰かお願いします
#include<iostream>
using namespace std;
int main(){
return 0;
}
628:デフォルトの名無しさん
09/07/05 03:21:02
>>627ですが、間違えました。
文字変数aの中身→文字変数mの中身
でした
629:デフォルトの名無しさん
09/07/05 03:22:32
ファイルから読み込みするの?
それともキーボードの入力を待って入力された文字を判断するの?
630:デフォルトの名無しさん
09/07/05 03:26:02
>>627
文字変数mの中身が'a'ならば『aが格納されています』と表示させ、'a'でないならば、
『'a'でない文字が格納されています』と表示させるプログラムを作成せよ
としか書かれてないんですよね。
ただ書き始めと終わりは下の定型文みたいのを使うんですが
#include<iostream>
using namespace std;
int main(){
return 0;
}
631:デフォルトの名無しさん
09/07/05 03:26:46
>>630ですが間違えました
>>627じゃなくて>>629でした
632:デフォルトの名無しさん
09/07/05 03:55:39
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
下に示すように,非負の整数を次々と読み込んでいき,各値の二乗値の和を表示するプログ
ラムを作成せよ.なお,整数の読み込みは,負の整数を読み込んだ段階で終了するものとし,
その数の二乗値の和は加算しないものとする.
整数を入力してください
整数1 : 3
整数2 : 5
整数3 : -1
二乗値の合計は34 です.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 09年07月07日
[5] その他の制限:なし。
633:デフォルトの名無しさん
09/07/05 04:00:22
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
下に示すように,行数と列数を読み込み,1 行目には1234567890…を列数の個数だけ,2 行
目には2345678901…を列数の個数だけ,…と表示するプログラムを作成せよ.
ファイル提出: 実行ファイル
何行ですか: 7
何列ですか: 12
123456789012
234567890123
345678901234
456789012345
567890123456
678901234567
789012345678
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 09年07月07日
[5] その他の制限:なし。
634:デフォルトの名無しさん
09/07/05 04:02:16
>>632
#include <stdio.h>
int main(void)
{
int i = 0, sum = 0, n;
while(1) {
printf("整数%d :", ++i);
scanf("%d", &n);
if(n < 0) break;
sum += n * n;
}
printf("二乗値の合計は%d です.\n", sum);
return 0;
}
635:デフォルトの名無しさん
09/07/05 04:06:28
>>633
#include <stdio.h>
int main(void)
{
int i, j, n, m;
printf("何行ですか:");
scanf("%d", &n);
printf("何列ですか:");
scanf("%d", &m);
for(i=1; i<=n; i++) {
for(j=0; j<m; j++) printf("%d", (i+j)%10);
putchar('\n');
}
return 0;
}
636:デフォルトの名無しさん
09/07/05 06:59:52
>>627
#include<iostream>
using namespace std;
int main(){
char m;
if (m == 'a') cout << "『aが格納されています』" << endl;
else cout << "『'a'でない文字が格納されています』" << endl;
return 0;
}
637: ◆/91kCCQXBo
09/07/05 09:01:09
>>627 関数が使えるなら。
#include<iostream>
using namespace std;
namespace {
int m;
void sub(void) {
if (m == 'a') cout << "『aが格納されています』" << endl;
else cout << "『'a'でない文字が格納されています』" << endl;
}
}
int main(){
m='a';
sub();
m='x';
sub();
return 0;
}
638: ◆/91kCCQXBo
09/07/05 09:47:08
>>627 テンプレートの中だけ書く。>>626 は無しで。
char m = '\a';
int i;
char data[4]={'m', 'a', 'i', 'n'};
for(i=0; i<=sizeof data/sizeof(char); m = data[i++]) {
if (m == 'a') cout << "『'a'が格納されています』\n";
else cout << "『'a'でない文字が格納されています』\n";
}
639:デフォルトの名無しさん
09/07/05 10:42:52
そのループはギャグのつもり?
640:デフォルトの名無しさん
09/07/05 10:51:16
1週間ぐらい前に文字列表示とか、四則演算とか聞いてた人でしょ。
授業は if 文に入ったらしいが、何も分からないから全部聞くと。
641: ◆/91kCCQXBo
09/07/05 12:35:40
>>595 ループか関数のどちらかは使う必要あり。
#include <stdio.h>
void div10(int c) {
if(c%10) ; else printf("%dは10で割り切れる数\n", c);
}
int main() {
div10(1);
div10(20);
div10(21);
div10(30);
div10(13);
return 0;
}
642:デフォルトの名無しさん
09/07/05 13:10:10
>>638
そのおソースは頂けない
せめてこうしよう
#include <iostream>
using namespace std;
int main()
{
char* data = "main";
for(char* ite = data;*ite != '\0';ite++){
if(*ite == 'a') cout << "aが格納されています" << endl;
else cout << "'a'でない文字が格納されています" << endl;
}
return EXIT_SUCCESS;
}
643: ◆/91kCCQXBo
09/07/05 13:29:31
>>627 どお?
#include <iostream>
using namespace std;
int main(){
int i = 0;
char m, data[] = {'m', 'a', 'i', 'n'};
while( m = data[i], i++ < sizeof data/sizeof(char) ) {
if (m == 'a') cout << "『'a'が格納されています』\n";
else cout << "『'a'でない文字が格納されています』\n";
}
return 0;
}
644:デフォルトの名無しさん
09/07/05 13:53:38
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
モンテカルロ法を用いて、円周率を計算しなさい。なおランダムに打つ点は1000点用いること。
また上記プログラムを改良して、50点打つごとに、真の円周率(ここでは3.1415926とします)
との差を求め、その差をスペースと*を用いてグラフ化しなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:7/9
[5] その他の制限:
申し訳ありませんがよろしくお願いします
645:デフォルトの名無しさん
09/07/05 16:52:12
>>644
喜べ、これでキミは英雄だ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
hit-or-missは中心(0,0)半径1の円に入るかどうかで判定した
一様乱数はC標準のものを用いた
おまけとして100000回試行したデータも付けておいた
この判定法と乱数では試行回数が1000回では不十分であると分かるはずだ
改善は他の住人に任せた
646:デフォルトの名無しさん
09/07/05 17:11:25
>>535
遅くなりました
ありがとうございます><
647:デフォルトの名無しさん
09/07/05 17:40:26
>>638
sizeof data/sizeof(char)
>>639が指してるのがこれかどうか分からんけど、とりあえず気持ち悪い
648:デフォルトの名無しさん
09/07/05 17:43:21
>>647
固定配列のサイズを表現する普通の記述だが
なんで気持ち悪いと思う?
649:デフォルトの名無しさん
09/07/05 17:46:18
そっか。
俺ならsizeof(data)/sizeof(data[0])と書くから。
片方にしか括弧つけない意味も分からないし。
650:デフォルトの名無しさん
09/07/05 17:49:14
ああ、そういう意味なら気持ち悪いな
確かに
651:デフォルトの名無しさん
09/07/05 17:51:08
[1] 授業単元:数値計算
[2] 問題文(含コード&リンク):Ax=bの連立1次方程式の解を求めるプログラムを作成しなさい。
(この行列を使用してください
A={{10,-9,0,0,0,0,0},
{-9,17,-8,0,0,0,0},
{0,-8,17,-9,0,0,0},
{0,0-9,13,-4,0,0},
{0,0,0,-4,12,-8,0},
{0,0,0,0,-8,10,-2},
{0,0,0,0,0,-2,2}}
b={0,0,0,0,0,0,7})
[3] 環境
[3.1] OS: Windows Vista
[3.2] Visual Studio 2008
[3.3] 言語: C++
[4] 期限: 2009年7月1日まで]
[5] その他の制限:特にありませんがなるべく簡単なものでお願いします
解が{0.37,0.41,1.28,2.06,3.81,4.69,8.19}に近いものになるはずです。
652:デフォルトの名無しさん
09/07/05 17:53:09
>>651
既に期限過ぎてるんだが
653:デフォルトの名無しさん
09/07/05 17:53:15
あとsizeof(char)は常に1だから冗長とかいう奴もよくいるねw
おれは冗長でも書くべきと思う派
654:デフォルトの名無しさん
09/07/05 17:54:36
>>650
どういう意味なら気持ち悪くないの?
655:デフォルトの名無しさん
09/07/05 17:57:09
>>648
読みにくいし i <= sizeof〜 だと境界越えてるじゃん
>>642とどっちが読みやすいよ
656:デフォルトの名無しさん
09/07/05 18:00:36
うわあほんとだ。。。
sizeof記述の気持ち悪さに気を取られすぎた俺バカ
657:デフォルトの名無しさん
09/07/05 18:18:03
<<651
私の計算ミスでした。すいません
658:デフォルトの名無しさん
09/07/05 18:55:03
>>651 >>162 問題 >>174 >>177 >>183 解答
何の計算ミス?
659:デフォルトの名無しさん
09/07/05 19:38:56
>>623
返信遅れてすみません。
追加、削除された1つのリストで大丈夫です。
660:デフォルトの名無しさん
09/07/05 20:49:18
[1] 授業単元:情報
[2] 問題文(含コード&リンク):
パソコン甲子園 2008 予選問題 問7 ふしぎな虫
URLリンク(www.pref.fukushima.jp)
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 7月6日
よろしくお願いします。
661:デフォルトの名無しさん
09/07/05 21:34:32
>>645
ありがとうございます。
凄い。誤差ってなかなか安定しないんですね
ですが中身が問題分からなかった低能では
いささか理解が追いつきません
このまま出したら本当に英雄になっちゃいそうです
662: ◆/91kCCQXBo
09/07/05 21:47:10
>>644 差の絶対値をグラフにした。
#include <stdio.h>
#include <stdlib.h>
#define PI 3.1415926
int main() {
int i, j, imax = 1000; /* 乱数の発生回数 1000 */
int n, inter = imax/20; /* グラフの表示インターバル 50 */
float x,y,pi=PI,eps,mul;
for(n=0, i=1; i<=imax; i++) {
/* 0以上1未満の乱数を生成する */
x = rand()/((float)RAND_MAX+1);
y = rand()/((float)RAND_MAX+1);
/* 0<=x,y<=1の範囲にある中心原点半径1の扇形の中に乱数による点が入ったらカウントする */
if( x*x + y*y < 1) n++;
if( i%inter ) ; else { /* 円周率の計算とグラフの表示 */
pi = (float)n/i*4; /* 半径1の円の面積すなわち円周率 */
eps = PI-pi; eps = (eps<0)? -eps : eps;
if(i==inter) mul = 70/eps; /* 1回目はグラフの倍率を決める */
printf("%5.3f ", pi);
for(j=eps*mul; j>=1; j--) putchar(' '); printf("*\n");
}
}
printf("PI=%f\n", pi);
}
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4981日前に更新/375 KB
担当:undef