2 fhflover fhflover 于 2015.06.08 16:37 提问

新手对c还有很多不理解,求帮忙解决下问题

问题描述:
编写一个程序,首先提示用户“Hi, I love you!”,然后输入“Do you love me (Y/N)?”。如果用户输入“y”或“Y”,打印“So great! KISS!”,然后退出。如果用户输入“n”或“N”,则继续询问“Do you love me (Y/N)?”。如果用户输入其它,则提示“Sorry, I don't understand.”,然后继续询问“Do you love me (Y/N)?”。

9个回答

caozhy
caozhy   Ds   Rxr 2015.06.08 16:41
 printf("Hi, I love you!\n");
while (true)
{
    printf("Do you love me (Y/N)?\n");
        char c = getchar();
        if (c == 'Y' || c == 'y') break;
}
printf("So great! KISS!\n");
fhflover
fhflover 没有用啊,少了条件,还有c不是y也不是n时这种情况没有解决
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.08 16:50
 printf("Hi, I love you!\n");
while (true)
{
    printf("Do you love me (Y/N)?\n");
        char c = getchar();
        if (c == 'Y' || c == 'y') break;
                if (c != 'N' || c != 'n')
                printf("Sorry, I don't understand.\n");
}
printf("So great! KISS!\n");
caozhy
caozhy 回复fhflover: 之前笔误
2 年多之前 回复
caozhy
caozhy 回复fhflover: if (c != 'N' && c != 'n')
2 年多之前 回复
fhflover
fhflover 我运行了下,可是为什么当c=n或N时怎么会有Sorry ,i.....出现。。
2 年多之前 回复
VisualEleven
VisualEleven   Ds   Rxr 2015.06.09 11:40
 #include "stdafx.h"

#include <stdio.h>

int main()
{
    bool bLoop = true;
    do
    {
        printf("Do you love me (Y/N)?\n");
        char ch = getchar();
        rewind(stdin);
        switch(ch)
        {
        case 'y':
        case 'Y':
            printf("So great! KISS!\n");
            bLoop = false;
            break;
        case 'n':
        case 'N':
            break;

        default:
            printf("Sorry, I don't understand.\n");
            break;
        }
    }while(bLoop);
    return 0;
}
fhflover
fhflover 谢谢,大神
2 年多之前 回复
hugetimor
hugetimor   2015.06.08 16:49

核心部分:
int flag=0;
char c;
printf("Hi, I love you!\n");
while(flag==0){
printf("Do you love me (Y/N)?\n");
scanf(%c,c);
if(c=='Y'){
printf(“So great! KISS!\n”);
flag=1;
}
if(c!='N||c!="Y"'){
printf(“Sorry, I don't understand.\n”);
}
}

fhflover
fhflover 得到的答案和二楼一样啊
2 年多之前 回复
fhflover
fhflover   2015.06.08 18:36

谢谢大家,但是我要的结果是这样的图片说明

caozhy
caozhy   Ds   Rxr 2015.06.08 18:39

char c = getchar();
->
char c1[100];
scanf("%s", c1);
char c = c1[0];

Sucky
Sucky   2015.06.09 17:43

#include
#include

int main(){
short flag = 1;
printf("Hi, I love you!\n");
do{
printf("Do you love me (Y/N)?");
char s[100], *p;
memset(s, 0x0, sizeof(s));
p = s;
scanf("%s", p);
if(1<strlen(p)){
printf("Sorry, I don't understand.\n");
continue;
}
switch(*p){
case 'y':
case 'Y':
printf("So great! KISS!\n");
flag = 0;
break;
case 'n':
case 'N':
break;
default:
printf("Sorry, I don't understand.\n");
break;
}
}while(flag);
return 0;
}

fhflover
fhflover 头文件是什么?
2 年多之前 回复
chaobo_lu
chaobo_lu   2015.06.16 20:30

#include
#include

char str[100];
memset(str, 0, 100);
do{
printf("Do you love me(Y/N)?");
scanf("%s", str);
if(strcmp(str, "N") || strcmp(str, "n"))
{
;
}
else if(strcmp(str, "Y") && strcmp(str, "y"))
{
printf(" I don't understand.\n");
}
else
{
break;
}
memset(str, 0, 100);
}while(1);

printf("\nSo great! Kiss!");


chaobo_lu
chaobo_lu   2015.06.16 20:33

刚贴的代码 循环里的第一个判断有误 重新发下



#include
#include

char str[100];
memset(str, 0, 100);
do{
    printf("Do you love me(Y/N)?");
    scanf("%s", str);
    if(!strcmp(str, "N") || !strcmp(str, "n"))
    {
        ;
    }
    else if(strcmp(str, "Y") && strcmp(str, "y"))
    {
        printf(" I don't understand.\n");
    }
    else
    {
        break;
    }
    memset(str, 0, 100);
}while(1);

printf("\nSo great! Kiss!");



Csdn user default icon
上传中...
上传图片
插入图片