首页 > 解决方案 > 添加变量 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;
}

标签: cfor-loopif-statement

解决方案


str[0] == 9看起来不对。通常,数字字符的字符代码不等于它们所代表的数字。例如,9 的字符代码是 ASCII 中的 57 (0x39)。

要从固定字符(字符文字)中获取字符代码,请将字符用. 括起来''。条件应该是str[0] == '9'


推荐阅读