我用其他函数编写基本结构。但我错了。
printf("\nPlease Enter New Salary: ");
scanf("%lf",A[i].salary);
但是scanf不起作用? 怎么办呢?
答案 0 :(得分:1)
scanf
函数需要一个指向double
的指针作为"%lf"
格式说明符的参数。您改为传递A[i].salary
。
您没有发布A
的定义,如果它是一个数组或指向成员salary
为double
的结构数组的指针,您可以获得正确的行为写作:
if (scanf("%lf", &A[i].salary) == 1) {
/* value was converted properly */
} else {
/* input stream cannot be parsed as a double */
}
您应该将环境配置为在启用了额外警告的情况下进行编译:例如gcc -Wall -Wextra -Werror
或clang -Weverything -Werror
会对此类错误产生诊断并且编译将失败。