******************************************************************************************************************************
正确的带解释的代码
#include<stdio.h>
#include<string.h>
char a[1000],b[1000];//a存第一个数 b存第二个数
int daozhi(char str[],int d)
{
char i,temp;
for(i=0;i<d/2;i++)
{
temp=str[i];
str[i]=str[d-1-i];
str[d-i-1]=temp;
}
return 0;
}
int main()
{
int i,j,d_a,d_b,ge,shi,ji,flag=0;
int result[1000];// result存最后相乘结果
char *p;
for(i=0;i<1000;i++) result[i]=0; //初始化数组
p=a;
printf("请输入第一个数:\n");
scanf("%s",p);
p=b;
printf("请输入第二个数:\n");
scanf("%s",p);
d_a=strlen(a);
d_b=strlen(b);
daozhi(a,d_a);
daozhi(b,d_b); printf("\n\n\n%s %s\n\n\n\n",a,b);
printf("d_a=%d,d_b=%d\n",d_a,d_b);
for(i=0;i<d_a;i++)
{
for(j=0;j<d_b;j++)
{
printf("a[%d]-48=%d b[%d]-48=%d\n",i,a[i]-48,j,b[j]-48);
ji=(a[i]-48)*(b[j]-48);
printf("ji=%d\n",ji);
result[i+j]=result[i+j]+ji;
//result[i+j+1]=result[i+j+1]+shi;
}
}
// for(i=0;i<5;i++)
// printf("%d",result[i]);
for(i=0;i<1000;i++)
{
if(result[i]>=10)
{
result[i+1]=result[i+1]+result[i]/10;
result[i]=result[i]%10;
}
}
for(i=1000;i>=0;i--)
{
if(result[i]!=0) {flag=i;break;}
}
for(i=flag;i>=0;i--)//这里要倒着输出 现在先不管 等下别忘了啊
printf("%d",result[i]);
}
*****************************************************************************************************
正确的干净 无多余输出版 多次循环 就不写了 外面加个大循环就OK了
#include<stdio.h>
#include<string.h>
char a[1000],b[1000];
int daozhi(char str[],int d)
{
char i,temp;
for(i=0;i<d/2;i++)
{
temp=str[i];
str[i]=str[d-1-i];
str[d-i-1]=temp;
}
return 0;
}
int main()
{
int i,j,d_a,d_b,ge,shi,ji,flag=0;
int result[1000];
char *p;
for(i=0;i<1000;i++) result[i]=0;
p=a;
printf("请输入第一个数:\n");
scanf("%s",p);
p=b;
printf("请输入第二个数:\n");
scanf("%s",p);
d_a=strlen(a);
d_b=strlen(b);
daozhi(a,d_a);
daozhi(b,d_b);
for(i=0;i<d_a;i++)
{
for(j=0;j<d_b;j++)
{
ji=(a[i]-48)*(b[j]-48);
result[i+j]=result[i+j]+ji;
}
}
for(i=0;i<1000;i++)
{
if(result[i]>=10)
{
result[i+1]=result[i+1]+result[i]/10;
result[i]=result[i]%10;
}
}
for(i=1000;i>=0;i--)
{
if(result[i]!=0) {flag=i;break;}
}
for(i=flag;i>=0;i--)
printf("%d",result[i]);
}