C/C++の宿題を片付けます 59代目

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/02/04(土) 20:37:53
まあ・・・細かいツッコミだなぁ・・・
標準入力からっていうと、入力を促すメッセージを出さなくていい。
キーボードからっていうと、入力を促すメッセージを出す。

って意訳してるけど。まあ、あれだ。イチャモンに近い。>950 ついでに、次スレ頼むわ。
953948:2006/02/04(土) 20:39:55
>>952
いや、>>950はジョークだろw
ここは>>951の言うとおり、
仕様を発展、拡張した高度プログラムを書いた(ことにする)のですよ。
954デフォルトの名無しさん:2006/02/04(土) 20:41:03
int a,b,c;
puts("input a");
scanf("%d",&a);
puts("input b");
scanf("%d",&b);
c=gcm(a,b);
printf("gcm=%d\n",c);
return 0;}

int gcm(int x,int y) {
int z;
while(y!=0){
int temp;
temp=x%y;
x=y;
y=temp;}
z=x;
return z;}

脳内コンパイルだから動くかどうかしらね
ついでにユークリッド互助法もうろ覚えなんであってるかどうかしらね
955デフォルトの名無しさん:2006/02/04(土) 20:42:27
ってC++か
おまけに汚いし恥ずかしいのぉ
956デフォルトの名無しさん:2006/02/04(土) 20:42:39
誰もGCMに突っ込まない件について
957デフォルトの名無しさん:2006/02/04(土) 20:48:03
>>947
お前凄いな

>>944
現状ではほぼ間違いなく誰も答えてくれないと思われる
958デフォルトの名無しさん:2006/02/04(土) 20:49:01
たんに末尾再帰が書きたかっただけ

#include<iostream>
using namespace std;
int gcm(int,int);
int main(){
    cout<<"input a -> ";int a;cin >> a;
    cout<<"input b -> ";int b;cin >> b;
    int c = gcm(a,b);
    cout << c << endl;
}
int gcm(int x,int y){
    if(y==0)return x;
    else return gcm(y,x%y);
}
959デフォルトの名無しさん:2006/02/04(土) 20:49:08
>>947
合体して巨大な星が生まれるんだな!
960デフォルトの名無しさん:2006/02/04(土) 20:49:26
int gcm(int x, int y) {if (x == 36 && y == 90) return 18; printf("答えられません\n"); exit(1); return 0;}
961デフォルトの名無しさん:2006/02/04(土) 20:51:46
GCM=Greatest Common Multiple
962デフォルトの名無しさん:2006/02/04(土) 20:52:43
もっともでっかい、きょうつうの、かけざん?
963デフォルトの名無しさん:2006/02/04(土) 20:53:44
互助法って……
964950:2006/02/04(土) 20:54:35
次スレ立てたぞ。

C/C++の宿題を片付けます 60代目
ttp://pc8.2ch.net/test/read.cgi/tech/1139053955/
965デフォルトの名無しさん:2006/02/04(土) 21:07:02
966デフォルトの名無しさん:2006/02/04(土) 21:18:08
>>965
おもろい
967デフォルトの名無しさん:2006/02/04(土) 21:39:03
先走り依頼防止age
968デフォルトの名無しさん:2006/02/04(土) 21:46:45

すみません。リングとは軌道のことです。
プログラムは947さんの考えと合っています。ありがとうございます。
星の次の位置を与えそれをfor文でループさせgnuplotでアニメーション表示したいのです。
完成した動きは、中心点(ブラックホール)の周りを200個の星がぐるぐる回るというものです。
969デフォルトの名無しさん:2006/02/04(土) 21:51:01
>>965
やはり止まる
970デフォルトの名無しさん:2006/02/04(土) 22:00:03
すれ違いだが、ライフゲームは、止るという判断をするか、むずかしい・・・。
3 3 *
.*.
..*
***
はどう判定してよいのやら。
971デフォルトの名無しさん:2006/02/04(土) 22:20:20
カウンターが上がっていってる限り、安定状態であってフリーズではないだろうと。
972デフォルトの名無しさん:2006/02/04(土) 22:38:29
・・・カンストいくつだよ・・・
973デフォルトの名無しさん:2006/02/04(土) 22:40:57
バイナリ拾ってきて動かす勇気に感服
974デフォルトの名無しさん:2006/02/04(土) 22:48:28
で? 安全なの?
975デフォルトの名無しさん:2006/02/04(土) 23:17:30
>>973>>974
今のところ俺のメインマシンは生きている
詳細は>>965
976デフォルトの名無しさん:2006/02/04(土) 23:22:43
セキュ板かどこかで以前にある実行ファイルのリンクが貼られてからその
スレに書き込む人数がどんどん減っていったのを思い出した。
977デフォルトの名無しさん:2006/02/04(土) 23:33:02
もちろんデバッガ通して実行してるお
978デフォルトの名無しさん:2006/02/04(土) 23:46:41
>>977
私は生です
979デフォルトの名無しさん:2006/02/05(日) 00:37:36
生はキケンだぞ。うん。
980デフォルトの名無しさん:2006/02/05(日) 00:38:16
>>979
生気持ち良い!!!

