
キーボードから正の整数を読み取り、n個の奇数を加算しディスプレイにかきだすプログラムです。;が型の前に必要というエラーがずっとでてきて、でも足りないところはわからないのですが、何が違うのでしょう??もうわけがわからなくて困ってます。お願いします。
/*演習1-3*/
#include<stdio.h>
int main()
{
int i;
int n;
int sum=0;
printf("%d¥n",n);
for (i=1;i<=n;i+=2);
int scanf("%d",&n);
sum+=i;
printf("1+2+...+n=%d\n",sum);
return 0;
}
No.3ベストアンサー
- 回答日時:
(1) #includeの次に半角スペースがない。
(2) 変数n を初期化していない。
(3) printf文の\(半角文字)が¥(全角文字)になっている。
(4) for文の最後に不要な ; が付いている。
ただし、これは、コンパイルエラーにはならない。
これらを修正すると、以下のようになります。
インデント(字下げ)は全角スペースを使用しているので、
そこはTABとかに直して使ってみてください。
#include <stdio.h>
int main()
{
int i, m, n, sum;
printf("正の整数(最大32767)を入力してください >");
scanf("%d\n", &m);
printf("0~%dの奇数の合計を計算します\n", m);
sum = 0; /* 奇数の合計 */
n = 0; /* 奇数の数 */
for(i=1; i<=m; i+=2) {
sum += i;
if( i==1 ) {
printf("%d",i);
} else {
printf("+%d",i);
}
n++;
}
printf("=%d\n", sum);
printf("0~%dまでの奇数の数は%dで、合計は%dです\n",m,n,sum);
return(0);
}
No.2
- 回答日時:
>(intが32ビットの環境ならば0から約42億回までのどこか。
現状では空ループなので一瞬ですが)訂正です。
42億回でなく21億回…です。
i+=2を見逃していました。
ということで、for文をブロックに修正しても、
> printf("1+2+...+n=%d\n",sum);
は正しくありませんが。
"1+3+...+n"ということになります。
No.1
- 回答日時:
>;が型の前に必要というエラーがずっとでてきて、でも足りないところはわからないのですが、何が違うのでしょう??
一緒に行番号も表示されているかと思われますが。
その前後(このエラーだと表示された行より前)に問題があるかと。
> printf("%d¥n",n);
¥は半角だと思いますが……。
未初期化の変数を参照しているので表示される値は不定です。
後のループ回数を入力させたいのではないですか?
> for (i=1;i<=n;i+=2);
この行の最後の;は必要ですか?
この場合空ループするだけですが意図したものですか?
なお、ループ回数は不定です。(intが32ビットの環境ならば0から約42億回までのどこか。現状では空ループなので一瞬ですが)
> int scanf("%d",&n);
何故intが書かれているのでしょう?
ループ中に数字を入力させて合計値を算出したい。
というのであれば、for文のあとをブロックで囲む必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
error C2143: 構文エラー : ';' が '{' の前にありません。
C言語・C++・C#
-
error C2143: 構文エラー の対処法
C言語・C++・C#
-
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
-
4
静的でないメンバ関数の呼び出しが正しくありません
C言語・C++・C#
-
5
適切な変換関数が存在しない???
C言語・C++・C#
-
6
CString から LPCTSTRの型に変換
C言語・C++・C#
-
7
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
8
char*を初期化したいのですが
C言語・C++・C#
-
9
間接参照のレベルが異なっています
C言語・C++・C#
-
10
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
11
外部依存関係について
C言語・C++・C#
-
12
デバッグ中のエラーのことで教えてください。
C言語・C++・C#
-
13
画面を強制的に再描画させる方法
C言語・C++・C#
-
14
コンパイルできません。
C言語・C++・C#
-
15
visual C++ でビルドの中止ができません
C言語・C++・C#
-
16
Run-Time Check Failure #3というエラーが出ます。
C言語・C++・C#
-
17
リソースビューが表示されない(VC++ 6.0)
C言語・C++・C#
-
18
「fatal error C1189」を回避するには?
C言語・C++・C#
-
19
C2146を回避するにはどうしたら良いのでしょうか
C言語・C++・C#
-
20
他の.CPPファイルに定義した関数を呼び出す方法について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
#if 1 #elseの意味について
-
階乗のプログラム!!
-
for文の中にswitch文はいれられ...
-
C言語についてですfor ifをつか...
-
C言語 エラー表示 break の位...
-
直角三角形を表示するプログラム
-
配列を関数に渡す方法
-
while文について、c言語...
-
「Aに対するBの割合」と「Aに対...
-
「指定されたキャストは有効で...
-
Enterキーを押されたら次の処理...
-
C言語での引数の省略方法
-
信頼区間の1.96や1.65ってどこ...
-
エクセルで可視セルにのみ値貼...
-
DWORDの実際の型は何でしょうか
-
Aの値からBの値を除するとは??
-
”/”を使わずに割り算したいんで...
-
do-while文が禁止される理由
-
隣接行列を読み込んで有向グラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
配列を使って魔方陣
-
配列を関数に渡す方法
-
プログラム
-
C言語 マスターマインドゲーム...
-
プログラミングで二番目に大き...
-
初心者です。for文、if文を使っ...
-
scanfが実行されません
-
C言語 数字以外を入力させない...
-
C言語プログラムが理解できなくて…
-
C言語の二分法のプログラムにつ...
-
C言語階乗の総和を求める
-
C言語のwhileループについて
-
for文を使用して値を代入したい...
-
while文を使った問題なのですが...
-
for文の条件式について
-
直角三角形を表示するプログラム
-
C言語 エラー表示 break の位...
おすすめ情報