C 标准输出的内容不正确
给定一个名为yesCount的int变量和另一个名为noCount的int变量以及一个名为response的char变量,编写必要的代码将值读入response,然后执行以下操作:C 标准输出的内容不正确,c,C,给定一个名为yesCount的int变量和另一个名为noCount的int变量以及一个名为response的char变量,编写必要的代码将值读入response,然后执行以下操作: 如果键入的字符是y或y,则递增YES查询并打印出“是已记录” 如果键入的字符是n或n,则递增noCount并打印出“未记录” 如果输入无效,只需打印消息“invalid”,而不执行其他操作 您好,我的C代码有问题。我得到了错误的输出。非常感谢您的帮助。多谢各位 if (response == 'y' || res
- 如果键入的字符是
或y
,则递增y
并打印出YES查询
“是已记录”
- 如果键入的字符是
或n
,则递增n
并打印出noCount
“未记录”
- 如果输入无效,只需打印消息
,而不执行其他操作“invalid”
if (response == 'y' || response == 'Y') {
scanf("%d", &yesCount);
yesCount++;
printf("YES WAS RECORDED");
}
if (response == 'n' || response == 'N') {
scanf("%d", &noCount);
noCount++;
printf("NO WAS RECORDED");
} else {
printf("INVALID");
}
这里可能有一些打字错误,因为我是用智能手机写的。请注意这一点。顺便问一下,我会怎么做:
#include <stdio.h>
int main(void) {
int yescount = 0, nocount = 0;
int c;
while ((c = getchar) != EOF) {
switch (c) {
case 'y':
case 'Y':
puts("Yes registered");
yescount++;
break;
case 'n':
case 'N':
puts("No registered");
nocount++;
break;
default:
puts("Invalid selection.");
break;
}
}
return 0;
}
#包括
内部主(空){
int YESOUNT=0,nocount=0;
INTC;
而((c=getchar)!=EOF){
开关(c){
案例“y”:
案例“Y”:
认沽权(“是注册”);
yescount++;
打破
案例“n”:
案例“N”:
看跌期权(“无注册”);
nocount++;
打破
违约:
放置(“无效选择”);
打破
}
}
返回0;
}
您应该学习如何正确地呈现代码:它有助于提高可读性,并使许多bug更加明显
您的代码存在问题:
- 您无目的地调用
,但未按要求读取响应scanf
- 您在第一个
的正文末尾忘记了if
。结果是,如果响应是else
或y
,则执行最后一个y
分支else
- 您可能应该在每条消息之后打印一个
,使其与后续输出分开显示\n
scanf("%c", &response);
if (response == 'y' || response == 'Y') {
yesCount++;
printf("YES WAS RECORDED\n");
} else
if (response == 'n' || response == 'N') {
noCount++;
printf("NO WAS RECORDED\n");
} else {
printf("INVALID\n");
}
从您的评论中,他们希望您使用
scanf(“%c”、&response)
将字符
读入响应
,这不是从stdin
读入字节的最简单方法您从哪里获取响应
的值?使用开关对您的代码来说非常有效为什么要调用scanf
来查看和无计数
?您如何阅读响应
?CODELAB分析:逻辑错误更多提示:⇒ 您几乎可以肯定应该使用:&⇒ 您几乎可以肯定应该使用:,(逗号)⇒ 您几乎可以肯定应该使用:scanf检测到的问题:⇒ 标准输出的内容不正确。⇒ noCount的值不正确。⇒ 响应的值不正确。⇒ yesCount的值不正确。⇒ 更多信息:查看测试用例表这是我提交问题时得到的结果,我更新了答案。目前还不清楚您应该编写一段代码还是一个可编译函数。如果给出了yesCount和noCount,您应该只按照指示更改它们,但请尝试yesCount=noCount=0
检查他们是否希望您将他们初始化为0
。感谢您的帮助@user44775:请点击答案分数下方的灰色复选标记,将其标记为已接受,好吗?