c - 警告 : more '%' conversions than data arguments

标签 c

我是 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/

相关文章:

C - 动态数组

c - C中简单函数的问题

c - 如何防止按钮默认获得焦点

c - 如何将 C 代码转换为汇编的十六进制表示形式?

c - GCC 生成 SSE 指令而不是 AVX

.net - 线程是否可以在临界区中间被抢占?

c - 如何检查值是否与字符串匹配

c - 如何在这段代码中实现定时器中断来计算这个斐波那契函数的秒数?

c - 在集群上调试 MPI 程序时出现问题

c - Ruby的C源码中,Ruby运算符 `=`是在哪里定义的?