0

在我正在编写的程序中,我声明了这个变量:

 #define SIZE 5

 long  int clockNum [SIZE] = {98401, 526488, 765349, 34645, 127615};

如果我想打印它以便输出为:

098401
526488
765349
034645
127615

我该怎么做?我尝试了下面的语句,但它似乎不起作用..

    for(i = 0; i < SIZE; i++)
    {

    printf ("%li\n",&clockNum[i]);
    }

    return(0);

我得到的输出如下:

-1076048964
-1076048960
-1076048956
-1076048952
-1076048948
4

3 回答 3

6

&从 printf中删除并让我们看看

for(i = 0; i < SIZE; i++)
{
   printf ("%li\n",clockNum[i]);
}

这里printf &给出变量的地址值

于 2013-02-18T05:54:25.923 回答
3

从行中删除&符号,printf ("%li\n",&clockNum[i]);因为它给出了给定值的地址或变量而不是实际值。

于 2013-02-18T05:56:27.327 回答
2

将您的呼叫更改printf为:printf ("%li\n",clockNum[i]);.

就像现在一样,您正在尝试打印地址而不是数字的值(但由于您传递的类型与您在格式字符串中指定的类型不匹配,结果是未定义的行为)。

如果您确实需要打印前导零以便所有值都显示为 6 位数字,您还需要将格式字符串更改为%6.6li.

于 2013-02-18T05:54:33.613 回答