Я встречаюсь с проблемой, которую мне не удается понять и - относительно "scanf", относительно которого я использую в C ++. Код - следующий:
#include <stdio.h>
using namespace std;
int main(){
int i, n, overtakes, start[26], finish[26];
while(scanf("%d", &n) != EOF);{
printf("%d\n", n);
for(i = 0; i < n; i++){
scanf("%d", &start[i]);
printf("%d ", start[i]);
}
for(i = 0; i < n; i++){
scanf("%d", &finish[i]);
}
overtakes = 0;
for(i = 0; i < n; i++){
if(start[i] < finish[i]){
overtakes = overtakes+(finish[i]-start[i]);
}
}
//printf("%d\n", overtakes);
}
return 0;
}
Моя проблема здесь состоит в том, что я не понимаю, которым первый "scanf", кажется, не получает подходящий ввод, так как, попросив у него печатать "n" и стоимость договоренности "start" (как доказательство) со следующим вводом:
9
7 1 8 9 5 6 2 3 4
8 1 9 5 7 3 2 6 4
я получаю:
13
204196 6422220 1952017685 1952334620 6422284
1952014984 8 1951951811 1951951802 1994325155 4199136 4199136 0
Я оцениваю любую помощь и(или) сотрудничество.
Ты ввел один';' в конце while:
// vvv
while(scanf("%d", &n) != EOF) ; {
С этим';' estГЎs способствуя тому, чтобы sГіlo выполнили ее condiciГіn while, а именно:
while(scanf("%d", &n) != EOF); // <------- Se ejecuta scanf hasta el final de la entrada
// Al acabar el while, ejecuta una sóla vez lo que hay entre llaves, pues está fuera del while:
{
printf("%d\n", n);
for(i = 0; i < n; i++){
scanf("%d", &start[i]);
...
...