C 在开关上使用do时出现问题
刚开始使用循环时,我有一个原创的程序,可以从不同的CRN中选择一些课程,然后根据所代表的不同学分收费 现在我对做while循环很陌生,但我想我可以在do while中有一个if-else,然后继续循环。我的目标是让循环在选择的每个选项上退出,除了在分配的类数量之上选择的选项(在本例中,最大类数量为3) 它似乎不想循环,但是,这是一个糟糕的方式做一个做而循环,有没有一个更优雅的方式接近这些C 在开关上使用do时出现问题,c,C,刚开始使用循环时,我有一个原创的程序,可以从不同的CRN中选择一些课程,然后根据所代表的不同学分收费 现在我对做while循环很陌生,但我想我可以在do while中有一个if-else,然后继续循环。我的目标是让循环在选择的每个选项上退出,除了在分配的类数量之上选择的选项(在本例中,最大类数量为3) 它似乎不想循环,但是,这是一个糟糕的方式做一个做而循环,有没有一个更优雅的方式接近这些 do{ printf("Please enter Student ID:\n"); scanf("%i",
do{
printf("Please enter Student ID:\n");
scanf("%i", &studentId);
printf("Enter how may courses-up to 3:\n");
scanf("%f", &amount);
if(amount == 1){
printf("Enter the course number:\n\n");
scanf("%d", &course);
switch(course)
{
case 4587:
credit1 = 4;
break;
case 4599:
credit2 = 3;
break;
case 8997:
credit3 = 1;
break;
case 9696:
credit4 = 3;
break;
default:
printf("Sorry invalid entry!\n\n");
return 0;
}
a = 1;
}
else if(amount == 2){
printf("Enter the 2 course numbers\n");
scanf("%d %d", &course, &course1);
switch(course)
{
case 4587:
credit1 = 4;
break;
case 4599:
credit1 = 3;
break;
case 8997:
credit1 = 1;
break;
case 9696:
credit1 = 3;
break;
default:
printf("Sorry invalid entry!\n\n");
return 0;
}
switch(course1)
{
case 4587:
credit2 = 4;
break;
case 4599:
credit2 = 3;
break;
case 8997:
credit2 = 1;
break;
case 9696:
credit2 = 3;
break;
default:
printf("Sorry invalid entry!\n\n");
return 0;
}
a = 1;
}
else if(amount == 0){
printf("Thank you!\n\n");
a = 1;
}
else if(amount > 3){
printf("Invalid number of courses (up to 3)\n");
a = 0;
}
else{
printf("Sorry, we cant process your request this time-invalid number of courses.\n\n");
printf("\t\t\tTry again. Goodbye!\n");
return 0;
}
}while(a = 0);
更换线路
}while(a = 0);
借
请这样做以允许循环可以执行。表达式(a=0)始终计算为真值,因此循环无法执行替换该行
}while(a = 0);
借
请这样做以允许循环可以执行。表达式(a=0)始终计算为真值,因此循环无法执行
a=0
->a==0
您没有显示变量定义,但是scanf(“%f”,&amount)
需要浮动金额
,这似乎很奇怪。请从else块中删除return 0
语句,以便继续循环。谢谢大家a=0
->a==0
您没有显示变量定义,但是scanf(“%f”、&amount)
需要浮动金额
,这似乎很奇怪。请从else块中删除return 0
语句,以便继续循环。谢谢大家!