摘要:
我希望能够编写一个可以让我存储10
值的函数。我应该能够使用0
退出循环而不将0
存储到数组中。我应该能够重新输入数组并继续存储,直到我得到10
值。
问题:
我开始写一些简单的东西但是当我存储5
个值时,它会打印出5
值,然后是一些随机数。那是为什么?
如何在没有存储0
的数组的情况下退出循环?
我对这些东西很陌生,所以我希望我在这里正确遵守规则。
代码:
#include <stdio.h>
int main(void)
{
int arrayTable[9] = {0};
int i;
for (i=0; i<10; i++)
{
printf("Enter Measurement #%i (or 0): ", i+1);
scanf("%d", &arrayTable[i]);
if (arrayTable[i] == 0)
{
break;
}
}
for (int i=0; i<10; i++)
{
printf("%d\n", arrayTable[i]);
}
return 0;
}
答案 0 :(得分:1)
k
答案 1 :(得分:0)
你可能想要这个:
...
int arrayTable[10] = {0}; // <<< [10] instead of [9]
...
for (i=0; i<10; i++)
{
if (arrayTable[i] == 0) // <<< add this
break; // <<<
printf("%d\n", arrayTable[i]);
}
...
答案 2 :(得分:0)
只要您想从数组中丢弃0然后使用临时变量,输入它,检查它是否为非零,如果是,则将其存储到数组元素中,如果它是零退出循环:< / p>
#include <stdio.h>
int main(void)
{
int arrayTable[10] = {0};
int iValue = 0;
int i = 0;
while(i < 10)
{
printf("Enter Measurement #%i (or 0): ", i+1);
scanf("%d", &iValue); // input iValue
if (!iValue) // if iValue is zero then exit loop without affecting array with this value
break;
else
{
arrayTable[i] = iValue; // if the value is non-zero store it in array and continue
i++;
}
}
for (int i = 0; i < 10; i++)
{
printf("%d\n", arrayTable[i]);
}
return 0;
}