0
Почему работает так?
Этот код выводит индекс ечейки с первым наименьшим значением массива (по крайней мере должен) но при вводе массива и нажатии enter выводит то 0 то 3, почему так? И как сделать чтобы показывал реальный номер ечейки? #include <iostream> using namespace std; int main() { const int q=7; int w[q], imin, i; int min=w[0]; for(i=1;i<q;i++){ cin>>w[q]; if(w[i]<min){ min=w[i]; imin=i;} //cout<<w[q]<<" "; } cout<<imin; return 0; }
3 Réponses
+ 1
Are you looking like this:
#include <iostream>
using namespace std;
int main() {
const int q=7;
int w[q], imin, i;
for(i=1;i<q;i++){ //taking input values, changed w[i]
cin>>w[i];
cout<<w[i]<<" ";
}
int min=w[0]; //set 1st element to min
//checking here for min value, and index position..
for(i=0;i<q;i++)
if(w[i]<min){
min=w[i];
imin=i;}
cout<<"\nindex="<<imin<<" min="<<min;
return 0;
}
0
Can you give example inputs.. and expected output..
min=w[0]; will assign 0 to min.
Next in loop, until you have negative values, it won't change..
So 1st take input and assign next min=w[0];
And the mistake is input taking into w[q] single place so remaing all set to zero. Last value only retained in w[q]. It should be w[i].
Можете ли вы привести пример входных данных .. и ожидаемый результат ..
мин = ш [0]; назначит от 0 до мин.
Следующее в цикле, пока у вас нет отрицательных значений, оно не изменится ..
Итак, 1-й взять вход и назначить следующий min = w [0];
И ошибка заключается в том, что ввод занимает единицу w [q], поэтому все значения равны нулю. Последнее значение сохраняется только в w [q]. Это должно быть w [i].
0
Спасибо большое) 🤝🏆