我的老师已经分配了一个程序来使用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) 这是我刚刚在其他人的问题中找到的初始化.
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)
或者我完全错了?
以下代码是什么意思?代码来自GCC的回归测试套件.
static char * name[] = {
[0x80000000] = "bar"
};
Run Code Online (Sandbox Code Playgroud) 我在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代码: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:
是什么意思?它是标准的吗?