C 如何在长度未知的数组中分配间隔输入数

C 如何在长度未知的数组中分配间隔输入数,c,C,目前,我要求用户指定要指定的输入值的数量。 这是它的代码: #include<stdio.h> #include<math.h> #include<string.h> void main() { int i,n; printf("\nHow many record you will enter: "); scanf("%d",&n); float x[n]; printf("\n\nEnter the value

目前,我要求用户指定要指定的输入值的数量。 这是它的代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
void main()
{
    int i,n;
    printf("\nHow many record you will enter: ");
    scanf("%d",&n);
    float x[n];
    printf("\n\nEnter the values of velocity (m/s):");
    for(i=0; i<n; i++)
    {
        scanf("%f",&x[i]);
        printf("\n%f",x[i]);
    }   
}
#包括
#包括
#包括
void main()
{
inti,n;
printf(“\n要输入的记录数:”);
scanf(“%d”和“&n”);
浮动x[n];
printf(“\n\n输入速度值(m/s):”;
对于(i=0;i您可以查看和。将两者结合起来,您可以根据您的目标进行设计。此外,您可能需要了解和使用以及利用动态内存分配


也许可以帮你。

建议:比起
void main()
,你更喜欢
int main(void)
。你为什么要在要打印的文本之前打印换行符?我在初学者中越来越多地看到这一点,这对我来说没有任何意义。主要是因为输出到
stdout
(这就是
printf
写的内容)默认情况下为行缓冲,这意味着输出在换行符上刷新(即实际打印)。因此,如果您在开始处打印两行换行符,则最初只显示第一行。我可以使用字符串执行您想要的操作,但将输入设为int?可能吗?我想,不是…:(至于您的问题,如果您不关心存储值,那么只需在无限循环中读取,直到
scanf
返回
EOF
0
。否则,您可能需要查找有关指针和and函数的教程。或者您只需查找所有其他“相关的”问题。这个问题以前被问过很多次。我试图使用scanf函数来查找输入的结尾,如下所示:#include#include#include void main(){int I,n;float x[10];printf(\n\n输入速度(m/s)的值):”;而(scanf(“%f”,&x[I])==1){scanf(“%f”,&x[i]);i++;n++;}for(i=0;i>n;i++){printf(“\n%f”,x[i]);}while循环没有结束!我已经看到了,但没有理解。我理解了所有解释的步骤,并研究了其中提到的所有函数。但我不确定如何使用它解决我的问题。