自然数列1,2,3……N,擦去其中一个数K,其余的数的平均值为A又B分之C((A*B+C)/B) 求K。
#include <stdio.h>
fun(n,a,b,c)
{int k;
for(k=0;k<n;k++)
{if(k==n*(n+1)/2-((n-1)*(a*b+c)/b))
return k;
}}
main()
{int a,b,c,k,n;
scanf(“%d %d %d”,&a,&b,&c);
for(n=1;;n++)
{
k=fun(n,a,b,c);
if(k)
break;
}
printf(“%d”,k);
}
那里出错了?求各位大大帮忙 课程设计 后天就要交了的,急啊!
>> 本文固定链接: http://www.vcgood.com/archives/2494
定义函数是有错误
首先函数返回值类型没说明,形参类型也没说明
应该写成
int fun(int n,int a,int b,int c)
{int k;
for(k=0;k<n;k++)
{if(k==n*(n+1)/2-((n-1)*(a*b+c)/b))
return k;
}}
这样貌似就可以了,有一个warning,可以得出结果,你自己改改fun函数中的条件判断吧
编码规范
这是你的原程序,加上楼上那位仁兄改写的规范写法之一
#include <stdio.h>
int fun(int n, int a, int b, int c)
{
int k;
for(k = 0; k < n; k++)
{
if( k == n*(n+1)/2-((n-1)*(a*b+c)/b) )
return k;
}
}
int main()
{
int a, b, c, k = 0, n;
scanf(“%d %d %d”,&a,&b,&c);
for(n = 1; ; n++)
{
k=fun(n,a,b,c);
if(k)
break;
}
printf(“%d”,k);
return 0;
}
具体没看对错 你在看一下 感觉不对
#include <stdio.h>
int fun(int n, int a, int b, int c)
{
int k;
for(k = 0; k < n; k++)
{
if( k == n*(n+1)/2-((n-1)*(a*b+c)/b) )
return k;
}
}
int main()
{
int a, b, c, k = 0, n;
scanf(“%d %d %d”,&a,&b,&c);
for(n = 1; ; n++)
{
k=fun(n,a,b,c);
if(k)
break;
}
printf(“%d”,k);
return 0;
}
l楼上的,请问,这个 return 0;
是什么用?