infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Catalin din Ianuarie 18, 2014, 00:05:32



Titlul: Numere din fisier
Scris de: Catalin din Ianuarie 18, 2014, 00:05:32
Salut. Am la o problema urmatorul enunt:

Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul n (n≤999) şi numerele din fişierul
numere.txt şi care afişează pe ecran, separate prin câte un spaţiu, toate numerele din fişier
care sunt divizibile cu n. Dacă fişierul nu conţine niciun astfel de număr, atunci se va afişa
pe ecran mesajul NU EXISTA.

Uitati codul pe care l-am scris:
Cod:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,k;
cin>>n;
ifstream f("numere.txt");
while(f>>k)
if(k%n==0)
cout<<k<<" ";
else cout<<"nu exista";
}

Problema este ca imi afiseaza pentru fiecare numar in parte :|
De ex, n=10 si numerele din fisier: 10,80, 54, 67, 100... imi afiseaza 10 80 nu exista nu exista 100! Cum pot face sa imi afiseze cum trebuie? Multumesc.


Titlul: Răspuns: Numere din fisier
Scris de: Mocanu George din Ianuarie 18, 2014, 09:41:23
Tu daca gasesti un numar care se divide cu 'n' il scrii iar daca nu se divide scrii "nu exista".
Asa ar trebuii sa mearga:
Cod:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 int n,k;bool sw=0;
 cin>>n;
 ifstream f("numere.txt");
 while(f>>k)
  if(k%n==0)
   {cout<<k<<" ";sw=1;}
  if(sw==0) cout<<"nu exista";
  return 0;
}


Titlul: Răspuns: Numere din fisier
Scris de: Catalin din Ianuarie 19, 2014, 18:19:59
Mersi mult :)