C语言一道算法题输入若干行,每行代表一个需要求和的正整数,整数不超过700位最后一行为0,表示输入结束sample in
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/07 11:35:13
C语言一道算法题
输入若干行,每行代表一个需要求和的正整数,整数不超过700位
最后一行为0,表示输入结束
sample input
123
234
12
0
sample output
6
9
3
下面是我的源码
#include
int main ()
{
long long int n,sum,i,j;
int a[800];
scanf ("%lld",&n);
while (n!=0)
{
for(i=0;n>=1;i++)
{
a[i]=n%10;
n=(n-a[i])/10;
}
for(j=0;j
输入若干行,每行代表一个需要求和的正整数,整数不超过700位
最后一行为0,表示输入结束
sample input
123
234
12
0
sample output
6
9
3
下面是我的源码
#include
int main ()
{
long long int n,sum,i,j;
int a[800];
scanf ("%lld",&n);
while (n!=0)
{
for(i=0;n>=1;i++)
{
a[i]=n%10;
n=(n-a[i])/10;
}
for(j=0;j
这设计到计算机的数值表示问题,一般32位的计算机用unsigned long long最大能表示的也只到18446744073709551615,所以超过20位做运算时就因为计算机不能表示而出错了.对于这类题目你可以考虑用数组来做.下面是一段参考程序#include<stdio.h>
#include<string.h>
char input[705];
int main()
{
while(1)
{
scanf("%s", input);
if(strcmp(input, "0") == 0)
exit(0);
for( i = 0; input[i] != '\0'; i++)
{
sum += input[i] - '0';
}
printf("%d\n",sum);
}
return 0;
}
再问: 第16行 -'0'是什么意思呢?
再答: 这是为了把字符转化成对应的数字,因为input数组存储的是字符,例如:你input[1]中存的是1,实际上它是'1',ASCII码值为49,而‘0’的ASCII码值为48,这样一减就得到了‘1’的所代表的实际数字1
#include<string.h>
char input[705];
int main()
{
while(1)
{
scanf("%s", input);
if(strcmp(input, "0") == 0)
exit(0);
for( i = 0; input[i] != '\0'; i++)
{
sum += input[i] - '0';
}
printf("%d\n",sum);
}
return 0;
}
再问: 第16行 -'0'是什么意思呢?
再答: 这是为了把字符转化成对应的数字,因为input数组存储的是字符,例如:你input[1]中存的是1,实际上它是'1',ASCII码值为49,而‘0’的ASCII码值为48,这样一减就得到了‘1’的所代表的实际数字1
C语言一道算法题输入若干行,每行代表一个需要求和的正整数,整数不超过700位最后一行为0,表示输入结束sample in
c语言如何输入整数N,代表下面有N组测试数据,接下来的N行,每行为一个整数?
c语言拼数字问题多组数据每组数据为一行字符串,输入一个空行时结束.对每行求出所得整数的最大因子,若没有整数或为0即输出0
c语言:计算A+B 输入 输入数据有多组.每组一行,为两个整数A,B.输入以0 0结束.输出 输出A+B的值
C语言数字求和问题描述给定一个正整数a,以及另外的5个正整数,这5个整数中,小于a的整数的和是多少?输入输入一行,只包括
C语言 素数求和问题输入一个正整数 repeat (0
c语言:输入若干个整数,以-1标记输入结束.输出其中的最大数 .
用C语言编写,从键盘上输入若干个正整数,输入0结束.统计所有正整数的个数,并计算最大值,最小值和平均值.
C语言 设计算法输入一个四位正整数,将它们倒排,例如输入1234,输出4321.
C语言 素数统计题目描述给定若干个正整数,请判断素数的个数;输入描述输入数据首先包含一个整数N(1
C语言从键盘输入若干个整数,判断读入的正数和负数的个数,输入为0时结束程序!
输入若干个学生的百分制成绩,计算平均分并输出.输入-1表示结束,若输入的成绩超过100,则需重新输入.c语言