我有这个功能
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
想法如何?
答案 0 :(得分:2)
您正在动态地将数组dni
分配为:
dni=(int *) malloc(number*sizeof(int));
没有为其元素分配任何值,但最后会打印元素,这显然会打印垃圾。
答案 1 :(得分:0)
您的打印声明保持对齐状态。如果你想要小数排成一行,你必须知道你正在处理的数字大小。最简单的方法是指定位数,如下所示。当然,如果你有5个地方而不是6个地方,这会破裂。
for(x=0;x<k;x++){
printf("%7.2lf\n",*(n+x));}