・・・(((( ;゜Д゜)))ガクガクブルブル
981デフォルトの名無しさん:2006/02/05(日) 00:38:48
マシンが生きてても苺の類はどうしようもないなぁ
982デフォルトの名無しさん:2006/02/05(日) 00:42:31
まあ・・・ここに載ったソースをコンパイル→実行するとディレクトリがご臨終するプログラムもあったことだし。
危険ですな・・・。
983デフォルトの名無しさん:2006/02/05(日) 00:44:37
>>977
('A`) ってゆーかデバッグ実行しても手遅れだろ
984デフォルトの名無しさん:2006/02/05(日) 00:52:40
「センセー! ポインタを利用して整数を交換するプログラムを書けという課題がでました!」
「void swap(int *pa, int *pb) { int tmp = *pa; *pa = *pb; *pb = tmp; }」

「あのぅ・・・swapって習ってないんですけど?」
「自分で関数を作るって習った?」
「習っていません。」
「・・・int main(void) {int a = 1, b = 2, tmp; tmp = *&a; *&a = *&*&*&b; b = tmp; return 0; }」

「何も表示されないんですが・・・」
「題意は満たしてる」
985デフォルトの名無しさん:2006/02/05(日) 00:58:07
ttp://ほげほげ の課題を解説してください」
「xxxという講義の第x週で出した課題です.分からなかったら部屋まで来てください,適宜対応します」

ホンモノ?
あ、スゴイ、この先生、コピー&ペースト対策してる・・・。
986デフォルトの名無しさん:2006/02/05(日) 01:00:53
「ID foo, PASS barの某pdfを解いて欲しいんですが。」
→通報

先生、独学の人間にもエサ^H^H資料を見せてください。金払いますから・・・。
987デフォルトの名無しさん:2006/02/05(日) 01:27:29
swap()は最近だった気がするが見つけられなかった
pdfは最近だったから、覚えてる
で、適宜は17代目
ttp://makimo.to/2ch/pc2_tech/1070/1070469896.html#355
ttp://makimo.to/2ch/pc2_tech/1070/1070469896.html#365
ttp://makimo.to/2ch/pc2_tech/1070/1070469896.html#646

採点:もうちっとネタを料理しましょう
988デフォルトの名無しさん:2006/02/05(日) 01:37:05
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
2つの文字列A,B(最大文字数は255とする)を読み込み、
それぞれの文字列の先頭から順に一文字づつ抜き出し、
交互に出力するプログラムを作成しなさい。

例:
文字列Aにabcd
文字列Bに123456
と入力すると
出力結果 a1b2c3d456
が出力されるようにする。

文字列の入力は
char *string;
……
scanf("%s", string);
のように変換指定子に%sを使用する。

[3] 環境
 [3.1] OS: Windows
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2006年2月7日

ポインタとかさっぱりです、どうかよろしくお願いします。
989デフォルトの名無しさん:2006/02/05(日) 01:41:26
char*にscanfてまずくねぇ?
990デフォルトの名無しさん:2006/02/05(日) 01:42:14
>>989
一般の入門書にはsscanfとかは確実に載ってない
991デフォルトの名無しさん:2006/02/05(日) 01:43:38
>>989
……による
992デフォルトの名無しさん:2006/02/05(日) 01:44:31
mallocで256確保してからfgetsで読み込んで・・でいいでない
993デフォルトの名無しさん:2006/02/05(日) 01:48:12
入力バッファオーバーフローは外側に任すとして

void printAlter(char *a,char *b){
int flg=0;
while(flg!=3){
if(*a==0) flg|=1; else printf("%c",*a++);
if(*b==0) flg|=2; else printf("%c",*b++);
}
}

こんなの作ればいいんでね?
994デフォルトの名無しさん:2006/02/05(日) 01:49:48
・・・char *string;??
まあ、いいや。
void put(char *a, char *b) { if (a == NULL) {puts(b): } else { putchar(*a); put(b, a + 1); } }
int main(void) {char a[100], b[100]; scanf("%s%s", a, b); put(a, b); return 0;}
995デフォルトの名無しさん:2006/02/05(日) 01:50:26
すまん。994は間違い。
#include <stdio.h>

void put(char *a, char *b)
{
if (*a) {
putchar(*a);
put(b, a + 1);
} else {
puts(b);
}
}

int main(void)
{
char fmt[20], a[100], b[100];
sprintf(fmt, "%%%ds%%%ds", (int) (sizeof(a) - 1), (int) (sizeof(b) - 1));
if (scanf(fmt, a, b) == 2) {
put(a, b);
}
return 0;
}
996デフォルトの名無しさん:2006/02/05(日) 01:50:34
もうやる気あんまりないなぁw
俺もだけど
997デフォルトの名無しさん:2006/02/05(日) 01:53:16
997
998デフォルトの名無しさん:2006/02/05(日) 01:54:28
良い子は寝るべ。
999デフォルトの名無しさん:2006/02/05(日) 01:54:28
次スレいこーぜ
1000デフォルトの名無しさん:2006/02/05(日) 01:54:36
正直つまらんかったな、このスレは
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。