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