#include stdio.h
创新互联建站专注于岳阳县企业网站建设,响应式网站,商城网站定制开发。岳阳县网站建设公司,为岳阳县等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
main()
{
int i,n,s=1;
scanf("%d",n);
for(i=1;i=n;i++)
{s*=i;
}
printf("%d!=%d\n",n,s);
}
两种方法可以做
一个是常规的 根据位数,循环取后一个最高位的值,然后前一个乘十加上去。代码很麻烦
一个是借用字符串。代码如下
#include stdio.h
int main()
{
int n1,n2,m;
char s[100];
scanf("%d%d",n1,n2);
sprintf(s,"%d%d",n1,n2);
sscanf(s,"%d",m);
printf("%d\n",m);
return 0;
}
四句代码搞定。
#include stdio.h
void main(){
int i,n,s=0;
scanf("%d",n);
for(i=1;i=n;i++)
s+=i*10+2;
printf("s=%d",s);
}
#include 你没加头文件,应该改成#include stdio.h
按照你的思路来看,首先你在main函数中声明zuidagongyueshu( )的时候有个错误,应该把这个函数需要调用的参数的类型都写上,应该改成int zuidagongyueshu( int,int,int );
其次,你在zuidagongyueshu( )中返回了最大公约数b的数值,可是你在main函数中并没有把这个值赋给一个变量,应该改成r=zuidagongyueshu( a,b,r );只有把r赋了值,才能用printf输出r的值....
这样改过就能正常运行了~
另外提醒一下,zuidagongyueshu( )中调用两个参数a,b就可以了,其他小细节没啥大碍,附上我修改过的吧
#includestdio.h
int zuidagongyueshu(int a,int b)
{
int r;
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
}
void main()
{
int a,b,r;
int zuidagongyueshu(int,int);
printf("please input two number:");
scanf("%d%d",a,b);
if(ab)
{
r=zuidagongyueshu(a,b);
printf("%d",r);
}
else
{
int c;
c=b;
b=a;
a=c;
r=zuidagongyueshu(a,b);
printf("%d",r);
}
}
你的素数判断函数有问题,既然你想返回1表示是素数,返回0表示不是素数,那么t的取值就反了。
另外,循环过程中只要有一次取余为0,表示可以整除这个k,即表示该数不是素数,可以直接跳出循环。
int sushu(int i)
{
int t=1,k;
float j;
for(k=2;ki;k++)
{
j=i%k;
if(j==0)
{
t=0;
break;
}
}
return(t);
}
首先需要头文件#include
,函数为double
pow(double
x
,double
y)
pow(2,n),注意这里的n必须是个具体的值,不能是未赋值的变量