C言語って… (278レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
84(3): 名前は開発中のものです。 [sage] 02/08/04 17:22 ID:??? AAS
xをn乗するコードを書きましたがどうですか?Cを初めて3日目の者です。
/* xをy乗するといくらか? */
printf("xをy乗します。\n");
printf("xを入力(not 0):");
scanf("%d", &x);
if(x == 0) return 0; /* 0が入力されたら終了 */
printf("yを入力(not 0):");
scanf("%d", &y);
if(y == 0) return 0; /* 0が入力されたら終了 */
if(y == 1) { /* 1乗ならそのまま出力して終了 */
printf("%dの%d乗は%d\n\n", x,y,x);
return 0;
}
ox = x; /* xの値を避難 */
count = 1;
while(count != y) {
x = x * ox;
count++;
}
printf("%dの%d乗は%d\n\n", ox,y,x);
87(1): 名前は開発中のものです。 [sage] 02/08/04 18:50 ID:??? AAS
x, y の値を計算の途中で変えちゃってイイならば
while(--y) x*=x; とか。x が答えになる。
ただしこれは y<1 のときにかなり最悪なことになる。
ところで >>84 は一応ループつかってるんじゃないのか? > 85
93(1): 名前は開発中のものです。 [sage] 02/08/04 20:04 ID:??? AAS
>84
pow()でいいじゃん。
96: 84 [sage] 02/08/04 22:34 ID:??? AAS
>>8585(6): 名前は開発中のものです。 [sage] 02/08/04 18:02 ID:??? AAS
どうしてx^nと謳っておきながら
コードとドキュメントはx^yなの?
記号の不統一性は混乱する元です。
また、場合わけが気持ち悪いですね。
むしろループや再帰を効率的に使ってもっと簡潔に書くべきでは?
ループを使った場合をささっと書くと、
int res=1;
for(int i=0;i<y;++i){
res*=x;
}
て感じ。
ちなみに0^0=1は定義だけど、いいね?
さんご意見ありがとう!
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s