I need help with a program. I have to write a recursive function to print a right triangle such as this (for n
== 4):
*
* *
* * *
* * * *
n
is the length of foundation. I may not use loops, global variables, or the static
keyword.
So far I have a program printing n
:
#include <stdlib.h>
void triangle(int n);
int main() {
int n;
printf("Write n: ");
scanf("%d", &n);
triangle(n);
return 0;
}
void triangle(int n) {
if (n != 0) {
triangle(n - 1);
printf("%d", n);
printf("\n");
}
}
So how can I print a triangle like this, and will be my program helpful for doing this task?
If you want to use recursion your code should be like this:
#include <stdio.h>
// function to print a row
void printn(int num);
// function to print the pattern
void pattern(int n, int i);
// driver function
int main()
{
int n;
if(scanf("%d", &n) != 1)
{
printf("Invalid number");
return 1;
}
pattern(n, 1);
return 0;
}
void pattern(int n, int i)
{
// base case
if (n == 0)
return;
printn(i);
printf("\n");
// recursively calling pattern()
pattern(n - 1, i + 1);
}
void printn(int num)
{
// base case
if (num == 0)
return;
printf("* ");
// recursively calling printn()
printn(num - 1);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.