| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1106 人关注过本帖
标题:[求助]计算正整数次方de函数,谁能告诉我错在哪里
只看楼主 加入收藏
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
 问题点数:0 回复次数:6 
[求助]计算正整数次方de函数,谁能告诉我错在哪里

谁能告诉我错在哪里,我刚学函数,我觉得是调用函数用错了


//计算正整数的n次方
#include <stdio.h>

int fu ( int a ); //处理负数的函数
long int xtothen ( int x, int n); //处理计算n次方的函数
int result, x, n;//x为底数,n为指数
int i = 1;//i 做循环用

int main (void)
{
printf ("输入你想要的值( x n ): \n");
scanf ("%i%i", &x, &n);
printf ( "result is = %i\n", xtothen (x, n));

return 0;
}

long int xtothen ( int x, int n)//处理计算n次方的函数
{
x = fu ( x);
n = fu ( n);
result = 1;
if ( x = 0 )
printf ("error 底数等于0\n");
else if ( x != 0 && n == 0 )
result = 1;
else
while ( i <= n )
result *= x;

return result;
}


int fu ( int a)//处理负数的函数
{
if ( a < 0 )
{
a = -a;
printf (" 输入的负数已经当作正数处理了\n");
}
else
a = a;
return a;
}

搜索更多相关主题的帖子: 整数 函数 
2007-07-11 17:15
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 
result *= x;给result赋个初值,把1赋给它。

深山苦学C语言,终年不见外面世界。
2007-07-11 18:54
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 

我帮你修改了下,你看看。
#include <stdio.h>

int fu ( int a );
long int xtothen ( int x, int n);
int result=1, x, n;
int i = 1;

int main (void)
{
printf ("输入你想要的值(( x n ): \n");
scanf ("%i%i", &x, &n);

printf ( "result is = %i\n",xtothen (x, n));
getch();
return 0;
}

long int xtothen ( int x, int n)
{
x = fu ( x);
n = fu ( n);
result = 1;
if ( x == 0 )
printf ("输入的负数已经当作正数处理了\n");
else if ( x != 0 && n == 0 )
result = 1;
else
while ( i++ <= n )
result *= x;

return result;
}


int fu ( int a)
{
if ( a < 0 )
{
a = -a;
printf (" \n");
}
else
a = a;
return a;
}


深山苦学C语言,终年不见外面世界。
2007-07-11 18:57
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
把循环控制变量定义为全局变量……
还有这样的语句a = a;……
楼主还需要多学习多练习啊。

定义变量时应该保证其作用域尽可能的小,不过C语言编译器有一些恶心的规定和这个规则相背,还是C++好啊。
不要在固定功能的函数里写些莫名奇妙的printf。
比如你写一个乘幂运算那就int power(int x,int n);
我想你也不想调用的时候莫明其妙的出来一句“输入的负数已经当作正数处理了”。。。
如果你只是做调试,建议你可以使用这样的方式

#include <stdio.h>
#define DEBUG /*调试的时候就这样,不调试的时候只要把这行注释掉就可以了*/
...

#ifdef DEBUG
printf("",...);
#endif
2007-07-11 19:48
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
得分:0 
学习一下,谢谢楼上几位大哥
我还要测试一下,我是在学C语言
2007-07-11 20:57
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
得分:0 
距离我发此贴快整3年了,
想想以前的程序好简单呀。
以前水平也真够差的。
今天无意搜出来的,感慨下。
现在写的都是些huffmanTree,binaryTree,图这些数据结构,
和算法等东西了,
而且会c,c++, c#, java多门语言
写的程序基本在几百到几千行了。

真的好感慨呀
2010-06-27 20:28
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
得分:0 
老帖
2010-06-27 20:29
快速回复:[求助]计算正整数次方de函数,谁能告诉我错在哪里
数据加载中...
 
   



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

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