

No.13ベストアンサー
- 回答日時:
以下のようにしてください。
--------------------------------------------
#include <stdio.h>
int main(void)
{
int result = 1;
int x;
int i;
printf("x=");
scanf("%d",&x);
printf("x=%d\n",x);
for(i = 0; i < 4;i++) {
printf("%d^%d=%d\n",x,i,result);
result = result * x;
}
return (0);
}
-----------------------------------------
7を入力したときの実行結果
x=7
x=7
7^0=1
7^1=7
7^2=49
7^3=343
--------------------------------------
CentOS release 5.6 (Final)
gcc バージョン 4.1.2 20080704 (Red Hat 4.1.2-50)
で動作確認済みです。
回答ありがとうございます。
現在自分の知っている簡単な言語のみでプログラムを組んでいただけたので、
今回ベストアンサーにさせていただきました。
ありがとうございました。
また、他にも回答してくださった皆様もありがとうございました。
No.14
- 回答日時:
【参考】
#include <stdio.h>
int main(void)
{
int p, n, i;
printf("n="), scanf("%d", &n);
for (p = 1, i = 0; i < 4; i++) {
printf("%s%d^%d=%d", (i == 0) ? "" : ",", n, i, p);
p *= n;
}
putchar('\n');
return 0;
}
No.11
- 回答日時:
#10氏
なんかまるで私が質問者のようですね。
forの文法は言われるまでもなく存じ上げておりますし、whileを使うのは私の「個人的な好み」です。しかし、for(int i, i < n, i++)の形式の方が入門者にはわかりやすい、といわれればそうおもいますが。
mainの引数省くのでしたら、私ならvoidすら書きませんね。
doubleを使用したのは、質問をよく読んでなかったからですね。失礼しました。
質問者への解説ならまだいいのですが、他の回答に突っかかる前に相手の気持ちを考えたらどうですか?あなたのは「自分が一番正しい」というのをアピールしているようにしか感じられませんよ。
No.10
- 回答日時:
>int main(int c, char **v){
今回の場合、実行時の引数は特に必要なさそうです。
voidで問題ないかと。
どうせ書くなら、よくある一般的な名前(argcとかargvとか)に
する方がよいのではないか、と個人的には思います。
>; double val, base;
質問者さんは
>scanfを使って入力した整数
整数、と明記されています。
double型にする必然性は特にないように思います。オーバースペックかもしれません。
>; counter = 0;
>; while(counter < 4){
>; ; printf("%lf\n", val);
>; ; val *= base;
>; ; counter ++;
>; }
個人的な好みとしては、for文で書きたいところです。
A;
while (B) {
/* 何かの実行文 */
C;
}
の形のループは、途中にcontinue;を含まなければ、
for (A; B; C) {
/* 何かの実行文 */
}
と等価であることはご存じであると思います。
No.9
- 回答日時:
#1です。
今更ですが#1の「7の乗算」は、「入力値の乗算」に訂正をお願いします。
#4氏
既に#5氏が突っ込まれてますが、私は
表示→乗算
の順で書き込んだはずです。あなたの仰る問題は生じないと思いますが?
まぁ私でしたらこうしますね。
#include <stdio.h>
int main(int c, char **v){
; double val, base;
; unsigned counter;
; scanf("%lf", &base);
; val = 1;
; counter = 0;
; while(counter < 4){
; ; printf("%lf\n", val);
; ; val *= base;
; ; counter ++;
; }
; return 0;
}
No.8
- 回答日時:
int result = 1;
for ( 4回くりかえす )
resultを出力
result = result * 入力値
}
を実装すると
for(result = 1; result <5;result++) {
printf("%d\n",result);
product = result * x;
printf("result * x =%d\n",product);
}
になる? ぜんっぜん違うやん。
# なぜにresultをループ変数にしちゃったの?
# うまくいくわけないやん。
No.7
- 回答日時:
>int main(void);
最後のセミコロンは、本当に必要なんでしょうか。
productという変数は、本当に必要なんでしょうか。
epistemeさんが書かれた回答をそのままコード化するだけだと思います。
No.6
- 回答日時:
C言語の文の終わりには、何か記号が付きませんか?
そのコードで、本当にループを4回まわりますか?
productっていう変数は、定義しただけで使っていませんね。何のための変数ですか?
この回答への補足
回答ありがとうございます。
指摘していただいた部分を修正してみましたが、また失敗してしまいました。
#include <stdio.h>
int main(void);
{
int result = 1;
int x;
int product;
printf("x=");
scanf("%d",&x);
printf("x=%d\n",x);
for(result = 1; result <5;result++) {
printf("%d\n",result);
product = result * x;
printf("result * x =%d\n",product);
}
return (0);
}
まだどこか違うのでしょうか?
探してみたのですがよくわかりません。
お時間のあるときでいいのでまたご教授お願いします。
No.5
- 回答日時:
>#4さん
>4回まわしたら、4乗までいっちゃうが…。
そうならないように、
>for ( 4回くりかえす )
> resultを出力
> result = result * 入力値
「先に」resultを出力していますよね。
4乗は、計算しますが、ループを抜ける条件に合致するので「出力しません」。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
getcの改行判定
-
配列を関数に渡す方法
-
初心者です。for文、if文を使っ...
-
最早開始時間と最遅完了時刻を...
-
【C++】関数ポインタの使い方
-
既定のコンストラクタがありま...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
信頼区間の1.96や1.65ってどこ...
-
a^2の√=a が成り立たない場合
-
VB6.0での小数点の扱いについて
-
配列をnビットシフトする
-
数学 一次関数 関数 y=-3/4x+k(...
-
c languageで 簡単な質問があ...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
プログラムでの数字につく”f”の...
-
C言語で複数列のデータを1列の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
配列を使って魔方陣
-
C言語 数字以外を入力させない...
-
10進数からN進数に変換するプロ...
-
配列を関数に渡す方法
-
scanfが実行されません
-
C言語で電卓を作成する。
-
C言語・最大値を算出するプロ...
-
C言語階乗の総和を求める
-
実行すると if文 に矛盾
-
計算結果がlong型以上になる場...
-
C言語プログラム
-
C言語。どうしてコンパイルでき...
-
c言語for文
-
getcの改行判定
-
C言語で勉強中(max,min)の出し方
-
C言語 プログラム
-
SIGALRMでプロセス終了
おすすめ情報