有道题不会,能不能帮帮我啊? 100
7个回答
2020-06-09
展开全部
我给你说下大概的方法:因为没有能存放这么大的数据类型,我们可以以字符串的形式存放,我们从键盘输入的时候本来就是输入的字符,所以可以以这种形式实现
输入的时候有两种情况:
1、输入两个字符串和一个加/减字符
比如:str1 = “12345“,str2 = "123",str3 = '+'
可以先用strlen确定两个字符串长度,len1和len2
写两个函数,字符相加和字符相减如:char add(char str1,char str2,char *str)
函数最好传指针,形参不能改变实参;最好有返回值,返回值可以返回真和假来确定是否进位
判断len1和len2的大小
判断str是‘+’还是‘-’
循环从字符串高位开始调用函数
例如:if(len1 < len2)
{
if(str3 == '+')
{
for(int i = 0;i < len1;i ++)
{
if(add(str1[len1-1-i], str2[len2-1-i], &str[len2-i]));
str[len2-1-i] += ‘1’;
}
}
}
2、一个字符串输入
比如:”123456+123“
先用sscanf将字符串分割,然后步骤同上
输入的时候有两种情况:
1、输入两个字符串和一个加/减字符
比如:str1 = “12345“,str2 = "123",str3 = '+'
可以先用strlen确定两个字符串长度,len1和len2
写两个函数,字符相加和字符相减如:char add(char str1,char str2,char *str)
函数最好传指针,形参不能改变实参;最好有返回值,返回值可以返回真和假来确定是否进位
判断len1和len2的大小
判断str是‘+’还是‘-’
循环从字符串高位开始调用函数
例如:if(len1 < len2)
{
if(str3 == '+')
{
for(int i = 0;i < len1;i ++)
{
if(add(str1[len1-1-i], str2[len2-1-i], &str[len2-i]));
str[len2-1-i] += ‘1’;
}
}
}
2、一个字符串输入
比如:”123456+123“
先用sscanf将字符串分割,然后步骤同上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议找专业人士解决,我是会,但不确认不保正一定是对的,不一定能帮到楼主。请说的再居体一些。楼主就没有自己的想法嘛?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么题,发出来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询