-1

你好我有这个功能

int printofarray(int *j,double *n)
{
int x,k;
k=*j;
if(n==NULL) {
printf("array was not created\n");
return 1;}

for(x=0;x<k;x++){
printf("%.2lf\n",*(n+x));}

return 0;
}

当我使用它时,输出是这样的

34.77
6114.05
410.70

但我想这样写

  34.77
6114.05
 410.70

想法如何?

4

2 回答 2

2

您将数组动态分配dni为:

dni=(int *) malloc(number*sizeof(int)); 

不为其元素分配任何值,但最后打印元素,这显然会打印垃圾。

于 2012-11-17T16:05:12.377 回答
0

您的打印语句左对齐。如果你想要小数点排列,你必须知道你正在处理的数字大小。最简单的方法是指定位数,如下所示。当然,如果你有 5 个位置而不是 6 个位置,这将中断。

for(x=0;x<k;x++){
printf("%7.2lf\n",*(n+x));}
于 2012-11-18T00:11:50.097 回答