对于初学者来说,我是C的新手和一般的编程。我有更多使用PowerShell和bash脚本的经验,所以提前为标题,缩进,语法等错误道歉。无论如何,我正在尝试为一个类完成这个程序,但是我在一个特定的部分遇到了一些麻烦所以我正在寻找一些指导,因为我现在很迷茫。
提供一些背景知识:我应该允许用户输入6到10之间的用户代码。此代码唯一地标识用户,然后将要求用户输入其他几个整数值,这些整数值将被合计并在最后平均。但是,用户必须能够再次启动程序并输入另一个号码(6到10之间);然后,用户必须再次完成上一个过程才能完成该程序。
我的问题是我不能使用if语句,break,continue,exit,abort或goto;我必须使用do while循环来确定用户何时输入输入;并且必须提供用户输入错误输入时的错误消息,提示他们再次输入错误消息。
根据我在下面发布的内容,我无法弄清楚如何让用户选择继续和/或退出而不使用if,break,continue等,同时还提示输入错误消息。我可能会过度思考,但如果有人能提供一些见解,我会非常感激。
#include<stdio.h>
main()
{
int usercode; /* setting variables for user code */
do
{
printf ("Please enter your user code: ");
scanf("%1d", secid); /* user must input 1 digit code */
} while(secid >= 6 || secid <= 10); /* code must be between numbers 6 and 10 */
}
答案 0 :(得分:1)
您没有使用循环登录,您将其用于其他输入
伪代码:
get user id
do {
get a value
} while (value is not pause or quit)
答案 1 :(得分:1)
while
do
末尾的while
就像是重复的if
。我会一次又一次地问If
,直到它是假的。请注意,do
while
的块将至少执行一次,因为循环测试在块的内容之后执行。您需要int secid
而不是int usercode
。在do
while
内,您需要另一个do
while
来阅读数据,并在此过程中计算sum
和avg
。
答案 2 :(得分:0)
您要查找的代码如下所示:
#include<stdio.h>
int main(int argc, char **argv){
int secid = -1;
do {
printf("Please enter your user code: ");
scanf("%1d", &secid);
} while((secid < 6 || secid > 10) && printf("Error\n"));
printf("The user code was %d", secid);
return 0;
}