gpt4 book ai didi

c - 基础 C 编程

转载 作者:行者123 更新时间:2023-11-30 15:35:27 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,给定一定数量的输入,该程序将输出列出的输入的乘积(仅计算 0-9 的输入并忽略其他输入)。

例如:

input:345 would result output: 60, or another example would be, input: 3t4 and output: 12

我已经尝试了很多次,这就是我所坚持的:

#include <stdio.h>


main(){

int c,i;

c = getchar();
i = 1;
while (c!= '\n'){
if (c>=48 && c<=57){
i=c*i;
c=getchar();
}
}
printf("%d",i);
}

我该怎么做?

最佳答案

您的代码中存在几个问题。

  • 每次程序遇到非数字字符后,它都不会从输入中进一步读取。它读取相同的字符。因此 c=getchar() 应该位于 if block 之外
  • 乘法发生在 char 变量 c 上。应将其转换为实际数字,然后相乘。在您的代码中,您将其 ascii 值相乘。因此 (c-48)*i 而不是 c*i

关于c - 基础 C 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22911595/

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