#include <stdio.h> void YesNo (char ch); int main(void) { char ch; ch = getchar(); 1 分 return 0; } void YesNo (char ch) { switch(ch){ case 'y': case 'Y': 1 分 default: 1 分 } }
时间: 2023-11-22 15:55:16 浏览: 175
这段代码有几个问题:
1. 函数YesNo没有被调用,所以它的代码不会被执行。
2. 函数YesNo中的switch语句没有case语句的代码,所以即使被调用了也不会有任何输出。
3. 函数YesNo中的default语句也没有任何输出,所以即使输入的字符不是'y'或'Y',也没有任何输出。
如果想要实现一个简单的Yes/No判断函数,可以尝试以下代码:
```
#include <stdbool.h>
#include <ctype.h>
bool isYes(char ch)
{
return tolower(ch) == 'y';
}
int main(void)
{
char ch = getchar();
if (isYes(ch)) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
这个代码使用了C标准库中的tolower函数将字符转换为小写字母,然后判断是否等于'y',如果是则返回true,否则返回false。在主函数中,根据isYes函数的返回值输出"Yes"或"No"。
相关问题
输入字符'y'或'Y',则在屏幕上输出字符串"Yes.";输入其它字符,则在屏幕上输出字符串"No."。要求定义和调用函数YesNo(ch),当ch为'y'或'Y'时输出"Yes.",当ch为其它字符时输出"No."。 #include <stdio.h> void YesNo (char ch); int main(void) { char ch; ch = getchar(); return 0; } void YesNo (char ch) { switch(ch){ case 'y': case 'Y': default:
下面是实现题目要求的代码:
```c
#include <stdio.h>
void YesNo(char ch);
int main(void) {
char ch;
ch = getchar();
YesNo(ch);
return 0;
}
void YesNo(char ch) {
if (ch == 'y' || ch == 'Y') {
printf("Yes.\n");
} else {
printf("No.\n");
}
}
```
其中,`getchar()` 函数用于从控制台读取一个字符,`YesNo()` 函数用于判断输入的字符是否是 'y' 或 'Y',并输出相应的字符串。注意,当 `ch` 不是 'y' 或 'Y' 时,需要输出 "No."。
Nirvana 15:38:49 #include <stdio.h> #include <conio.h> #include <stdbool.h> #define MAX_QUEUE_SIZE 1000 void main() { char queue[MAX_QUEUE_SIZE]; int front=0,rear=0; char ch; ch=getchar(); while(ch!='#') { queue[rear]=ch; rear++; ch=getchar(); } while(front<rear) { printf("%c",queue[front]); front++; } printf("\n"); getch(); } Nirvana 15:39:07 #include <stdio.h>#include <conio.h>#define MAX_STACK_MAX 1000void main(){ char stack[MAX_STACK_MAX]; int top=0,i; char ch;ch=getchar(); while (ch!='!'&&top<MAX_STACK_MAX) { switch(ch) { case'#': if(top>0) top--; break; case'@': top=0; break; default: stack[top]=ch; top++; break; } ch=getchar(); } for(i=0;i<top;i++) printf("%c",stack[i]); printf("\n"); getch();}将这两段代码合为一段代码
以下是将两段代码合并后的代码:
```c
#include <stdio.h>
#include <conio.h>
#include <stdbool.h>
#define MAX_QUEUE_SIZE 1000
#define MAX_STACK_MAX 1000
void main() {
char queue[MAX_QUEUE_SIZE];
int front = 0, rear = 0;
char stack[MAX_STACK_MAX];
int top = 0, i;
char ch;
ch = getchar();
while (ch != '#') {
queue[rear] = ch;
rear++;
ch = getchar();
}
ch = getchar();
while (ch != '!' && top < MAX_STACK_MAX) {
switch(ch) {
case '#':
if (top > 0) {
top--;
}
break;
case '@':
top = 0;
break;
default:
stack[top] = ch;
top++;
break;
}
ch = getchar();
}
printf("Queue output: ");
while (front < rear) {
printf("%c", queue[front]);
front++;
}
printf("\n");
printf("Stack output: ");
for (i = 0; i < top; i++) {
printf("%c", stack[i]);
}
printf("\n");
getch();
}
```
这个合并后的代码可以分别读入字符到队列和栈中,并输出它们的内容。其中,遇到 `#` 时队列弹出元素,遇到 `@` 时栈清空。
阅读全文
相关推荐













