2008年10月1日星期三

C 疑惑……

一下程序实现字符串数字的数学加法:
#include"stdio.h"
void main(){
double m,n,result;
char a[]="1234567335";
char b[]="765432733";
double h,f,j,i=1,o=1,k=sizeof(a)-2,t=sizeof(b)-2;
for(j=k;j>=0;j--,i=i*10){
h=((double)a[j]-48)*i; m=m+h;
}
for(j=t;j>=0;j--,o=o*10){
f=((double)b[j]-48)*o; n=n+f;
}
result=m+n;
printf("%2.0f",result);
}
以下也是为了实现前一个程序的功能,但失败了:
#include"stdio.h"
void main(){
double m,n,result;
double convert(char[]);
char a[]="1234567335";
char b[]="765432733";
m=convert(a);
n=convert(b);
result=m+n;
printf("%2.0f",result);
}
double convert(char x[]){
double h,j,i=1,r=0,k=sizeof(x)-2;
for(j=k;j>=0;j--,i=i*10){
h=((double)x[j]-48)*i; r=r+h;
}
return r;
}
检测思考了很久,传递数组就是传递引用啊!
就是不知道错在哪里!

没有评论: