Cerința
Se citește un număr natural n cu o cifră. Afișați pe ecran o figură sub forma de romb formata cu numerele naturale de la 1 la n, ca în exemplu.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran un romb ce conține numerele naturale de la 1 la n
Restricții și precizări
•1≤n≤9
Exemplu
Intrare
5
Ieșire
1
222
33333
4444444
555555555
4444444
33333
222
1
pls help :((
Răspunsuri la întrebare
Răspuns de
8
Un astfel de program se bazeaza pe doua parti: prima parte deseneaza partea de sus adica de la 1 pana la 55555... iar a doua parte de la 444.pana la 1. Desigur, exista si alte metode.
Metoda discutata mai sus o prezint aici:
#include <iostream>
using namespace std;
void DrawSpaces(int count);
void DrawChar(int Chr,int count);
int main(){
int a,b=1;
cin>>a;
//Prima parte
for(int x=a;x>=1;x--){
DrawSpaces(x-1);
DrawChar(a-(x-1),b);
b+=2;
cout<<endl;
}
//A doua parte
b-=4;
a--;
for(int x=1;x<=a;x++){
DrawSpaces(x);
DrawChar(a-(x-1),b);
b-=2;
cout<<endl;
}
return 0;
}
void DrawSpaces(int count){
for(int x=1;x<=count;x++)
cout<<" ";
}
void DrawChar(int Chr,int count){
for(int x=1;x<=count;x++)
cout<<Chr;
}
Un cod mai "tare" si mai interesant pe care l-am facut este:
#include <iostream>
#include <fstream>
using namespace std;
void DrawSpaces(int count);
void DrawChar(int Chr,int count);
ofstream f("Graph.txt");
int main(){
int a,b=1;
cin>>a;
for(int x=a;x>=1;x--){ DrawSpaces(x-1); DrawChar(a-(x-1),b); b+=2; f<<endl; cout<<endl; } b-=4; a--; for(int x=1;x<=a;x++){ DrawSpaces(x); DrawChar(a-(x-1),b); b-=2; f<<endl; cout<<endl; }
system("pause"); return 0;}
void DrawSpaces(int count){ for(int x=1;x<=count;x++){ f<<" "; cout<<" "; }}
void DrawChar(int Chr,int count){ for(int x=1;x<=count;x++){ f<<"M"; cout<<"M"; }}
Acest program va afisa caractere in loc de cifre si va stoca rombul intr-un fisier...in cazul in care rombul e mai mare decat consola...
Metoda discutata mai sus o prezint aici:
#include <iostream>
using namespace std;
void DrawSpaces(int count);
void DrawChar(int Chr,int count);
int main(){
int a,b=1;
cin>>a;
//Prima parte
for(int x=a;x>=1;x--){
DrawSpaces(x-1);
DrawChar(a-(x-1),b);
b+=2;
cout<<endl;
}
//A doua parte
b-=4;
a--;
for(int x=1;x<=a;x++){
DrawSpaces(x);
DrawChar(a-(x-1),b);
b-=2;
cout<<endl;
}
return 0;
}
void DrawSpaces(int count){
for(int x=1;x<=count;x++)
cout<<" ";
}
void DrawChar(int Chr,int count){
for(int x=1;x<=count;x++)
cout<<Chr;
}
Un cod mai "tare" si mai interesant pe care l-am facut este:
#include <iostream>
#include <fstream>
using namespace std;
void DrawSpaces(int count);
void DrawChar(int Chr,int count);
ofstream f("Graph.txt");
int main(){
int a,b=1;
cin>>a;
for(int x=a;x>=1;x--){ DrawSpaces(x-1); DrawChar(a-(x-1),b); b+=2; f<<endl; cout<<endl; } b-=4; a--; for(int x=1;x<=a;x++){ DrawSpaces(x); DrawChar(a-(x-1),b); b-=2; f<<endl; cout<<endl; }
system("pause"); return 0;}
void DrawSpaces(int count){ for(int x=1;x<=count;x++){ f<<" "; cout<<" "; }}
void DrawChar(int Chr,int count){ for(int x=1;x<=count;x++){ f<<"M"; cout<<"M"; }}
Acest program va afisa caractere in loc de cifre si va stoca rombul intr-un fisier...in cazul in care rombul e mai mare decat consola...
donceanvladut:
Multumesc mult
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Informatică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă