C语言中的嵌套if语句
我的代码只需要执行3x2表中的一个case路径,即:;男性140至160厘米:短,161至180厘米:中等;181至199厘米:高,女性120至140厘米:短,141至165厘米:中等,166至180厘米:高 例如,如果我输入153厘米女性,输出只需要中等。但现在我的代码给出了输出,如果我在最后输入153厘米的女性,中等和高 到目前为止,我如何编辑这段代码,使其只针对两种组合(年龄和长度)的一种情况执行,以及针对长度的三个选项中的一个;例如,如果我输入153厘米的女性,它将需要说只有中等C语言中的嵌套if语句,c,if-statement,C,If Statement,我的代码只需要执行3x2表中的一个case路径,即:;男性140至160厘米:短,161至180厘米:中等;181至199厘米:高,女性120至140厘米:短,141至165厘米:中等,166至180厘米:高 例如,如果我输入153厘米女性,输出只需要中等。但现在我的代码给出了输出,如果我在最后输入153厘米的女性,中等和高 到目前为止,我如何编辑这段代码,使其只针对两种组合(年龄和长度)的一种情况执行,以及针对长度的三个选项中的一个;例如,如果我输入153厘米的女性,它将需要说只有中等 #in
#include <stdio.h>
int main()
{
int length;
char gender;
printf("enter gender: ");
scanf("%c", &gender);
printf("enter length: ");
scanf("%d", &length);
if (gender == 'M' || 'm') {
if (length <= 140 && length <= 160 ) {
printf ("short");
}
if (length <= 161 && length <= 180 ) {
printf ("medium");
}
if (length <= 181 && length <= 199 ) {
printf ("tall");
}
if (gender == 'W' || gender == 'w') {
if (length <= 120 || length <=140) {
printf("short");
if (length <=141 || length <=165) {
printf ("medium");
if (length <=166 || length <=180) {
printf ("tall");}
else {
printf("error");
}
}
}
}
}
return 0;
}
#包括
int main()
{
整数长度;
性别;
printf(“输入性别:”);
scanf(“%c”和性别);
printf(“输入长度:”);
扫描频率(“%d”和长度);
如果(性别='M'| |'M'){
如果(长度用于以下行,则长度必须大于等于161。
请检查类似的线路
if (length <= 161 && length <= 180 ) {
printf ("medium");
}
if(length您需要在独占范围内比较长度。以下是代码:
#include <stdio.h>
int main()
{
int length;
char gender;
printf("enter gender: ");
scanf("%c", &gender);
printf("enter length: ");
scanf("%d", &length);
if (gender == 'M' || gender == 'm'){
if (length <= 160 )
printf ("short\n");
if (161 <= length && length <= 180)
printf ("medium\n");
if (181 <= length && length <= 199)
printf ("tall\n");
}
if (gender == 'W' || gender == 'w'){
if (length <= 140)
printf ("short\n");
if (141 <= length && length <= 165)
printf ("medium\n");
if (166 <= length && length <= 180)
printf ("tall\n");
if(length>=180)
printf("error \n");
}
else if(gender != 'm'|| gender!='M'|| gender!='w'||gender!='W')
printf("error");
return 0;
}
#包括
int main()
{
整数长度;
性别;
printf(“输入性别:”);
scanf(“%c”和性别);
printf(“输入长度:”);
扫描频率(“%d”和长度);
如果(性别='M'| |性别='M'){
如果你犯了很多错误,没问题。熟能生巧。。。!
将您的代码与我更改的代码进行比较..并意识到错误。代码中的注释给出了解释
#include<stdio.h>
int main()
{
int length;
char gender;
printf("enter gender: ");
scanf("%c", &gender);
printf("enter length: ");
scanf("%d", &length);
if (gender == 'M' ||gender == 'm') { //comparison should be done in both sides of or
if (length >= 140 && length <= 160 ) {
printf ("short");
}
else if (length >= 161 && length <= 180 ) {
printf ("medium");
}
else if (length >= 181 && length <= 199 ) {
printf ("tall");
}
}
else if (gender == 'W' || gender == 'w') {
if (length >= 120 && length <=140) {
printf("short");
}
else if (length >=141 && length <=165) { // & should be used.
printf ("medium");
}
else if (length >=166 && length <=180) {
printf ("tall");}
else { /* if you are using else simply , it corresponds to the last if not all the if's in front so try using if else .*/
printf("error");
}
}
return 0;
}
#包括
int main()
{
整数长度;
性别;
printf(“输入性别:”);
scanf(“%c”和性别);
printf(“输入长度:”);
扫描频率(“%d”和长度);
if(gender='M'| | gender='M'){//应在或的两侧进行比较
if(length>=140&&length=161&&length=181&&length=120&&length=141&&length=166&&lengthif(gender='M'|| M')
总是正确的。你的意思是if(gender='M'| gender='M')
和if(gender='W'| gender='W'))
永远不会是真的,因为它在检查性别是否为男性的if
中。而且,你所有的length
条件都是错误的。length=140&&length啊,是的,那一行的打字错误,应该是(gender='M'| gender='M')对于大写/小写。谢谢。现在尝试这种方式。仍然不起作用,我应该如何区分男女方块,我正在使用((甚至在方块内部)if(gender='M'| | gender='M'){/*length checks*/}else if(gender='W'| | gender='W'){/*length checks*/}
男式挡块正常,但女式挡块仍有问题输出为:输入性别:w输入长度:142也可以尝试从Cype库中尝试TopPor(性别)或ToWar(性别)函数:谢谢,我如何添加错误的字符输入,它不是m/m还是W/W?我的意思是用户只能输入M/M或W/W,否则程序会说错误。reedx8@kadir在错误消息中添加一个else条件。可能让用户在所有条件下使用do while循环重复直到用户输入w或m.So,否则{printf(“此处的错误消息”)}