My assignment is to write a program that produces a diamond when the user inputs an integer, if the integer is even it should be increased to the next odd number.

if the number is 7, it should print:

___*
__***
_*****
*******
_*****
__***
___*

(Without the underscores.)

So far I am able to produce the following output with the code I have written:

Enter number: 7
3

*
**
***
Press any key to continue



#include <iostream>
using std::cout;
using std::cin;
using std::endl;


int main()
{


int n;


cout<<"Enter number: ";
cin>>n;


cout<<n/2<<endl<<endl;


for(int i=0; i<=n/2; i++){
cout<<" ";


for(int st=1; st<=i; st++)
{
cout<<"*";
}
cout<<endl;
}


return 0;
}

This is an assignment on nested loops, so we're supposed to use 4 for loops. I suspect that there's going to be 2 pairs of nested for loops. Can anyone help me out?

Recommended Answers

All 6 Replies

Greetings.
Sorry, I didn't have time to really sit down and think.
Can't get 4 for loops, but I've got a while nested with 3 for loops.
Take it as a reference if you like.
I'll spend some more time to come out with one with 4-For loops. :cheesy:

#include <iostream> using std::cout; using std::cin; using std::endl; int main() { int num, odd, increment, space; bool go; num = 0; increment = 1; odd = 1; go = false; do{
        cout<<"Enter number: ";
        cin>>num; }while(num<3); if(num%2==0)
        num = num + 1; while(odd<=num) {
        space = num/2 - odd + increment;
        if(go==false)
        increment += 1;
        else
        increment -= 1; 
        for(int x=0; x<space; x++)
        cout<<" "; 
        for(x=0; x<odd; x++)
        cout<<"*"; 
        for(x=0; x<space; x++)
        cout<<" ";
        cout<<endl; 
        if(go==false)
        odd += 2;
        else
        odd -= 2;
        if(odd>num && go==false)
        {
        odd = num - 2;
        increment = num/2;
        go = true;
        }
        if(odd<0)
        odd = num + 1; } return 0; }

Hope this helps.

red_evolve,you really helpful person.
actually my college is having assignment soon and the title is address book system,since i am very fresh in programming,hope can get help from u too... :idea: hope meet you soon

red_evolve,you really helpful person.
actually my college is having assignment soon and the title is address book system,since i am very fresh in programming,hope can get help from u too... :idea: hope meet you soon

I agree, thanks for replying. I can't belive you went out of your way to write that code. I'm not sure if I understanding all the logics of it so I'll continue to study it and pursue the 4 for loops method. I've gotten a bit further already.

Greetings.
No problemo.
To Eddie,
I'm ready to help as long as you show some effort. ;)
To mrlucky0,
Sorry for being unable to come out with the exact result you wanted. Try to post
what you can get and I'll be sure to help out.

hi mrlucky0, heres a similar prog.chk this also out.i feel this is quite simple than that of red_evolves.

#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int n,k,no,i,j,a,b,c;
cout<<"\nenter n:";
cin>>n;
if(n%2==0)
n++;
for(i=1;i<=n;i+=2)
{
for(j=i;j<n;j+=2)
cout<<" ";
for(k=1;k<=i;k++)
cout<<"*";
cout<<"\n";
}
for(i=n-2;i>=1;i-=2)
{
for(j=i;j<n;j+=2)
cout<<" ";
for(k=1;k<=i;k++)
cout<<"*";
cout<<"\n";
}
getch();
}

Yes, I was attempting to write a program similar to that. Looks like you found it. Eventually I was able to figure it out. Here's my rendition, which is not too different. But I swear, I did it on my own!

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main()
{

	int num, p=1;

	
	cout<<"Enter number: ";
	cin>>num;

	if(num%2==0)
		num+=1;

	int sp=num/2;

	for(int i=0; i<=num/2; i++)
	{
		for(int j=0; j<sp; j++)
		{
			cout<<" ";
		}

		for(int k=0; k<p; k++)
		{
			cout<<"*";
		}

		cout<<endl;
		p+=2;
		sp--;
	}
		sp=1;
		p=num-2;
	
	
	 for(i=0; i<num/2; i++)
	{
		for(int j=0; j<sp; j++)
		{
			cout<<" ";
		}

		for(int k=0; k<p; k++)
		{
			cout<<"*";
		}

		cout<<endl;
		p-=2;
		sp++;
	}


return 0;
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.