相关疑难解决方法(0)

使用switch语句进行范围检查

我的老师已经分配了一个程序来使用if-else语句和switch语句,因此我们了解如何实现它们.该程序要求我们提示用户分别以磅和米为单位输入他们的体重和身高.这是我的尝试:

没有开关

#include "stdafx.h"
#include <iostream>

using namespace std;


int main()
{
    double height, weight, BMI, heightMeters, weightKilo;
    const double KILOGRAMS_PER_POUND = 0.45359237;
    const double METERS_PER_INCH = 0.0245;

    cout << "Please enter your height (inches) and weight (pounds)" << endl;
    cin >> height >> weight;

    weightKilo = weight*KILOGRAMS_PER_POUND;
    heightMeters = height*METERS_PER_INCH;
    BMI = weightKilo / (heightMeters*heightMeters);

    if (BMI < 18.5) {
        cout << "You are underweight " << endl;
    }
    else if (BMI >= 18.5 && …
Run Code Online (Sandbox Code Playgroud)

c++ switch-statement

42
推荐指数
4
解决办法
5707
查看次数

初始化结构数组

这是我刚刚在其他人的问题中找到的初始化.

my_data data[]={
    { .name = "Peter" },
    { .name = "James" },
    { .name = "John" },
    { .name = "Mike" }
};
Run Code Online (Sandbox Code Playgroud)

我之前从未见过这样的东西,也找不到解释.name可能是正确的.
我正在寻找的是这个过程如何逐步进行.

它看起来像是:

1) data;
2) *data;
3) (*data).name;
4) (*data).name="Peter";
Run Code Online (Sandbox Code Playgroud)

或者我完全错了?

c arrays struct initialization

23
推荐指数
3
解决办法
13万
查看次数

奇怪的数组初始化表达式?

以下代码是什么意思?代码来自GCC的回归测试套件.

static char * name[] = {
   [0x80000000]  = "bar"
};
Run Code Online (Sandbox Code Playgroud)

c arrays compiler-construction gcc

20
推荐指数
3
解决办法
2818
查看次数

案例中是否有三点(案例'0'...'9':)有效的C语言切换语法?

我在DRBD软件的开源代码文件中注意到这一点(user/drbdtool_common.c)

const char* shell_escape(const char* s)
{
    /* ugly static buffer. so what. */
    static char buffer[1024];
    char *c = buffer;

    if (s == NULL)
        return s;

    while (*s) {
        if (buffer + sizeof(buffer) < c+2)
            break;

        switch(*s) {
        /* set of 'clean' characters */
        case '%': case '+': case '-': case '.': case '/':
        case '0' ... '9':
        case ':': case '=': case '@':
        case 'A' ... 'Z':
        case '_':
        case 'a' ... 'z':
            break; …
Run Code Online (Sandbox Code Playgroud)

c switch-statement

13
推荐指数
2
解决办法
6037
查看次数

切换案例的这种语法在C中意味着什么?

我看到了一些像这样的c代码:int check = 10:

switch(check) {
            case 1...9: printf("It is 2 to 9");break;
            case 10: printf("It is 10");break;
} 
Run Code Online (Sandbox Code Playgroud)

case 1...9:是什么意思?它是标准的吗?

c switch-statement

6
推荐指数
1
解决办法
646
查看次数