所以,基本上,這只是完整程序的一部分。我在這裏試圖做的(但不是真的成功)是將10個值輸入到我的數組中。所以,當我按下'e'時,我可以輸入數值到我的數組中,直到輸入0爲止。我想要做的就是能夠從我的陣列中離開的位置繼續。這意味着如果我在前三個元素中輸入值,下一次按'e'時,我想從元素4開始繼續,當它達到10個值時,我不能再輸入任何值。我已經嘗試了一些if語句和不同的循環,但似乎無法做到。我仍然很新,所以任何幫助將不勝感激!C編程:如何從某個元素繼續輸入數組
這裏是我的代碼
int main(void)
{
char choice;
printf("Measurement tool 1.2\n");
loadMenu(choice);
return 0;
}
void loadMenu(char theChoice)
{
int values[X]= {0};
float counter = 0.0f;
int i;
do
{
printf("VECRQ? ");
scanf(" %c",&theChoice);
switch(theChoice)
{
case 'v':
printf("[");
for(i=0; i<X; i++)
{
printf("%d ",values[i]);
}
printf("]\n");
break;
case 'e':
scanValue(values);
break;
case 'c':
maxmin(values, counter);
average(values, counter);
normValue(values);
break;
case 'r':
for(i=0; i<X; i++)
{
values[i] = 0;
}
printf("Measurement values cleared!\n");
break;
case 'q':
printf("Exit measurement tool!\n");
break;
default:
printf("Wrong character! Choose between VECRQ.\n");
}
} while(theChoice != 'q');
}
void scanValue(int theValues[])
{
int i; int j=0;
{
for(i=0;i<X;i++)
{
printf("Enter measurement %d (or 0):",i+1);
scanf("%d",&theValues[i]);
j=i;
if(theValues[i]==0)
break;
}
for(j; j<X; j++)
{
printf("Enter measurement %d (or 0):\n",j+1);
scanf(" %d",&theValues[j]);
if(theValues[j]==0)
break;
}
}
如果0是退出元素,只需將數組的所有值設置爲0,然後再次輸入時,只需找到數組的第一個元素的索引等於0即可。或者需要記住一個計數器你停止了之前的入門階段。 – AntonH
如果要繼續操作,即使'e'中的'0'選擇了'q',您也需要將其保存在文件中。 – BLUEPIXY
好奇的代碼沒有'printf(「VECRQ?」);'&'「在VECRQ之間選擇」'然後打開小寫字母。 – chux