求助,c语言问题
本帖最后由 NYJYA 于 2019-1-20 09:17 编辑题目描述:谷学长有一个非常简单的问题给你,给你两个整数A和B,你的任务是计算A+B。
输入:输入的第一行包含一个整数T(T<=20)表示测试实例的个数,然后2*T行,分别表示A和B两个正整数。注意整数非常大,那意味着你不能用32位整数来处理。你可以确定的是整数的长度不超过1000。
输出:对于每一个样例,你应该输出两行,第一行是"Case #:",#表示第几个样例,第二行是一个等式"A+B=Sum",Sum表示A+B的结果。注意等式中有空格。可以解释一下这个代码怎样运行的吗?<div class="blockcode"><blockquote>
#include "stdio.h"
#include "string.h"
int main()
{
int i,t,j=1,n,len,k;
char sum,sa,sb;
scanf("%d",&t);
getchar();
while(t--)
{
for(i=0;i<1009;i++)
sum='0';
scanf("%s%s",sa,sb);
len=strlen(sa);
for(i=len-1,k=0;i>=0;i--,k++)
{
sum=sum-'0'+sa;
n=k;
while(sum>'9')
{
sum=sum+(sum-'0')/10;
sum=(sum-'0')%10+'0';
n++;
}
}
len=strlen(sb);
for(i=len-1,k=0;i>=0;k++,i--)
{
sum=sum-'0'+sb;
n=k;
while(sum>'9')
{
sum=sum+(sum-'0')/10;
sum=(sum-'0')%10+'0';
n++;
}
}
printf("Case %d:\n%s + %s = ",j,sa,sb);
j++;
for(i=1008;sum=='0';i--);
for(;i>=0;i--)
printf("%c",sum);
//printf("\n");
if(t>0)
printf("\n");
}
return 0;
}
||=== 构建: Debug 在 4 中 (编译器: GNU GCC Compiler) ===|
G:\C++代码\4\main.cpp||In function 'int main()':|
G:\C++代码\4\main.cpp|12|warning: unknown conversion type character 'l' in format [-Wformat=]|
G:\C++代码\4\main.cpp|12|warning: unknown conversion type character 'l' in format [-Wformat=]|
G:\C++代码\4\main.cpp|12|warning: too many arguments for format [-Wformat-extra-args]|
G:\C++代码\4\main.cpp|14|error: incompatible types in assignment of 'long long int' to 'long long int '|
G:\C++代码\4\main.cpp|16|error: incompatible types in assignment of 'long long int' to 'long long int '|
G:\C++代码\4\main.cpp|18|error: incompatible types in assignment of 'long long int' to 'long long int '|
G:\C++代码\4\main.cpp|24|warning: left operand of comma operator has no effect [-Wunused-value]|
G:\C++代码\4\main.cpp|30|warning: unknown conversion type character 'l' in format [-Wformat=]|
G:\C++代码\4\main.cpp|30|warning: unknown conversion type character 'l' in format [-Wformat=]|
G:\C++代码\4\main.cpp|30|warning: unknown conversion type character 'l' in format [-Wformat=]|
G:\C++代码\4\main.cpp|30|warning: too many arguments for format [-Wformat-extra-args]|
||=== 构建 失败: 3 error(s), 8 warning(s) (0 分, 0 秒) ===|
你的代码在
a=A+B;
b=A;
c=B;
出现了问题,a是一个数组,你想将a+b的long long类型的值赋给一个数组??
本帖最后由 NYJYA 于 2019-1-19 22:08 编辑
想都不要想 发表于 2019-1-19 21:37
||=== 构建: Debug 在 4 中 (编译器: GNU GCC Compiler) ===|
G:\C++代码\4\main.cpp||In function 'int m ...
代码是这个,不知道为什么复制到提问那个框都不见了,谢谢你的解答,下面还有没有问题呢?
#include<stdio.h>
int main()
{
int T,i,n;
long longA,B,a,b,c;
scanf("%d",&T);
for(i=0;i<T;i++)
{
scanf("%lld %lld",&A,&B);
a=A+B;
b=A;
c=B;
}
for(i=0,n=1;i<T,n<=T;i++,n++)
{
printf("Case %d:\n",n);
printf(" %lld + %lld = %lld\n",b,c,a);
}
return 0;
} ..1000位,这题明显是要你用字符串模拟加减法。long long也不够长啊 Croper 发表于 2019-1-19 23:09
..1000位,这题明显是要你用字符串模拟加减法。long long也不够长啊
谢谢你啊 Croper 发表于 2019-1-19 23:09
..1000位,这题明显是要你用字符串模拟加减法。long long也不够长啊
想问一下字符串怎样模拟加减法?谢谢 NYJYA 发表于 2019-1-24 12:00
想问一下字符串怎样模拟加减法?谢谢
想想小学数学课是怎么用竖式算加减法的
1、从低位加起,
2、满10就向高一位进1
然后你模拟这个过程就对了
页:
[1]