c - 用户输入后继续/退出程序的方法

时间:2017-03-09 19:41:27

标签: c loops user-input exit do-while

对于初学者来说,我是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 */



    }

3 个答案:

答案 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来阅读数据,并在此过程中计算sumavg

答案 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;
}