回复 10楼 九转星河
都不行的 不管是 i--还是--i 两个序列点中间多次修改都是未定义行为的
https://zh.
#include <stdio.h> #include <malloc.h> #include <string> #include <string.h> int main(int argc, char** argv) { int i,j,k; char cNum1[1024]="1212121287236827364783468678687261382761827"; char cNum2[1024]="29836782638723626389462834762387562378527835274537"; char cResult[1025]={0}; for(i = strlen(cNum1) - 1,j=strlen(cNum2) - 1,k=0; i >=0 || j >= 0; i--,j--,k++) (cResult[k] += (( i>=0 && j>=0 ? cNum1[i]-'0' + cNum2[j]-'0' : (i>=0 ? cNum1[i]-'0' : cNum2[j]-'0')))) >= 10 ? cResult[k]-=10,cResult[k+1]+=1:0; for(i = k - 1; i >= 0; i--) printf("%d ", cResult[i]); printf("\n"); return 0; }