#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int n0;
scanf("%d", &n0);
const unsigned int n = n0;
short unsigned int A[n];
short unsigned int d, x, y, k;
short int l, r;
int i, j;
for (i = 0; i < n; i++) {
scanf("%d", &A[i]);
}
scanf("%d", &d);
for (i = 1; i <= d; i++) {
scanf("%d %d", &x, &y);
}
return 0;
}
こんにちは、私はCでの初心者で、私をたくさん驚かせる状況に遭遇しました。上記のコードでは、ユーザにある数字d
を入力してから、d
のポイント座標を入力するように頼みたいと思います。しかし、驚いたことに、1より大きいd
の値が最初に入力されても、(x、y)の最初のペアを入力した後にプログラムが実行を終了します。コード内でd
に値を割り当てると、それは起こりません(e.x. d = 5;
)。理由は何でしょうか? scanf
ステートメントを介して変数に割り当てられた値は、何らかの形で異なり、ループ状態で使用できませんか?scanfで可変入力のループ条件 - C
これは '(I = 0; iがn <;私は++)のためにはどのような?{ のscanf( "%d個"、&A[i]); }'意味 –
@xing、それが、おかげで働いていた!しかし、なぜ実際に%Dのdoesn – jakes
@KrzysztofSzewczyk、それはさらなる機能のためのものです、私はここでそれを削除することを忘れました。 – jakes