我是 C 的新手,我正在尝试编写一个程序作为一项作业。用户应输入 7 个 float ,然后将其存储在一个数组中。
#include <stdio.h>
#include <string.h>
int main() {
float data[32];
printf("Instert 7 values, separated by spaces: ");
scanf("%f %f %f %f %f %f %f", data);
return 0;
}
我不断收到错误
warning: more '%' conversions than data arguments [-Wformat]
scanf("%f %f %f %f %f %f %f", data);
我试图在网上寻找解决方案,但我无法弄清楚,我做错了什么?
最佳答案
这个
scanf("%f %f %f %f %f %f %f", data);
应该是这样的
scanf("%f %f %f %f %f %f %f", &data[0], &data[1], &data[2], &data[3], &data[4], &data[5], &data[6]);
对于初始字符串上的每个 %-something,scanf 函数需要一个指向变量的指针,您将在其中存储输入值。
你也可以这样写:
scanf("%f %f %f %f %f %f %f", data, data+1, data+2, data+3, data+4, data+5, data+6);
您的数组的基本内存地址/指针是数据。当您将它与 i 相加时,其中 i 是一个正整数,您将获得指向数组中第 ith</em> 位置的指针。
关于c - 警告 : more '%' conversions than data arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199773/