我正在創建一個代碼來比較今天的日期和結構中的日期數組。每次我嘗試打印日期時,我都會返回地址,而不是實際值本身。C程序保持列表地址,而不是沒有指針的值
#include <stdio.h>
struct date {
int month[2];
int day[2];
int year[4];
};
int cmpDate(struct date date1, struct date date2)
{
if (date1.year > date2.year)
return 1;
if (date1.year < date2.year)
return -1;
if (date1.year == date2.year)
{
if (date1.month > date2.month)
return 1;
if (date1.month < date2.month)
return -1;
if (date1.month == date2.month)
{
if (date1.day > date2.day)
return 1;
if (date1.day < date2.day)
return -1;
if (date1.day == date2.day)
return 0;
}
}
};
struct date list[10] = { { 12, 3, 2016 },
{ 12 , 8 ,2012 },
{ 9, 3, 2016 },
{ 11, 7, 2012 },
{ 11, 7, 2020 },
{ 11, 7, 2016 },
{ 8, 1, 2017 },
{ 12, 29, 2017 },
{ 10, 1, 2018 } };
int main(void)
{
struct date today;
int i;
int j = 0;
printf("Enter todays date in the following format: MM DD YYYY:\n");
scanf_s("%d %d %d", today.month, today.day, today.year);
printf("\n");
for (i = 0; i < 10; i++)
{
printf("%d %d %d\n", list[i].month, list[i].day, list[i].year);
printf("%d %d %d\n", today.month, today.day, today.year);
printf("%d\n", j);
}
}
代碼編譯罰款,但這裏是我所得到的,當我調試:
Enter todays date in the following format: MM DD YYYY:
04 25 2017
14979072 14979080 14979088
9435988 9435996 9436004
0
14979104 14979112 14979120
9435988 9435996 9436004
0
14979136 14979144 14979152
9435988 9435996 9436004
0
14979168 14979176 14979184
9435988 9435996 9436004
0
14979200 14979208 14979216
9435988 9435996 9436004
0
14979232 14979240 14979248
9435988 9435996 9436004
0
14979264 14979272 14979280
9435988 9435996 9436004
0
14979296 14979304 14979312
9435988 9435996 9436004
0
14979328 14979336 14979344
9435988 9435996 9436004
0
14979360 14979368 14979376
9435988 9435996 9436004
0
Press any key to continue . . .
J是隻爲我要去哪裏調用函數cmpDate佔位符,所以它不是現在非常重要。任何人都可以幫我打印價值,而不是地址?
謝謝。
'int month [2]; int day [2]; int year [4];' - >'int month; int day; int year;''和'scanf_s(「%d%d%d」,today.month,today.day,today.year);' - >'scanf_s(「%d%d%d」,&today.month ,&today.day,&today.year);' – BLUEPIXY
如果你的編譯器沒有警告你參數與'printf'的格式字符串不匹配,你需要調整你的編譯器警告或者得到一個不同的工具鏈,即使如此,仍然搞砸了。 [見這裏的示例警告/錯誤](https://pastebin.com/5G8iNQus)。 – WhozCraig