编程论坛
注册
登录
编程论坛
→
C语言论坛
求大佬告诉如何编写这个程序
起因
发布于 2020-07-15 13:24, 2557 次点击
输入有若干行,每行为由空格分隔的若干数十六进制整数 求每行的和并用十进制整数输出
示例
输入
0x4 0x5
0x1 0x2 0x3
输出
9
6
输入
0x4 0x5
输出
9
8 回复
#2
rjsp
2020-07-15 14:08
没有任何限制条件吗?比如单个整数的最大值,每行整数的数目上限,或每行最大字符数目 啥的。
否则一行内输入 一亿亿 个 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 你能处理吗?
#3
起因
2020-07-15 14:13
16进制数不超过10000个
#4
起因
2020-07-15 14:14
每行不超过10000个
#5
rjsp
2020-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