これは簡単な答えかもしれません。私は C でプログラミングを始めて 1 か月しか経っていません。ユーザーにメニュー1-4が表示されるCプログラムを作成しています。メニュー オプション 1 ~ 3 は、ユーザーに整数を要求します。整数が入力されると、プログラムはその量の「ドット」またはピリオドを書き込みまたは「描画」します。最初の各オプションは同じ機能を実行しますが、それぞれ while ループ、do-while ループ、および for ループを使用します。プログラムを終了する唯一の方法は、メイン メニューで 4 を選択することです。
私の質問は、プログラムをループバックさせて適切に動作させ続ける方法です。プログラムを実行すると、最初は正しく動作しますが、プログラムがメインメニューにループバックします。それ以上のオプションは機能しません。IE: 「ドット描画」に整数を再度入力しようとすると、正しく機能しません。
また、文字または「数字以外」のメニューでの入力の検証に問題があります。現時点では、文字を入力するとプログラムが壊れます。
何をすべきか、これでどこに行くべきかわかりません。コードを書き直す必要はありません。おそらく、どこで使用するかについてのいくつかのアイデアです。提供された参照またはリンクを受け入れます。私の不完全なプログラムのコピーが以下に含まれています:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
system("cls");
int programRun=0;
int menuSelection=0;
int absmenuSelection=0;
int dotNumber=0;
int countNumber=0;
char enter;
while(programRun==0)
{
system("cls");
printf("\nplease make a number selection\n");
printf("Please select a choice:\n");
printf("[1] While loop...\n");
printf("[2] Do-While loop...\n");
printf("[3] For loop...\n");
printf("[4] Exit program...\n\n");
scanf("%d%c",&menuSelection,&enter);
absmenuSelection= abs(menuSelection);
if (absmenuSelection <1 || absmenuSelection>4)
{
}
switch (absmenuSelection)
{
case 1:
printf("\nPlease input a number for the amount of dots you wish to see...");
scanf("%d", &dotNumber);
if(dotNumber > 0)
{
while(countNumber<dotNumber)
{
countNumber++;
printf(".");
}
}
else{
printf("\nsorry, that is an invalid response. Now you have to try again.\n");
}
printf("\n");
system("pause");
break;
case 2:
printf("\nPlease input a number for the amount of dots you wish to see...");
scanf("%d", &dotNumber);
if(dotNumber > 0)
{
do
{
countNumber++;
printf(".",countNumber);
}
while( countNumber<dotNumber );
}
else
{
printf("\nsorry, that is an invalid response. Now you have to try again.\n");
}
printf("\n");
system("pause");
break;
case 3:
printf("\nPlease input a number for the amount of dots you wish to see...");
scanf("%d", &dotNumber);
if(dotNumber > 0)
{
for(countNumber=0;countNumber<dotNumber;countNumber++)
{
printf(".",countNumber + 1);
}
}
else
{
printf("\nsorry, that is an invalid response. Now you have to try again.\n");
}
printf("\n");
system("pause");
break;
case 4:
while(programRun>1)
programRun=1;
printf("\nOkay have a nice day");
return 0;
default:
printf("\nsorry that is an invalid statement, try again\n\n");
system("pause");
}}
system ("pause") ;
return 0;
}