Pascal的替代方法';使用用户定义函数的s三角形 #包括 #包括 整数事实(整数x); 整数系数(整数y); int main(){ int n,i,j,k; printf(“\n输入电源:”); scanf(“%d”和“&n”); 对于(i=0;ii;k--){ printf(“”); } printf(“%4d”,系数(i)); printf(“\n”); } getch(); } 整数事实(整数x){ int a,f=1; 对于(a=x;a>0;a--){ 如果(x==0){ 返回1; } 返回f*=a; } } 整数系数(整数y){ int m; 对于(m=0;m

Pascal的替代方法';使用用户定义函数的s三角形 #包括 #包括 整数事实(整数x); 整数系数(整数y); int main(){ int n,i,j,k; printf(“\n输入电源:”); scanf(“%d”和“&n”); 对于(i=0;ii;k--){ printf(“”); } printf(“%4d”,系数(i)); printf(“\n”); } getch(); } 整数事实(整数x){ int a,f=1; 对于(a=x;a>0;a--){ 如果(x==0){ 返回1; } 返回f*=a; } } 整数系数(整数y){ int m; 对于(m=0;m,c,C,而言,下面的解决方案包括纠正代码中的错误以及一些改进: 1) 使用stdio.h中的getchar,而不是非标准conio.h中的getch 2) coeff函数不需要for循环。 3) fact函数完全计算阶乘,然后返回值。 4) 另一个循环包含在主循环中,用于在一行中打印幂的所有系数 #include <stdio.h> #include <conio.h> int fact(int x); int coeff(int y); int

而言,下面的解决方案包括纠正代码中的错误以及一些改进:
1) 使用
stdio.h
中的
getchar
,而不是非标准
conio.h
中的
getch
2)
coeff
函数不需要
for
循环。
3)
fact
函数完全计算阶乘,然后返回值。
4) 另一个循环包含在主循环中,用于在一行中打印幂的所有系数

   #include <stdio.h>
   #include <conio.h>

   int fact(int x);
   int coeff(int y);

   int main(){
     int n,i,j,k;
     printf("\nENTER THE POWER:");
     scanf("%d",&n);
     for (i=0;i<=n;i++){
       for(k=n;k>i;k--){
          printf("  ");
       }
       printf("%4d",coeff(i));
       printf("\n");
     }
     getch();
   }

   int fact(int x){
      int a , f=1 ;
      for (a=x;a>0;a--){
        if(x==0){
           return 1;
        }
        return f*=a;
      }
   }

   int coeff(int y){
      int m ;
      for(m=0;m<=y;m++) {
        return (fact(y))/(fact(m)*fact(y-m));
      }
   }

一开始我就注意到一件事:for循环(包括“fact()”和“coeff()”)中的返回看起来很可疑……建议:在调试器中单步执行代码。学习使用调试器是学习任何编程语言最重要的事情之一。老实说!@paulsm4……我如何使用“调试器”?它是否包含在编辑器代码块中?您绝对需要学习如何使用编译器的调试器。这是一项关键技能。老实说。请看这里:谢谢!这真的帮了大忙!
#include <stdio.h>

int fact(int x);
int coeff(int n, int y);

int main(){
 int n,i,j,k;
 n = i = j = k = 0;
 printf("\nENTER THE POWER:");
 scanf("%d",&n);
 for (i=0;i<=n;i++){
   for(k=n;k>i;k--){
      printf("  ");       
   }
   for(j=0;j<=i;j++){
    printf("%4d",coeff(i, j));
   }       
   printf("\n");
 }     
 getchar();
}

int fact(int x){
  int a , f=1 ;
  if(x==0){
       return 1;
    }
  for (a=x;a>0;a--){
    f*=a;
  }
  return f;
}

int coeff(int n, int y){
    return (fact(n))/(fact(y)*fact(n-y));
}
a.exe
ENTER THE POWER:5
             1
           1   1
         1   2   1
       1   3   3   1
     1   4   6   4   1
   1   5  10  10   5   1

a.exe
ENTER THE POWER:6
               1
             1   1
           1   2   1
         1   3   3   1
       1   4   6   4   1
     1   5  10  10   5   1
   1   6  15  20  15   6   1

a.exe
ENTER THE POWER:7
                 1
               1   1
             1   2   1
           1   3   3   1
         1   4   6   4   1
       1   5  10  10   5   1
     1   6  15  20  15   6   1
   1   7  21  35  35  21   7   1