+ 12
Diamond pattern
I have a code of mine which I believe can be simplified. Please help me https://code.sololearn.com/cQZosG9dtP1k/?ref=app
6 Respostas
+ 9
Thank you .😊😊
+ 2
I found a few ways to simplify and make the code more understandable to people.  
Here are a few improvements explained:
- Replaced "\n" with endl.  Sending "\n" out to break a line works but endl is generally what c++ uses for the job.  endl will also get replaced with \r\n, \r in operating systems that use different line break character combinations.
- Output "* " together instead of "*" << " ".  "* " is shorter and a little easier to read.
- Created printLine function.  Your code had 2 sections duplicating the effort of printing a line with appropriate spaces followed by the asterisk pattern.  Instead of duplicating the code, the new printLine function can be called twice.
- Renamed a couple variables.  diamondSize seemed more understandable than n.
- Added more comments.  A few steps and the function looked like it would be more easily understood by a few comments.  
- Added more spaces and blank lines.  This might be a tiny improvement in readability but it could just be my personal preference too.
Here is my tweaked version:
// Creates a diamond pattern of *
//where n is the maximum number of dots.
//Example n=4
//Pattern is
//   *
//  * *
// * * *
//* * * *
// * * *
//  * *
//   *
#include <iostream>
using namespace std;
// Prints a line of spaces and asteriskCount asterisks
// Assumption: asteriskCount < 27.
void printLine(int asteriskCount) {
    int i;
    
    for (i=27 - asteriskCount;i>=0;i--)
        cout << " ";
    for (i = 0; i < asteriskCount; i++)
        cout << "* ";
    cout << endl;
}
int main() 
{
    int i, diamondSize;
    cout << "Enter the maximum number of dots ";
    cin >> diamondSize;
    cout << endl;
    // Print top triangle.
    for (i=0; i<=diamondSize; i++)
    {
        printLine(i);
    }
    // Print bottom triangle.
    for (i-=2; i>0; i--)
    {
        printLine(i);
    }
    return 0;
}
+ 1
#include <iostream>
using namespace std;
int main()
{
int space=10,n,i;
cin>>n;
for ( i=0;i<n;i++)
{
for (int j=0;j<=space;j++) cout<<" ";
for (int k=0;k<i;k++) cout<<"*";
cout<<endl;
space--;}
for (i=n;i>=0;i--)
{
  for (int j=0;j<=space;j++) cout<<" ";
for (int k=0;k<i;k++) cout<<"*";
cout<<endl;
space++;
}
    
}
+ 1
it's super cute!!
0
#In python, Single line of code using Comprehension
n=5
print('\n'.join([('* '*i).center(2*n) for i in range(1,n+1)] + [('* '*i).center(2*n) for i in range(n-1,0,-1)]))









