2016-09-23 2 views
-8
#include<iostream.h> 
#include<conio.h> 
void main() 
{ 
int x[5] = {1,2,3,4,5}, y[5]={5,4,3,2,1}, res[5]={0,0,0,0,0}; 
int i=0,j=0; 
while(i++<5) 
{ 
    res[i] = x[i]-y[i]; 
} 
clrscr(); 
cout<<"Content\n"; 
i=0; 
do 
{ 
    cout<<x[i]<<"\t"<<y[i]<<"\t"<<res[i]<<"\n"; 
    i++; 
}while(i<5); 
getch(); 
} 

Выход: Click & View the Ouput of the above codeОбъяснить Как следующий вывод пришел на следующий код в C++

В выходе в первой строке Почему у [0] показать -1 вместо 5?

+1

Скопируйте и вставьте код как должным образом отформатированный * текст * - изображения не являются полезными или полезными и не могут быть найдены. –

+1

Используйте (a) отладчик (b) реальную среду программирования, такую ​​как gcc или msvc (c) текст вместо снимков экрана. Переполнение стека не является отладочной службой. – iksemyonov

+0

объясните, почему вы публикуете вопрос? –

ответ

2

Прежде всего, в это время цикла:

while(i++<5) 
{ 
    res[i] = x[i]-y[i]; 
} 

i будет начинаться с 1, так как условие имеет побочный эффект после приращения. Таким образом, вы никогда не меняете res[0], поэтому при печати res[0] вы видите 0. А что касается значения y[0], в то время как цикл будет выполняться до i 5. Так что, наконец, у вас есть что-то вроде:

res[5] = x[5] - y[5]; 

Запись в res[5] развращает расположение y[0].

Смежные вопросы