c - 添加变量 If in for
问题描述
我想显示hm
大于 0 的变量,但它总是显示 0。我该如何解决这个问题?
#include <stdio.h>
#include <stdlib.h>
int main(void) {
long long result = 1;
int n;
int i;
char str[13500];
int hm=0;
scanf("%d", &n);
for(i=0;i<n;i++) {
result *= 9;
sprintf(str, "%lld", result);
printf("%c ",str[0]);
if (str[0] == 9) {
hm=hm+1;
}
}
printf("%d", hm);
return 0;
}
解决方案
str[0] == 9
看起来不对。通常,数字字符的字符代码不等于它们所代表的数字。例如,9 的字符代码是 ASCII 中的 57 (0x39)。
要从固定字符(字符文字)中获取字符代码,请将字符用. 括起来''
。条件应该是str[0] == '9'
。
推荐阅读
- android - 如何使recyclerview中的fastscrollbar永久可见?
- url - 有没有办法在通过 URL 访问报告时以横向生成 PDF?
- api - 我可以使用 Wagtails API 从单个 API 端点为多个站点提供支持吗?
- r - 如何根据多个标准将数据框分组
- java - 无法使用 ButterKnife 在开关盒中绑定可绘制对象
- kubernetes - 如何处理 Kubernetes 中持久/状态相关的 pod 启动失败?
- c++ - 为什么 O(2^n) 与 O(2^(n/2)) 不同?
- configuration - 使用 HashiCorp Vault KV v2 进行 confd 配置
- jira - 将任务分配给 Jira 中的两个或更多人
- python - 用户输入从高到低排序并删除重复输入