Informatică, întrebare adresată de donceanvladut, 9 ani în urmă

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 antonii
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...

donceanvladut: Multumesc mult
Alte întrebări interesante