| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1265 人关注过本帖
标题:a+aa+aaa+aaaa......用函数
只看楼主 加入收藏
wby123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-3-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
a+aa+aaa+aaaa......用函数
#include<stdio.h>
int fn(int a,int n);
int main()
{
    int i,n,a,sum=a;
    scanf("%d, %d",&a,&n);
    for(i=2;i<=n;i++)
    sum=sum+fn(a,i);
    printf("sum=%d",sum);
    return 0;
}
int fn(int a,int n)
{
    int i,t;

    for(i=2;i<=n;i++)
        a=a*10+a;
    return a;
}
请问这哪里错了?
2016-04-19 15:50
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
程序代码:
#include <stdio.h>

int fn(int a,int n);

int main()
{
    int i,n,a,sum;
    scanf("%d, %d",&a,&n);
    sum=a;  //
    for(i=2;i<=n;i++)
    sum=sum+fn(a,i);

    printf("sum=%d",sum);
    
    return 0;
}
int fn(int a,int n)  //n<10
{
    int i,t=a;

    for(i=2;i<=n;i++)
        t=t*10+a;  //注意后面的a的改变
    
    return t;
}


[此贴子已经被作者于2016-4-20 08:37编辑过]

收到的鲜花
  • wby1232016-04-20 23:10 送鲜花  3朵  

   唯实惟新 至诚致志
2016-04-19 16:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:7 
不会溢出吗?

其实就是小学生的竖列式求和
2016-04-19 19:35
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:7 
其实题主问的问题并不是溢出的原因,而是因为在开始的时候 sum=a处   a是系统值 随便给了数,然而在下一句给a赋值的时候误认为也给sum赋了相同的值,所以才出现了一奇怪的数字,只要把sum=a放在  scanf(“”a) 后面就好了

好好学习,天天向上!
2016-04-20 08:29
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:0 
以下是引用未来大仙在2016-4-20 08:29:18的发言:

其实题主问的问题并不是溢出的原因,而是因为在开始的时候 sum=a处   a是系统值 随便给了数,然而在下一句给a赋值的时候误认为也给sum赋了相同的值,所以才出现了一奇怪的数字,只要把sum=a放在  scanf(“”a) 后面就好了
当然也要考虑溢出的问题,毕竟int的范围比较小
收到的鲜花
  • wby1232016-04-20 23:10 送鲜花  3朵  

好好学习,天天向上!
2016-04-20 08:30
快速回复:a+aa+aaa+aaaa......用函数
数据加载中...
 
   



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

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