数组如何在"for"循环中工作(C 语言)



我在c编程中相对较新,一般编程。

1)我正在尝试创建一个名为"输入"的数组,该数组将用于用户输入(该数组仅使用两个整数元素)。

2)我想使用for循环,使其循环循环2次,这样我就可以复制printf语句"输入整数",而无需多次键入printf语句。然后我的scanf占位符将基于我的数组"输入"。

3)然后,我想将这两个数字添加在一起。

问题:当用户输入一个数字时,例如1,然后是1再次,输入[0]的索引为1,然后输入[1]的索引为12 ...

我将使用加法来尝试解释。当我尝试输出其他数字(整数[0]为1时,整数[1]为2,而我的变量将它们添加在一起是"总计"),我得到了: 1 2 = 2。strong>

那么为什么输入[0]正确,但是输入[1]似乎正在将两个用户输入添加在一起并将其存储在其中?

这是我的代码

int main()
{
    int input[1];
    for(int i = 0; i < 2; i++)
    {
        printf("Please enter an integer: ");
        scanf("%d", &input[i]);
    }
    int total = input[0]+input[1];
    printf("%d + %d = %d ", input[0], input[1], total);

}

事先感谢您,希望您能理解我。抱歉,我是一个菜鸟,学习了基础知识,所以我可以先进。

此行

int输入[1];

将仅创建一个大小的数组。我可以看到您也尝试访问数组的第二个元素。

所以只需用

替换您的这条线

int输入[2];

这将解决您的问题。或放整个东西

int main()
{
    int input[2];
    for(int i = 0; i < 2; i++)
    {
        printf("Please enter an integer: ");
        scanf("%d", &input[i]);
    }
    int total = input[0]+input[1];
    printf("%d + %d = %d ", input[0], input[1], total);

}

您应该使用

int input[2];

因为您想要两个整数。否则,它将仅为您分配一个整数数组,在这种情况下访问输入[1]将无法正常工作。

还尝试将其扩展到添加n个整数。

int main()
{
int input[1];
int total = 0;
int n; //To count number of elements to add:
  printf("Please enter the number of elements to add: ");
    scanf("%d", &n);
for(int i = 0; i < n; i++)
{
    printf("Please enter integer %d: ",(i+1));
    scanf("%d", &input[i]);
}
for(int i = 0; i < n; i++)
{
    total = total +input[i];
}
printf("The sum is = ", total);

}

因此,在您使用的循环中所示,在您的数组中,您将通过使用其<<em> input 数组的元素,通过使用其 index 您在每次迭代中也会增加。

在您的情况下,只有两个元素,因此仅需要两个迭代。

使用这样的使用

int main()
{
    int input[2];  //initializes array of size 2,which can contain maximun 3-->(0,1,2)
    for(int i = 0; i < 2; i++)
    {
        printf("Please enter an integer: ");
        scanf("%d", &input[i]);
    }
    int total = input[0]+input[1];
    printf("%d + %d = %d ", input[0], input[1], total);

}

使用i<=2

int main()
{
    int input[1];  //initializes array of size 1 which can contain -->(0,1),or use i<=2
    for(int i = 0; i <= 2; i++)
    {
        printf("Please enter an integer: ");
        scanf("%d", &input[i]);
    }
    int total = input[0]+input[1];
    printf("%d + %d = %d ", input[0], input[1], total);

}

相关内容

  • 没有找到相关文章

最新更新