标题:2.编写函数computNum( int num),它的功能是计算任意输入的一个正整数的各 ...
只看楼主
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
结帖率:88.89%
已结贴  问题点数:20 回复次数:9 
2.编写函数computNum( int num),它的功能是计算任意输入的一个正整数的各位数字之和,结果由函数返回(例如:输入数据是123,返回值为6)。
我的代码如下:
#include<iostream>
using namespace std;
char computnum(char a[1000])
{
    int sum=0,i=0;
    while(a[i]!='\0')
    {
        a[i]=a[i]-48;
        sum+=a[i];
        i++;
    }
    return sum;
}
void main()
{
    int p,i=0,b;
    char a[1000];
    gets(a);
    while(a[i]!='\0')
    {
        if(a[i]<'0'||a[i]>'9')
        {
        cout<<"data error";
        b=1;
        break;
        }
        i++;
    }
    if(b==1)
        cout<<endl;
    else
    {
      p=computnum(a);
      cout<<p;
    }
}
可是这样我输入的数字就不是任意的了,还是存在范围。
搜索更多相关主题的帖子: 函数 int 任意 输入 数据 
2017-11-18 08:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
题目要求是 computNum( int num )
你写的是 computNum( char a[1000] )
2017-11-18 09:06
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
可是用 int num的话也要我的也要限制范围,我只能想到用多重for循环,就这种。
for(i=0;i<=9;i++)
    for(j=0;j<=9;j++)
         for(k=0;k<=9;k++)
             if(num=i*100+j*10+k)
               num=i+j+k;
2017-11-18 09:30
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
我想问一下如何才能做到不限制范围
2017-11-18 09:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
题目中哪有“不限制范围”的要求?既然参数类型是int,那肯定中int范围内
2017-11-18 19:54
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
那您能用c++写一个在int范围的并且符合题目要求不用字符的代码吗?
2017-11-18 22:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <iostream>
using namespace std;

int computNum( int num )
{
    int r = 0;
    for( ; num!=0; num/=10 )
        r += num%10;
    return r;
}

int main( void )
{
    int num;
    cin >> num;
    cout << computNum(num) << endl;
}
2017-11-19 11:41
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
我想问一下为什么输入非数字的时候总是输出同一个值:-52。
2017-11-20 22:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
输入非数字时,也就是num未赋值,那么属于“未定义行为”
2017-11-20 23:23
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
哦哦,谢谢指导
2017-11-21 15:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482607-1-1.html




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

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