【问题标题】:Using the same function multiple times even though the vectors are different即使向量不同,也多次使用相同的函数
【发布时间】:2020-05-08 01:56:26
【问题描述】:

在下面的代码中,我保存并打印了两个向量。这意味着我已经创建了每个函数——scanf()printf()——两次,尽管它们除了它们操作的向量名称之外是相同的。我怎么可能只有一个 scanf()printf() 函数,并且仍然可以保存和打印任意数量的向量? 注意在这种情况下,我只使用静态向量。

#include <stdio.h>

int scanning_first_vector(int *vector1);
int printing_first_vector(int *vector1);

int scanning_first_vector(int *vector2);
int printing_first_vector(int *vector2);


int main()
{

    int vector1[5], vector2[5];

    printf("Please enter the first vector.\n");

    scanning_first_vector(vector1);
    printing_first_vector(vector1);

    printf("\nPlease enter the second vector.\n");

    scanning_first_vector(vector2);
    printing_first_vector(vector2);

    return 0;
}

int scanning_first_vector(int *vector1)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        scanf("%d", &vector1[i]);
    }
    return 0;   
}

int printing_first_vector(int *vector1)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        printf(" %d ", vector1[i]);
    }
    return 0;
}

int scanning_second_vector(int *vector2)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        scanf("%d", &vector2[i]);
    }
    return 0;
}

int printing_second_vector(int *vector2)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        printf(" %d \n", vector2[i]);
    }
    return 0;
}

【问题讨论】:

  • 提示:您已经成功地为两者使用了一个功能。
  • 你从不打电话给XXX_second_vector(),也不需要他们。
  • 只需将XXX_first_vector() 重命名为XXX_vector(),因为它适用于任何向量。

标签: c vector


【解决方案1】:

在阅读 cmets 后,我想我只是在精简版本的代码之下做了 - 谢谢你们,伙计们! :-) 我现在明白我可以使用相同的函数并且我只需要确保我为 main() 函数中的向量赋予独特的名称。它工作得很好,但如果能确认这里的代码完成方式尽可能精简和好,那也很棒:-) 谢谢!

#include <stdio.h>

int scanning_vector(int *vector);
int printing_vector(int *vector);

int main()
{

    int vector1[5], vector2[5];

    printf("Please enter the first vector:\n");

    scanning_vector(vector1);
    printing_vector(vector1);

    printf("\nPlease enter the second vector:\n");

    scanning_vector(vector2);
    printing_vector(vector2);

    return 0;
}

int scanning_vector(int *vector)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        scanf("%d", &vector[i]);
    }
    return 0;   
}

int printing_vector(int *vector)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        printf(" %d ", vector[i]);
    }
    return 0;
}

【讨论】:

    猜你喜欢
    • 2017-01-31
    • 2018-12-13
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多