一,着力点:负数
思想:模板的套用变化
交换数组的内容;
二,方法:交换的方法
字符型数组的交换——strcmp;
三,布尔判断特大字符串的数
思路:先判断长度然后判断大小
bool compare(char str1[],char str2[])
{
if(strlen(str1)!=strlen(str2))return strlen(str1)>strlen(str2);
for(int i=0;i<strlen(str1);i++)
{
if(str1[i]!=str2[i])return str1[i]>str2[i];
}
return true;
}
四,核心代码
for(int i=1;i<=lenc;i++)
{
if(a[i]-b[i]<0)
{
a[i]+=10;
a[i+1]--;
}
c[i]=a[i]-b[i];
}
五,扫零操作
while(c[lenc]==0&&lc>1)lc--
0000000001;012;00000034;这种数都是不太需要的;
板块二:常见的错误
函数的声明:bool cmp(str1[ ],str2[ ])是不可以的
要说明bool cmp(char str1[],char str2[])
数组的定义
位置:如果有调用的必要比如递归和模拟的话是必须要写到外面的,一方面可以不用写参数;一反面数组干净没有杂质。
转存的错误
char转到int 中的错误
正常的做法
int lena=strlen(str1);
int lenb=strlen(str2);
for(int i=0;i<lena;i++)
a[lena-i]=str1[i]-'0';//
for(int i=0;i<lenb;i++)
b[lenb-i]=str2[i]-'0';
错误的写法 漏掉了-‘0’
int lena=strlen(str1);
int lenb=strlen(str2);
for(int i=0;i<lena;i++)
a[lena-i]=str1[i];//
for(int i=0;i<lenb;i++)
b[lenb-i]=str2[i];
特大奇葩问题——if中有&&‘=’直接给我变成赋值操作了,不报错了!!!!!