【问题标题】:Can't bring array values to function无法使数组值发挥作用
【发布时间】:2018-02-21 22:01:32
【问题描述】:

我已经提示用户输入 5 个主输入并将它们保存到一个名为数组的数组中。我已经检查了 main 中的数组,它会在输入值时打印出它们。但是,当我将它传递给下面包含的函数时,我得到的输出是数组包含所有 0 值。 我做错了什么?

conversion(float array[], int size)
{
float add = 0.0;
float change, num;

printf("\nThe array is: \n");
for (i=0;i < size;i++)
{
    printf("%.2f\n",&array[i]);
}


/*calculate and store the conversion values in a new array*/
for(i=0; i<s; i++)
{
    num = array[i];
    change = (num*100.50);
    for(j=0; j<1; j++)
    {
        printf("\n %.2f your number is %.2f in float percent\n", &num, &change);
    }
}
}

【问题讨论】:

  • printf("%.2f\n",&amp;cArray[i]); 删除&amp;。有了它,当您想要传递值时,您正在传递变量的地址。
  • 谢谢,这确实让我看到了正确的打印,所以至少现在我知道数组正在被传递。但是,我仍然收到多个“C 中的 0.00 是 F 中的 0.00”,您对此有何建议?
  • 那里也有同样的问题。
  • 非常感谢,已经解决了。抱歉这个看似简单的问题。我只是在使用 Java 后才开始 C 语言,但打印功能有一些问题。我习惯用一些++打印任何东西。而所有这些 %d/%f/%c 和 & 等等仍然令人困惑。

标签: c arrays function


【解决方案1】:
&cArray[i]

你不需要第 i 个元素的地址来打印它,你只需要第 i 个元素

改变

printf("%.2f\n",&cArray[i]);

printf("\n %.2f in Celsius is %.2f in Fahrenheit\n", &temp, &con);

printf("%.2f\n",cArray[i]);

printf("\n %.2f in Celsius is %.2f in Fahrenheit\n", temp, con);

con 相同,printf() 不需要标量变量的地址来打印它。

【讨论】:

    【解决方案2】:

    就像约翰尼莫普说你有一个无关的&amp;

    但根据您正在处理的数组的大小,您可能只想将指针传递给函数。

    【讨论】:

    • 在 C 中,数组总是作为指针传递,它们不会被复制。
    猜你喜欢
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多