| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 657 人关注过本帖
标题:求教静态变量实现x的n次方
只看楼主 加入收藏
wangxiaohu
Rank: 2
等 级:论坛游民
帖 子:19
专家分:29
注 册:2012-4-4
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:4 
求教静态变量实现x的n次方
#include<stdio.h>
void main()
{
    int f(int t);
    static int x;
    int n;
    int i, j;
    scanf("%d%d", &x, &n );
    j=x;
    for(i=0;i<(n-1);i++)
    {        
        j=f(x);
    }
    printf("%d\n", j);
}

int f(int t)
{
    t*=t;
    return t;
}
搜索更多相关主题的帖子: static 
2012-05-27 10:52
lknight
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:37
专家分:187
注 册:2008-9-17
收藏
得分:3 
int f(int t)
{
    t*=t;
    return t;
}
你这个程序逻辑有问题,你看上面这个函数啊,参数列表时int t,那就是说函数里面真正执行时用的是传进来的参数(x)的拷贝,函数执行后并不会修改传进来的参数(x)的值,也就是说每次执行这个函数返回值都是返回的输入参数(x)的平方,如果输入2 3的话,你现在程序实际执行的是2*2=4 2*2=4 2*2=4,最终结果4。当然了,传指针和引用也是可以,但同样是逻辑问题,因为这两种方式修改原变量(x)的值,每调用一次原值(x)就会变成(x的平方),这样的结果就是如果你输入2 3实际执行的是2*2=4 4*4=16 16*16=256,最终结果256。
2012-05-27 11:26
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:2 
#include<stdio.h>
int f(int t);
int main(void)
{
   
    int x;
    int n;
    int i, j;
    scanf("%d,%d", &x, &n );
    for(i=0;i<n;i++)
    {      
        j=f(x);
    }
    printf("%d\n", j);
}
int f(int t)
{
    static int temp=1;
    temp*=t;
    return temp;
}

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-05-27 11:40
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:0 
pow(x,n)//include<math.h>
2012-05-27 11:53
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
求下2的1亿次方的后五位

                                         
===========深入<----------------->浅出============
2012-05-27 11:57
快速回复:求教静态变量实现x的n次方
数据加载中...
 
   



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

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