char ** summaryRanges(int* nums, int numsSize, int* returnSize){ char** res=malloc(numsSize*sizeof(char*)); *returnSize=0; int p=0,q=0; while(q<numsSize){ while(q+1<numsSize && nums[q]+1==nums[q+1]) ++q; res[*returnSize]=malloc(100*sizeof(char));//數字個數是q-p+1個,可是轉換成字符串可能佔不少位,好比一個數字1000000就佔7個字符位 if(q==p){ sprintf(res[*returnSize],"%d",nums[q]);//sprintf發送格式化輸出到字符串 } else{ sprintf(res[*returnSize],"%d->%d",nums[p],nums[q]); } ++(*returnSize); ++q; p=q; } return res; }