| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 374 人关注过本帖
标题:类型的定义问题
只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
类型的定义问题
我写了个程序是计算一个数的n次方的,结果的类型不知道该怎么定型
都是整形的话程序是这样:
#include<stdio.h>
int pingfang(int a,int n)
{
 if(n==1) return a;
 else return a*pingfang(a,n-1);
}
void main()
{
 int a,n;
 scanf("%d,%d",&a,&n);
 printf("a=%d,n=%d\n",a,n);
 printf("%d^%d=%d\n",a,n,pingfang(a,n));
}
现在都是整形的,如果我想把里面的a换成double型的n还是整形的,应该改动里面的什么地方呢?改了好多地方都会出错误。
搜索更多相关主题的帖子: 整形 return 
2011-09-24 06:59
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 楼主 小赵q1
pow
原型:在TC2.0中原型为extern float pow(float x, float y); ,而在VC6.0中原型为double pow( double x, double y );
头文件:math.h
功能:计算x的y次幂。
返回值:x应大于零,返回幂指数的结果。
举例1:(在VC6.0中运行通过)
#include<math.h>
#include<stdio.h>
int main(void)
{
double x = 2.0, y = 3.0;
printf("%lf raised to %lf is %lf\n", x, y, pow(x, y));
return 0;
}
举例2: (在TC2.0中运行通过)
// pow.c
#include<syslib.h>
#include<math.h>
main()
{
clrscr(); // clear screen
textmode(0x00); // 6 lines per LCD screen
printf("4^5=%f",pow(4.,5.));
getchar();
return 0;
}

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-24 07:19
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 2楼 A13433758072
不好意思,我刚学C没有多长时间,你给我发的两个例子有点看不懂,
我的程序是在TC2.0里运行的,学了一个月做到的也就到把a的n次方写成那样的效果。
可以帮我把里面的int a,换成double a,然后scanf()里的%d应该怎么改呢?是%f吗?
最后输出结果里的%d也换成%f吗?结果是通不过。
2011-09-25 03:19
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:20 
回复 3楼 小赵q1
#include<stdio.h>
double pingfang(double a,double n)
{
if(n==1.0) return a;
else return (a*pingfang(a,n-1));
}
void main()
{
double a,n;
scanf("%Lf,%Lf",&a,&n);双精度浮点数是32位的,所以要用lf或Lf
printf("a=%Lf,n=%Lf\n",a,n);输出也可以用%f,因为系统会自动转的,这里我用双精度,你更容易接受
printf("%Lf^%Lf=%Lf\n",a,n,pingfang(a,n));
}

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-25 06:53
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 4楼 A13433758072
问题解决了,呵呵
我的意思其实是n保持int型不变,把a换成double型,想看下两个类型不一样的情况下,scanf()里面的格式符和printf()里面的格式符应该怎么改,都换成一种类型的话确实好做,不过你的话给了我灵感,谢谢
我只把里面a的格式符全部改为%lf,最后的结果自动转为double了,所以,格式符也是%lf,就出结果了。
2011-09-25 08:41
快速回复:类型的定义问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021347 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved