J'ai essayé d'écrire un programme qui affiche "OUI" si chaque valeur x ou valeur y est la même. Sinon, il donne la sortie "NON". La logique est la suivante: si toutes les valeurs x de la valeur maximale sont identiques à la valeur minimale de toutes les valeurs de x, cette valeur n'a jamais changé, donc toutes les valeurs de x sont les mêmes. Idem pour les valeurs y. Cependant, la sortie donne parfois le résultat correct, parfois pas (pour la même entrée). De plus, les sorties ne sont pas régulières. (Par exemple, 2 correct, 3 faux, 5 correct, 1 mal etc.)Le même programme donne différentes sorties à chaque fois que j'exécute
Voici mon code:
#include <iostream>
#include <climits>
using namespace std;
int main(){
int n;
int minX,minY=INT_MAX;
int maxX,maxY=INT_MIN;
cin>>n;
while(n--){ //for the next n line
int x,y;
cin>>x>>y;
maxX=max(maxX,x);
//cout<<maxX<<" "; //comments I write to find out what the heck is happening
minX=min(minX,x); // This value changes irregularly, which I suspect is the problem.
//cout<<minX<<" ";
maxY=max(maxY,y);
//cout<<maxY<<" ";
minY=min(minY,y);
//cout<<minY<<endl;
}
if(maxX==minX||maxY==minY){ //If the x values or the y values are all the same, true
cout<<"YES";
}
else{
cout<<"NO";
}
return 0;
}
Entrée:
5
0 1
0 2
0 3
0 4
0 5
sortie quand il fonctionne (avec Couts je commentais):
0 0 1 1
0 0 2 1
0 0 3 1
0 0 4 1
0 0 5 1
YES
une des sorties quand il ne fonctionne pas (avec les Couts)
mes propres commentaires0 -1319458864 1 1 // Not all the wrong outputs are the same, each wrong output is different than the other wrong output.
0 -1319458864 2 1
0 -1319458864 3 1
0 -1319458864 4 1
0 -1319458864 5 1
NO
Pourquoi utilisez-vous tellement d'inclusions que vous n'utilisez pas? – Rakete1111
Vous n'initialisez jamais 'minX' et' maxX'. – Cornstalks
^Ce qui signifie que leur lecture laisse votre programme avec un comportement indéfini. – StoryTeller