注册 登录
编程论坛 C语言论坛

求大佬告诉如何编写这个程序

起因 发布于 2020-07-15 13:24, 2557 次点击
输入有若干行,每行为由空格分隔的若干数十六进制整数 求每行的和并用十进制整数输出
示例
输入
0x4 0x5
0x1 0x2 0x3
输出
9
6
输入
0x4 0x5
输出
9
8 回复
#2
rjsp2020-07-15 14:08
没有任何限制条件吗?比如单个整数的最大值,每行整数的数目上限,或每行最大字符数目 啥的。
否则一行内输入 一亿亿 个 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 你能处理吗?
#3
起因2020-07-15 14:13
16进制数不超过10000个
#4
起因2020-07-15 14:14
每行不超过10000个
#5
rjsp2020-07-15 14:25
“16进制数不超过10000个” ------ 是指每个整数不超过10000个字符吧?!也就是 0x开头,后面最多可以接9998个字符。
“每行不超过10000个 ” ------ 是指每行不超过10000个字符,还是每行不超过10000个整数

你就不能把话说清楚吗?
每行最多几个字符?单个整数最多几个字符?
#6
起因2020-07-15 14:36
每行做多10000个整数
每个整数不限字符
#7
吹水佬2020-07-15 14:43
先做简单的
#include <stdio.h>
int main(void)
{
    int i,n,x,sum=0;
    scanf("%d", &n);
    for (i=0; i<n; ++i)
    {
        scanf("%x", &x);
        sum += x;
    }
    printf("%d\n", sum);
    return 0;
}
#8
起因2020-07-15 14:52
可以理解
#9
纯蓝之刃2020-07-15 15:02
程序代码:
#include <string.h>
#include <stdio.h>

int main()
{
    char *token,str[10001];
    const char s[2]="x";
    int a,sum=0;

    while(1)
    {
        sum=0;
        fgets(str,10000,stdin);
        token=strtok(str,s);
        while(token!=NULL)
        {
            sscanf(token,"%x",&a);
            sum+=a;
            token=strtok(NULL,s);
        }
        printf("sum=%d\n",sum);
    }

    return 0;
}
1