เขียนโปรแกรมภาษา C รับค่าตัวเลขชนิด int จากผู้ใช้งานด้วยคำสั่ง scanf แต่รันแล้วขึ้นข้อความว่า warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ แบบนี้ต้องแก้ไขอย่างไร
#include <stdio.h>
int main()
{
int i = 0;
printf("Please input : ");
scanf("%d", i);
return 0;
}
วิธีแก้ไข
ปัญหานี้เกิดจากตัวแปร i ตรงคำสั่ง scanf นั้นต้องใส่ & ไว้หน้าตัวแปรเสมอ เป็น scanf("%d", &i) ซึ่งรวมไปถึงการรับค่าตัวแปรชนิดอื่นๆ ของภาษา C ด้วยคำสั่ง scanf ด้วย สามารถแก้ไขโค้ดได้ดังนี้
#include <stdio.h>
int main()
{
int i = 0;
printf("Please input : ");
scanf("%d", &i);
return 0;
}