问题描述
Q:在单个 C 程序中编写三个不同的函数 Lefttriangle()、Righttriangle()、Pascaltriangle(),并根据用户的要求以交互方式显示三角形。
所以我尝试了这个。它正在打印选项,然后我输入一个选项,假设 1 然后它要求输入数字“n”。然后,我正在输入数字,假设为 4 并按 Enter。但是它没有显示对应于 4 的左三角形。它再次打印选项。
#include<stdio.h>
#include<conio.h>
#include<math.h>
void pascaltriangle(int i,int j,int k,int n,int m)
{
for(i=0;i<n;i++)
{
for(k=1;k<=n-i;k++)
{
printf("The Pascal triangle of numbers is as follows - \n");
printf(" ");
}
for(j=0;j<=i;j++)
{
if(j==0||i==0)
m=1;
else
m=m*(i-j+1)/j;
printf(" %d",m);
}
printf("\n",m);
}
}
void lefttriangle(int i,int n)
{
printf("Enter the value of n : ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
printf("The left triangle of numbers is as follows - \n");
printf("%d",j);
printf("\n");
}
}
void righttriangle(int i,&n);
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
printf("The right triangle of numbers is as follows - \n");
printf(" ");
}
for(k=1;k<=i;k++)
{
printf("%d",k);
}
printf("\n");
}
}
int main()
{
int choice;
int i,j,k,n,m=1;
do
{
printf("\nEnter the choice below.\n");
printf("*************************\n");
printf("1-> Left Traingle.\n");
printf("2-> Right Triangle.\n");
printf("3-> Pascal Triangle.\n");
printf("*************************\n");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("Enter the value of n : ");
scanf("%d",&n);
void lefttriangle( i,n);
break;
case 2:
printf("Enter the value of n : ");
scanf("%d",&n);
void righttriangle(i,n);
break;
case 3:
printf("Enter the value of n : ");
scanf("%d",&n);
void pascaltriangle(i,m);
break;
case 4:
printf("Thank you!\n");
exit(0);
default:
printf("Enter a valid number.\n");
}
}while(1);
return(0);
}
解决方法
在您的 switch 中,当输入 4
时,这种情况对应于:
printf("Thank you!\n");
exit(0);
只有当用户输入1
时,才会调用左三角函数。
此外,在调用这些函数时,不要将返回类型放在它们前面。只有在声明和/或实施它们时才这样做。