0

In my computing class we have got to make a program which outputs the following

"XXXXXXXXXX
YXXXXXXXXX
YYXXXXXXXX
YYYXXXXXXX
YYYYXXXXXX
YYYYYXXXXX
YYYYYYXXXX
YYYYYYYXXX
YYYYYYYYXX
YYYYYYYYYX
YYYYYYYYYY"

We have to create a function and we can only use if and loops. but I'm having difficultly doing it outside of a function to start with. Please can somebody help?

3
Contributors
4
Replies
6
Views
6 Years
Discussion Span
Last Post by Schol-R-LEA
0

I think I would need variables for the following:

loop counter
variable for x
variable for y
character counter

could I get by on 4 variables or do I need anymore

0

You'll need a variable to count the loops, and then another for the upper limit:

for(i=0;i<UpperLimit;i++)

In this case, Upper limit equals both the longest number of char's in the last row of the pyramid, but also, the number of rows to be printed. Convenient. ;)

How about a 'j' variable for the number of y's that have been printed, in that row.

Then

if(j<i) putchar('y')
  else putchar('x');

Edited by Adak: n/a

0

I've tried and I'm getting annoyed with this please could you put it in the correct format.

I've attempted below.

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

main()
{
      int i=0; // loop counter
      int l=0;  //loop 2
      int j=10; // number of y's printed

      for(l=0;l<10;l++)
      {
      for(i=0;i<10;i++)
      {
      if(j<i) putchar('y');
      else putchar('x');
      }
      printf("\n");
      }
      system("pause");
}
0

I would recommend not using the lowercase 'l' as a variable name; it's too easily confused with the numeral '1'.

Also, you don't need the extra variable here; the two loop indices are enough information. if you rename 'l' as 'j' and reverse the test in the if statement, it ought to work.

Finally, I suggest that you be more careful with you indentation; you should have the inner loop indented more than the outer one, and the if indented even more. The exact style of indentation is up to you, but you really ought to indent it so that the levels of nesting are clear:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

main()
{
      int i=0; // loop counter
      int j=0; // number of y's printed

      for(j=0;j<=10;j++)
      {
          for(i=0;i<10;i++)
          {
              if(j>i) 
                  putchar('Y');
              else 
                  putchar('X');
          }
          printf("\n");
      }
      system("pause");
}

Edited by Schol-R-LEA: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.