gpt4 book ai didi

c - 菜单驱动程序以无限循环结束

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:20 31 4
gpt4 key购买 nike

<分区>

我一直在努力寻找一种方法来增强我的简单菜单驱动的 C 代码中的错误检查,如下所示。该代码在输入正确的情况下运行良好,但不幸的是,当给出不正确的参数时,它会进入无限循环。有人可以帮我处理这个案子吗?

这是我的代码:

#include<stdio.h>

int main()
{
int choice, num, i;
unsigned long int fact;
system("clear");
do
{
printf("1.Factorial\n");
printf("2.Prime\n");
printf("3.Odd/Even\n");
printf("4.Exit\n");
printf("\nYour choice?");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("\nEnter number:");
scanf("%d",&num);
fact = 1;
for(i=l;i<=num;i++)
fact=fact*i;
printf("\n Factorial value=%lu\n",fact);
break;
case 2:
printf("\n Enter number:");
scanf("%d",&num);
for(i=2;i<num;i++)
{
if(num%i== 0)
{
printf("\n Not a prime number.\n");
break;
}
}
if(i==num)
printf("\n Prime number.\n");
break;
case 3:
printf("\nEnter number:");
scanf("%d",&num);
if(num %2==0)
printf("\n Even number.\n");
else
printf("\nOdd number.\n");
break;
case 4:
break;
default:
printf("\nInvalid Argument.\n");
}
}while(choice != 4);
return 0;
}

该代码适用于输入 1,2,3,4 和任何其他整数,但是当我输入字符或字符串时,代码进入无限循环。为什么?如何处理这种情况?

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com