Subprogramul identice are un singur parametru, n, prin care primește un număr natural.
Subprogramul returnează valoarea 1, dacă numărul n are toate cifrele egale, sau valoarea 0 în caz contrar.
Scrieți definiția completă a subprogramului.
Nu inteleg unde am gresit. Ma poate ajuta cineva, va rog?
#include
using namespace std;
int main ( )
{
int n, c, Ok;
cout<<"n=";
cin>>n;
Ok=1;
c=n%10;
n=n/10;
while (n!=0)
if (c!=n%10)
Ok=0;
else
n=n/10;
if (Ok==1)
cout<<1;
else
cout<<0;
return 0;
}
//am plecat de la presupunerea ca n este format din cifre identice (Ok=1)
Răspunsuri la întrebare
Răspuns de
1
Salut!
Ai codul sursa mai jos
#include <iostream>
using namespace std;
int identice (int n)
{
int ok = 1; //asumam ca toate cifrele sunt egale
int c = n % 10;
n /= 10;
while (n && ok) //while (n != 0 && ok != 0)
{
if (c != n % 10)
{
ok = 0;
}
n /= 10;
c = n % 10;
}
return ok;
}
int main()
{
int n;
cin >> n;
cout << identice(n);
return 0;
}
- Problema era cu while ul tau, care nu actualiza n ul daca cifrele nu erau egale, de asemenea avem nevoie si de o conditie de oprire a while ului, nu doar daca n ajunge 0 ci si daca am gasit o cifra diferita de restul, altfel se ajungea la ceva infinit pe cazuri cu rezultat 0.
Side note: Problema ti a cerut doar subprogramul definit, nu tot codul ;)
marian5757:
multumesc mult!!
Alte întrebări interesante
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă