| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2489 人关注过本帖
标题:输入多个数(用回车隔开),求它们的反序数的和,输入非数字时结束。
只看楼主 加入收藏
sfb43
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2020-5-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
输入多个数(用回车隔开),求它们的反序数的和,输入非数字时结束。
对键盘输入的任意一组正整数(位数任意),求所有数的反序数之和,这里的反序数是指对该数从右向左顺序读得到的数,例如123的反序数是321,1200的反序数是21。输入非数字时结束程序。
搜索更多相关主题的帖子: 数字 结束 输入 多个 序数 
2020-05-27 11:19
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
收藏
得分:15 
程序代码:
#include <stdio.h>

 
int foo(int n)
{
    int sum = 0;
    while(n)
    {
        int temp = n % 10;
        sum = sum * 10 + temp;
        n /= 10;
    }
    return sum;

}
int main(void)
{
    int a;
    int value = 0;
    int status = scanf("%d", &a);
    while(status==1){
        value += foo(a);
        status = scanf("%d", &a);
    }
    printf("value is %d\n", value);
    return 0;
}

借用一下侯捷的话:勿在浮沙筑高台。
2020-05-27 16:12
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
100 反序数是什么 001 还是 1

https://zh.
2020-05-27 17:35
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:5 
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char **array,ch;
    int num=0,i=1,j;
    int start=0;

    array=(char**)calloc(num+1,sizeof(char*));
    *(array+num)=(char*)calloc(i+1,sizeof(char));

    while(1)
    {
        ch=getchar();
        if(ch>='0'&&ch<='9')
        {
            *(*(array+num)+i)=ch;
            i++;
            *(array+num)=(char*)realloc(*(array+num),(i+1)*sizeof(char));
        }
        else if(ch=='\n')
        {
            *(*(array+num))=i;      //上一个数据计长度
            num++;
            i=1;
            array=(char**)realloc(array,(num+1)*sizeof(char*));
            *(array+num)=(char*)calloc(i+1,sizeof(char));
        }
        else
        {
            *(*(array+num))=i;      //上一个数据计长度
            break;
        }
    }

    //printf("num=%d\n",num);
    for(i=0; i<=num; i++)
    {
        for(j=*(*(array+i))-1; j>0; j--)
        {
            if(*(*(array+i)+j)=='0'&&start==0)
                continue;
            start=1;
            printf("%c",*(*(array+i)+j));
        }
        start=0;
        printf("\n");
    }

    for(i=0; i<=num; i++)
        free(*(array+i));
    free(array);

    return 0;
}


[此贴子已经被作者于2020-5-27 18:07编辑过]


一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-05-27 18:02
sfb43
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2020-5-27
收藏
得分:0 
回复 3楼 lin5161678
001的反序数是1
2020-05-28 11:22
sfb43
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2020-5-27
收藏
得分:0 
回复 2楼 吕孟伟
可以使用嵌套循环来解决这个问题吗?
2020-05-28 11:34
sfb43
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2020-5-27
收藏
得分:0 
谢谢啦,写出来了
2020-05-28 13:14
快速回复:输入多个数(用回车隔开),求它们的反序数的和,输入非数字时结束。
数据加载中...
 
   



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

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