char *sum;
//
int temp;
int len_num1,len_num2; // 两个长长整型数据的长度
int len_max,len_min;
num1=(char*)malloc(sizeof(char));
num2=(char*)malloc(sizeof(char));
printf(“输入两个长长整型数据:”);
scanf(“%s”,num1);
printf(“输入两个长长整型数据:”);
scanf(“%s”,num2);
len_num1=strlen(num1);
len_num2=strlen(num2);
len_max=(len_num1>=len_num2)? len_num1:len_num2;
len_min=(len_num1<=len_num2)? len_num1:len_num2;
int len_max1=len_max;
sum=(char*)malloc(sizeof(char)*len_max);
memset(sum,0×00,len_max+1);//切忌初始化
for(;len_num1>0&&len_num2>0;len_num1–,len_num2–)
{
sum[len_max--]=((num1[len_num1-1]-’0′)+(num2[len_num2-1]-’0′));
}
if(len_num1>0)
{
}
sum[len_max--]=num1[len_num1 - 1 ]-’0′;
len_num1–;
if(len_num2>0)
{
}
sum[len_max--]=num1[len_num2 - 1]-’0′;
len_num2–;
for(int j=len_max1;j>=0;j–) //实现进位操作
{
//
temp=sum[j]-’0′;
if(sum[j]>=10)
{
sum[j-1]+=sum[j]/10;
sum[j]%=10;
}
}
char *outsum=(char*)malloc(sizeof(char)*len_max1);
j=0;
{
int array[256]={0};
const char *tmp = p_str;
for(int j=0;j
}
5.通过键盘输入 100 以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:”操作数 1 运算符 操作数 2″,”操作数”与”运算符”之间以一
个空格隔开。
补充说明:
1. 操作数为正整数,不需要考虑计算结果溢出的情况。
2. 若输入算式格式错误,输出结果为”0″。
要求实现函数:
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
#include
#include
#include
void arithmetic(const char *input, long len, char *output)
{
char s1[10];
char s2[10];
char s3[10];
int cnt = 0;
int len_input=strlen(input);
for(int i=0;i