Nptel pascal编程作业
我正在nptel的MOOC学习编程和数据结构课程。 课程中的编程作业要求我们计算选定系数之和。 现在,我编写的程序计算了答案,但我遇到了运行时错误。 现在我倾向于使用get()而不是scanf(),以加快输入速度。 我该怎么做? 代码如下:Nptel pascal编程作业,c,C,我正在nptel的MOOC学习编程和数据结构课程。 课程中的编程作业要求我们计算选定系数之和。 现在,我编写的程序计算了答案,但我遇到了运行时错误。 现在我倾向于使用get()而不是scanf(),以加快输入速度。 我该怎么做? 代码如下: #include<stdio.h> int combi(int ,int); long fact(int); int main() { int r,i,v[20],p[20],t,l=
#include<stdio.h>
int combi(int ,int);
long fact(int);
int main()
{
int r,i,v[20],p[20],t,l=1,b=0,sum=0,a=0,flag=0;
char ch='a';
scanf("%d",&r);
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&v[0]);
if(getchar()==' ')
{
if(r<v[0])
{
while(ch!='\n')
{
scanf("%d",&v[l]);
l++;
if(getchar()=='\n')
{
p[a]=-1;
a++;
l=1;
break;
}
}
}
else
{
while(ch!='\n')
{
scanf("%d",&v[l]);
if(v[l]>v[0])
{
flag=1;
}
l++;
if(getchar()=='\n')
{
if(flag>0)
{
p[a]=-1;
a++;
l=1;
sum=0;
flag=0;
break;
}
else
{
for(b=1;b<l;b++)
{
sum=sum+combi(v[0],v[b]);
}
p[a]=sum;
a++;
sum=0;
l=1;
break;
}
}
}
}
}
}
for(i=0;i<t;i++)
{
printf("%d\t ",p[i]);
}
printf("\n");
}
int combi(int x,int y)
{
int a=fact(x)/(fact(x-y)*fact(y));
return a;
}
long fact(int z)
{
int i=1;
long f=1;
while(i<=z)
{
f=f*i;
i++;
}
return f;
}
#包括
int-combi(int,int);
长事实(int);
int main()
{
int r,i,v[20],p[20],t,l=1,b=0,sum=0,a=0,flag=0;
char ch='a';
scanf(“%d”、&r);
scanf(“%d”、&t);
对于(i=0;i0)
{
p[a]=-1;
a++;
l=1;
总和=0;
flag=0;
打破
}
其他的
{
对于(b=1;b建议:永远不要使用gets()
。而是使用fgets()
。这会提高运行时间吗?您建议我如何更改为fgets?为此,您需要详细说明,但我遇到了一个运行时错误
。显然,他希望加快速度,以便更快地找到错误