Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何正确修改以下内容;开关";语句以获取预期的输出值_C - Fatal编程技术网

C 如何正确修改以下内容;开关";语句以获取预期的输出值

C 如何正确修改以下内容;开关";语句以获取预期的输出值,c,C,/我看到,k的结果通过参数表是4,但程序完成后的最终结果是123。为什么呢/ /谢谢你的回答。 我已经清楚地说明了我以前的困惑。 事实上,这是一个在考试中询问输出的问题。我在考试中错了,因为我认为输出是1,但正确答案是123。 也许是因为这个原因,我们的教学不清晰/ #include <stdio.h> int main() { int k; scanf("%d", &k); switch (k) { case 1: printf(

/我看到,
k
的结果通过参数表是4,但程序完成后的最终结果是123。为什么呢/

/谢谢你的回答。 我已经清楚地说明了我以前的困惑。 事实上,这是一个在考试中询问输出的问题。我在考试中错了,因为我认为输出是1,但正确答案是123。 也许是因为这个原因,我们的教学不清晰/

#include <stdio.h>
int main()
{
    int k;
    scanf("%d", &k);
    switch (k)
    {
    case 1:   printf("%d", k++);
    case 2:   printf("%d", k++);
    case 3:   printf("%d", k++);
        break;
    default:  printf("Full!");
    }
    return 0;
}
#包括
int main()
{
int k;
scanf(“%d”和“&k”);
开关(k)
{
案例1:printf(“%d”,k++);
案例2:printf(“%d”,k++);
案例3:printf(“%d”,k++);
打破
默认值:printf(“Full!”);
}
返回0;
}
代码中没有最终结果:
k
开关之后不使用,因此它在调试器中的值没有意义

您可以修改代码以打印
k
的最终值,并将看到
1
2
3
转换为
4
,所有其他值保持不变

#include <stdio.h>

int main() {
    int k;
    scanf("%d", &k);
    switch (k) {
      case 1:   printf("%d\n", k++);
      case 2:   printf("%d\n", k++);
      case 3:   printf("%d\n", k++);
        break;
      default:  printf("Full!\n");
        break;
    }
    printf("%d\n", k);
    return 0;
}
#包括
int main(){
int k;
scanf(“%d”和“&k”);
开关(k){
案例1:printf(“%d\n”,k++);
案例2:printf(“%d\n”,k++);
案例3:printf(“%d\n”,k++);
打破
默认值:printf(“完整!\n”);
打破
}
printf(“%d\n”,k);
返回0;
}

您的代码中有两个错误:

  • 为什么
    k++
    不是
    k

  • 对于每个
    案例

由于这些错误,如果输入
1
,将得到
123

我猜您只想打印输入,因此更正的代码可能是:

#include <stdio.h>
int main()
{
    int k;
    scanf("%d", &k);
    switch (k)
    {
    case 1:   printf("%d", k);
        break;
    case 2:   printf("%d", k);
        break;
    case 3:   printf("%d", k);
        break;
    default:  printf("Full!");
        break;
    }
    return 0;
}
#包括
int main()
{
int k;
scanf(“%d”和“&k”);
开关(k)
{
案例1:printf(“%d”,k);
打破
案例2:printf(“%d”,k);
打破
案例3:printf(“%d”,k);
打破
默认值:printf(“Full!”);
打破
}
返回0;
}

您没有说明预期输出是什么,也没有说明给定输出的输入。我鼓励您检查scanf(
如果(scanf(..)==1){swich…
)的结果,以确保用户输入有效的输入谢谢您的反馈:)我不想故意中断。