gpt4 book ai didi

c - 程序不打印数字

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:29 25 4
gpt4 key购买 nike

我是 C 的初学者,我买了《C 编程语言》这本书,开始阅读并按照书中所说的去做。书中有一个代码,可以打印出一句话的行数、字数和字数。这是本书的代码。

#include <stdio.h>
#define IN 1 /* inside a word */
#define OUT 0 /* outside a word */


/* count lines, words, and characters in input */
main()
{
int c, nl, nw, nc, state;

state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c = '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}

由于某些原因,没有显示应该用 printf 打印出来的值。我真的不知道出了什么问题。如果我将 printf 放在 while 循环中,它只会打印出数字,但这是不对的,因为每次值更改时它都会打印数字。

最佳答案

你在这一行中有错字——c = '\t' 的赋值总是计算为真

if (c == ' ' || c == '\n' || c = '\t')

要修复,请将 = 更改为 ==

if (c == ' ' || c == '\n' || c == '\t')

回答你的问题为什么它不打印任何东西——我认为编译器要么给你一个错误或警告导致程序没有被链接,因此你实际上并没有编译列出的源代码,而是您运行的是您之前编译的任何代码的旧版本。

关于c - 程序不打印数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6669204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com