gpt4 book ai didi

c - scanf c 编程语言的问题

转载 作者:行者123 更新时间:2023-11-30 19:42:01 25 4
gpt4 key购买 nike

所以我用c语言编写了这个程序,该程序假设使用scanf进行2次输入,如果输入的字符部分是特定字符,则该字符的计数器增加。但是,当我运行它时,程序在我向 scanf 输入两次后终止,并且它直接进入 while 循环之外的 printf 语句,其中 i 值打印为 1,k 值打印为 0。除了 scanf 之外,我不允许使用其他任何东西。有人可以帮忙吗?谢谢

#include <stdio.h>

typedef struct {

double x;
} se_t;

typedef struct {

double x;
} ce_t;

int
main(int agrc, char *agrv[]){
ce_t ce[43];
se_t se[43];
double a=0;
int i=0, k=0;
char check;

while ((scanf("%c %lf",&check,&a)==2)){
if (check=='a'){
ce[i].x=a;
i++;
}
else if (check=='b'){
se[k].x=a;
k++;
}
}
printf("%d\n",i);
printf("%d\n",k);
return 0;
}

最佳答案

while ((scanf(" %c %lf",&check,&a)==2)){
/* ^ add a space */

尝试在 scanf 中的 %c 之前添加一个空格。由于 '\n' 将保留在 stdin 中,然后在下一次迭代中,它可能会导致 scanf 在遇到 '\n 时返回'

关于c - scanf c 编程语言的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33018370/

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