Je ne sais pas pourquoi le programme n'a pas réussi à donner la sortie, c'est le code pour trouver le nombre de zéro dans un tableau donné
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int arr[n];
for(int i=0; i<n; i++)
{
cin>>arr[i];
}
int b=0 , a;
for(int j=0; j<n; j++)
{
a=arr[j];
while(a==0)
{
b=b++;
}
}
cout<<b;
}
3 Réponses :
Essayez de le changer en
if (a==0) //you had a while here
{
b=b++;
}
Puisque vous ne changez pas la valeur de 'a' à l'intérieur de la boucle, il reste coincé à l'intérieur du while et cela conduit à une boucle infinie!
Faire. Ou pas. Il n'y a pas d'essai.
Remarque à l'intention du demandeur: vous avez encore besoin d'un while . Il a juste besoin d'une condition de sortie différente. La réponse ci-dessus doit aller dans le while
@ user4581301 Je ne vois aucun besoin d'une boucle while? Changer pour si semble donner le comportement souhaité?
On dirait que vous avez mélangé b++ et b = b + 1
@AlanBirtles en quelque sorte, j'ai complètement raté la boucle for emballage for .
mais dans les geeks pour les geeks, il montre une erreur de compilation {prog.cpp: 9: 1: erreur: un ID non qualifié attendu avant {jeton} le résultat est parfait sur mon pc
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
int b = 0, a = 0;
for (int j = 0; j < n; j++)
{
a = arr[j];
if (a == 0) //here you used while use if as you are checking the condition every iteration of loop.
{
b++; //here instead of using b=b++ use this.
}
}
cout << b;
return 0; //return is optional.
}
mais dans les geeks pour les geeks, il montre une erreur de compilation {prog.cpp: 9: 1: erreur: un ID non qualifié attendu avant {jeton} le résultat est parfait sur mon pc
faites-le simplement dans la boucle j for. vous n'avez pas besoin d' a variable ou quoi que ce soit
et aussi les tableaux de variables d'exécution ne sont pas autorisés en C ++ utiliser des tableaux ou des vectors dynamiques
for(int j=0; j<n; j++)
{
if(arr[j]==0){
b++;
}
}
Dès que
a == 0vous commencez à incrémenterbet vous ne finirez jamais carareste le même0. Au fait, c'est une bonne occasion d'apprendre à travailler avec un débogueurAu-delà,
b=b++;est un comportement indéfini. Si vous voulez simplement incrémenterb, c'est simplementb++;.Notez que C ++ n'a pas vraiment de tableaux de longueur variable . Utilisez plutôt
std::vector.