Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在c++;_C++ - Fatal编程技术网

C++ 在c++;

C++ 在c++;,c++,C++,抱歉,这里有点像初学者: 我正在进行一项实践计划,根据一天中的小时数和一周中的某一天来确定长途电话的费用……我已经开始执行do-while循环,并尝试使用嵌套分支将工作日和周末分开 然而,当我编译和运行时,无论我是否输入与我试图计算的布尔值对应的字符,都会跳过if和else if嵌套语句。我正在努力理解我在这里遗漏了什么。说明书明确规定,一周中的几天应存储在两个字符变量中:Mo Tu We Th Fr Sa Su do { //have user input day of week of

抱歉,这里有点像初学者:

我正在进行一项实践计划,根据一天中的小时数和一周中的某一天来确定长途电话的费用……我已经开始执行do-while循环,并尝试使用嵌套分支将工作日和周末分开

然而,当我编译和运行时,无论我是否输入与我试图计算的布尔值对应的字符,都会跳过if和else if嵌套语句。我正在努力理解我在这里遗漏了什么。说明书明确规定,一周中的几天应存储在两个字符变量中:Mo Tu We Th Fr Sa Su

do
{
    //have user input day of week of call
    printf("\nOn what day was the call made? (Mo, Tu, We, Th, Fr, Sa, or Su) ");
    scanf("%c%c", &day1, &day2);

    //branch for weekday vs weekend vs invalid input
    if (((day1 == 'M') && (day2 == 'o')) || ((day1 == 'T') && (day2 == 'u')) || ((day1 == 'W') && (day2 == 'e')) || ((day1 == 'T') && (day2 == 'h')) || ((day1 == 'F') && (day2 == 'r')))
    {
        //determine if phone call was made at hi or low rate times
        printf("At what time was your call made? (HH MM - with 08 00 representing 8:00 AM and 18 30 representing 6:30 PM) ");
        scanf("%f %f", &call_time_hour, &call_time_minute);
        call_time_hour = call_time_hour + (call_time_minute / 60);

        printf("%f", call_time_hour);
    }
    else if (((day1 == 'S') && (day2 == 'a')) || ((day1 == 'S') && (day2 == 'u')))
    {
        printf("What was the duration of your call? ");
        scanf("%d", &call_duration);

        //calculate total cost of call
        cost_of_call = call_duration * 0.15;

        printf("%s %.2lf", "The cost of this call was $", cost_of_call);
    }
    calls_made--;
    printf("%d", calls_made);
}while (calls_made > 0);

因此,例如,当我编译并运行程序并输入“Sa”作为调用的日期时,它会直接移动到“calls_make--”步骤。

问题在于先前的
scanf
。调试并查看真正扫描的字符。我确信
day1
将是
'\n'

在这种情况下,在扫描星期几之前清除输入流:

while (getchar() != '\n');

问题是因为先前的
scanf
。调试并查看真正扫描的字符。我确信
day1
将是
'\n'

在这种情况下,在扫描星期几之前清除输入流:

while (getchar() != '\n');

这看起来更像C.,这是C?不,这是C++中的C++,你应该使用和。我正在准备一个测试,我们被指示使用CUT/CIN和Prtff/Sncf。这个特殊的实践问题表明,如果可能的话,我们应该使用Prtff/ScNF。在C++程序中,你可以使用<代码> Prtff/SncF任何情况下,也可以使用<代码> CUT/CIN < /代码>。但是在C中,你只能使用<代码> Prtff/ScNF< <代码>。这看起来更像C.,C,不,这是C++中的C++,你应该使用和。我正在准备一个测试,我们被指示使用CUT/CIN和Prtff/Sncf。这个特殊的实践问题表明,如果可能的话,我们应该使用Prtff/ScNF。在C++程序中,你可以使用<代码> Prtff/SncF任何情况下,也可以使用<代码> CUT/CIN < /代码>。但在C语言中,只能使用
printf/scanf