做这个题有两个亮点:
1,计算长度的时候采用函数(计算数字位数的函数),可能有些同学想用strlen函数计算字符串长度,但是很麻烦,反正我没有写出来。但是如果自编算位数的函数,只需要每个数的位数和再加上两个运算符的长度即可。
2,运用sscanf函数。这个题的难点就是如果一组数据没有字母该怎么办,我们j可以假设每一组都输入了字母并存储到s[0]中,然后进行判断:如果是s[0]是字母,继续运行;如果不是字母,将之格式化,并且转化为整数型,存储第一个数。
sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。
sscanf和scanf的区别:scanf是以键盘作为输入源,sscanf是以字符串作为输入源。
下面直接上代码:
#include<stdio.h>
int sw(int n)//计算长度的函数。因为最后需要计算出每个算式的长度,我们只需要计算出每一个数的长度再加上两个运算符的长度就行了
{
int i,b;
b=n;//存储原数,便于判断正负
for(i=0;n!=0;i++)
n=n/10;
if(b<=0)//还需要考虑到非正整数的情况
return i+1;
else
return i;
}
int main()
{
int n,i,a,b,w[100000