先问一下,你想求的是相乘等于一的倒数,还是将排列顺序反过来的倒数
创新互联是专业的惠民网站建设公司,惠民接单;提供网站建设、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行惠民网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
思路:函数传入参数n,接着for循环从1到n依次就倒数累加和。
参考代码:
#include "stdio.h"
double fun(int n){
double sum=0;
int i;
for(i=1;i=n;i++)
sum+=1.0/i;
return sum;
}
int main()
{
int n;
scanf("%d",n);
printf("%.2lf",fun(n));
return 0;
}
/*
运行结果:
5
2.28
*/
在C语言中,后面的小括号是函数的标志,所以,invert(s+1)是函数调用语句。
函数名是invert,括号内的s+1是函数的参数,同时也说明这个函数只需要一个参数。
具体函数的作用,要看函数的内部结构,在此无法判断。
有什么问题请留言。
intn=5;doublex=3.141592654;while(n0)//取出小数后n位{x=x*10;//更新x值,把小数点后第一位放在个位上printf("%d\n",(int)x%10);//int强制把double转换成int,因为求余必须为int类型,//而%10求余,是求个位上的数字i--;}
我做了个输入一个数的 :但转换为数字 不考虑转换成字符(也就是有这样的缺陷 输入1000 则转换后只是1不会是0001)
你要是输入多个数采用上面的朋友写的
程序不是很好 要是输入的不是 int类型就不成了
/* Note:Your choice is C IDE */
#include "stdio.h"
int lfun(int a)
{int i=1,s=1;
if(a)
for(i;ia;i++)
s=s*10;
return s;
}
int fun(int a)
{ int i=1,j=10,swap=0,s=0;
if(a0)
while(1)
{
if(a%j!=a)
{
s++;
j=j*10;
}
else
{s++;
break;
}
}
for(i;i=s;i++)
{
j=j/10;
swap=swap+a/j*lfun(i);
a=a%j;
}
return swap;
}
void main()
{
char ch;
int a,b;
printf("输入一个整数:\n");
scanf("%d",a);
b=fun(a);
printf("输入前: %d 输出之后: %d\n",a,b);
printf("是否在转换回来?Y/N\n");
getchar();
ch=getchar();
if(ch=='y'||ch=='Y')printf("还原: %d\n",a);
system("pause");
return 0;
}