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
>>85
85(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