c - 关于 vector 和函数的练习

标签 c function vector

非常感谢,在你的帮助下我明白了我所有的错误(:

这是我第一次使用这个网站,所以我不确定它的格式是否正确。 基本上我必须制作一个填充 vector 的函数,但它根本不起作用。 英语不是我的第一语言,所以这可能真的很令人困惑,但如果 有人帮助了我。非常感谢。

#include <stdio.h>
#include <stdlib.h>

void le_vet(int v[1000], int n, int i)
{
    for (i = 0; i < n; i++) {
        printf("Type the number %d: ", i+1);
        scanf("%d", &v[i]);
    }
}

int main()
{
    int v[1000], n;
    printf("Type the syze of the vector: ");
    scanf("%d", &n);
    void le_vet(n);
    system ("pause");
    return 0;
}

最佳答案

您没有在 main 函数中调用 le_vet,而是在创建一个名为“le_vet”的函数指针,它接受一个 int(默认情况下,因为没有类型是指定)并返回一个空值。我很确定这不是我们想要的。

相反,将 void le_vet(n) 更改为 le_vet(v, n) 并更改为:

void le_vet(int v[1000], int n, int i)
{
   for (i = 0; i < n; i++) {
   printf("Type the number %d: ", i+1);
   scanf("%d", &v[i]);
   }
}

为此:

void le_vet(int v[], int n)
{
   int i;
   for (i = 0; i < n; i++) {
   printf("Type the number %d: ", i+1);
   scanf("%d", &v[i]);
   }
}

因为您不需要从函数外部传递 i ,所以不需要将它包含在函数的参数中。 for 循环中的第一个元素在进入循环时执行一次,因此它通常用于声明循环的迭代变量,就像我在这里所做的那样。

编辑:糟糕。不能在 C 中这样做。我习惯于 C++,我在这里犯了一个错误。正如@Over Flowz 建议的那样,在循环上方声明 i。更新我修改后的代码,但留下这个记录作为该停止工作去吃晚饭的证据:)

关于c - 关于 vector 和函数的练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14189010/

相关文章:

c++ - 在没有 cin 的情况下从控制台获取输入?

php - 升级流程繁重的 PHP 和 MySQL 应用程序的语言建议

C char 双指针

嵌入函数中的 C++ 函数反向运行?

c++ - 如何找到 2 张 map 中所有常见的键?

c++ - 将变量推回 vector

c - C 中有很多错误, "redefinition"错误等等

python - 检查多个模拟的调用顺序

c++ - 将非指针分配给指针? (在 C++ 中子类化指针类型?)

java - 如何在 java 中有效地处理数百万元组的集合?