Buna!
Ma poate ajuta cineva la problema #244 CifreOrd de pe pbinfo??
Cerinţa
Se dau n cifre zecimale. Să se afişeze aceste cifre în ordine crescătoare.
Date de intrare
Fişierul de intrare cifreord.in conţine pe prima linie numărul n, iar pe următoarele linii n cifre zecimale separate prin spaţii.
Date de ieşire
Fişierul de ieşire cifreord.out va conţine cele n cifre ordonate crescător, câte 20 pe o linie, valorile de pe fiecare linie fiind separate prin spaţii. Ultima linie a fişierului poate conţine mai puţin de 20 de valori.
Restricţii şi precizări
1 ≤ n ≤ 100.000
Exemplu
cifreord.in
25
1 1 2 7 3 5 1 5
3 6 7 8 0 1 0 5
6 3 8 2
9 7 9 5 7
cifreord.out
0 0 1 1 1 1 2 2 3 3 3 5 5 5 5 6 6 7 7 7
7 8 8 9 9
Aici e solutia mea, functioneaza bine, dar primeste 0 pct pe site :(
#include
#include
using namespace std;
ifstream in("cifreord.in");
ofstream out("cifreord.out");
int n,i,j,ctr=0,v[100001];
int main()
{
in >>n;
for (i=1; i<=n;i++)
in >>v[i];
for (i=1; i
for (j=i+1; j<=n;j++)
if (v[i]>v[j])
swap (v[i],v[j]);
for (i=1; i<=n;i++)
{ if (ctr<=20)
{
out <
ctr++;
}
else
{
ctr=0;
out <
}
}
return 0;
}
boiustef:
după completare a lui afişezi din el, cîte 20 pe linie
cum voi face eu acum să trimit cod ca să-l compari cu al tău...
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
#include <iomanip>
#include <fstream>
#include <iostream>
#include <cassert>
using namespace std;
ifstream fin("cifreord.in");
ofstream fout("cifreord.out");
int a[10];
int main(){
int x,n;
fin >> n;
for( ; n ; n--){
fin >> x;
a[x] ++;
}
x = 0;
for(int i=0;i<10;++i)
for(int j = 1; j<= a[i] ; ++j){
fout << i << " ";
x ++;
if(x%20 == 0)
fout << endl;
}
return 0;
}
Explicație:
Alte întrebări interesante
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Istorie,
9 ani în urmă