Informatică, întrebare adresată de Dan011, 8 ani în urmă

salut imi poate spune si mie ce e gresit la problema asta ?
pentru n=5 imi da dar pentru celelalte nu merge ...
Se dă n un număr natural. Să se afișeze o clepsidră de dimensiune n formată din caractere * iar spațiul spațiul exterior umplut cu caracterul #, ca în exemplu.
*********
#* * * * * * *#
##* * * * *##
###* * *###
####*####
###* * *###
##* * * * *##
#* * * * * * *#
* * * * * * * * *


#include

using namespace std;

int main()
{int n;
cin>>n;


for(int i=1;i<=2*n-1;i++)
cout<<"*";
cout<<"\n";
for(int i=2*n-3;i>=n;i--)
{
for(int l=1;l<=2*n-i-2;l++)
{
cout<<"#";
}
for(int l=n;l<=2*i-3;l++)
cout<<"*";
for(int l=1;l<=2*n-i-2;l++)
{
cout<<"#";
}
cout<<"\n";
}

for(int i=1;i<=n-1;i++)
cout<<"#";
cout<<"*";
for(int i=1;i<=n-1;i++)
cout<<"#";
cout<<"\n";



for(int i=n;i<=2*n-3;i++)
{
for(int l=1;l<=2*n-i-2;l++)
{
cout<<"#";
}
for(int l=n;l<=2*i-3;l++)
cout<<"*";
for(int l=1;l<=2*n-i-2;l++)
{
cout<<"#";
}

cout<<"\n";
}

for(int i=1;i<=2*n-1;i++)
cout<<"*";
cout<<"\n";
return 0;
}

Răspunsuri la întrebare

Răspuns de gabi54t
1

pai tu ai facut un caz particular si de aia merge pt n=5. cam asa arata rezolvarea corecta (sau mrg una dintre ele) si merge pentru orice n

#include <iostream>


using namespace std;


int main()

{

   unsigned n, i, j;

   char a[100][100];

   cin>>n;

   for(i=1; i<=n; i++)

       for(j=1; j<=n; j++)

           if(i+j>n+1 && i<j)

               a[i][j]='#';

           else if(i+j<n+1 && i>j)

               a[i][j]='#';

           else

               a[i][j]='*';

   for(i=1; i<=n; i++)

   {

       for(j=1; j<=n; j++)

           cout<<a[i][j]<<" ";

       cout<<endl;

   }


   return 0;

}



pmarian98: #include

using namespace std;

int main()
{
int n;
cin>>n;
for(int i=1;i<=2*n-1;i++)
cout<<'*';
cout<<'\n';
for(int i=n-1;i>=1;i--)
{
for(int j=1;j<=n-i;j++)
cout<<'#';
for(int j=1;j<=2*i-1;j++)
cout<<'*';
for(int j=n-i;j>=1;j--)
cout<<'#';
cout< }
for(int i=2;i<=n-1;i++)
{
for(int j=1;j<=n-i;j++)
cout<<'#';
for(int j=1;j<=2*i-1;j++)
cout<<'*';
for(int j=n-i;j>=1;j--)
cout<<'#';
cout< }
for(int i=1;i<=2*n-1;i++)
cout<<'*';
cout<<'\n';
}
Alte întrebări interesante