C言語で printf と scanf を使い変数に値を入力するコードで、なぜか初めの変数だけ2回入力することになってしまいます。
どういうことかというと下のような感じです。
x? 3 /* 3と入力してEnterをした*/
2 /* y?に行きたいのに入力待ちになり、何か数字を入力するとy?に行く(今回は2を入力した)*/
y?5
z?6
xの部分のprintfとscanf を//で消しても同じでyを2回分入力することになりました。
わかる方いましたら教えていただけると助かります。
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <math.h> 4 5typedef struct { 6 double x;//x coordinate 7 double y;//y coordinate 8} Point; 9 10/*構造体 struct Rectangle型を定義*/ 11/*またはtypedefで Rectangle構造体型を定義*/ 12typedef struct { 13 Point P1; 14 Point P2; 15} Rectangle; 16 17double rectangleArea(Rectangle R); 18 19int main(void) { 20 Rectangle R;//長方形 R 21 double s;//Rの面積 22 23/*長方形 Rの(対角)座標を入力する文 */ 24 printf("P1.x? "); 25 scanf("%lf \n", &R.P1.x); 26 printf("P1.y? "); 27 scanf("%lf \n", &R.P1.y); 28 printf("P2.x? "); 29 scanf("%lf \n", &R.P2.x); 30 printf("P2.y? "); 31 scanf("%lf \n", &R.P2.y); 32 33/*rectagleAreaを呼び出して長方形 Rの面積を計算する文*/ 34 s = rectangleArea(R); 35 printf("Areal = %.2f\n", s); 36 return 0; 37} 38 39double rectangleArea(Rectangle R) { 40/*長方形 Rの面積を計算して返却するコード*/ 41 double Area; 42 Area = (R.P2.x - R.P1.x) * (R.P2.y -R.P1.y); 43 return Area; 44}
ソースコードがないとわかりません