SAiKETSU 发表于 2023-2-14 14:42:40

C S1E13

#include <stdio.h>

int main()
{               
                int i,sum;
                char s;
                printf("请输入句子");
                scanf("%s",&s);
                sum=0;
                for(i=0;s != '\0';i++)
                {
                        sum = sum+(s<='Z'&&s>='A');
                       
                }
                printf("共有%d个大写字母",sum);
}

我这个程序为什么有时候对有时候不对啊

isdkz 发表于 2023-2-14 14:51:12

本帖最后由 isdkz 于 2023-2-14 14:52 编辑

#include <stdio.h>

int main()
{               
                int i,sum;
                char s;                            // 这里不要用变量
                printf("请输入句子");
                scanf("%s",&s);
                sum=0;
                for(i=0;s != '\0';i++)
                {
                        sum = sum+(s<='Z'&&s>='A');
                     
                }
                printf("共有%d个大写字母",sum);
}

myd0313 发表于 2023-2-14 19:15:10

楼上正解(呜呜呜,我来晚了)现在来说一说原因

因为 i 是一个局部变量,所以它的默认值不知道

i 可能是 1,可能是 0,也可能是 114514,凡是 int 范围以内的皆有可能

所以数组能不能定义正确也就只能看运气了

SAiKETSU 发表于 2023-2-15 09:28:20

myd0313 发表于 2023-2-14 19:15
楼上正解(呜呜呜,我来晚了)现在来说一说原因

因为 i 是一个局部变量,所以它的默认值不知道


谢谢大佬
页: [1]
查看完整版本: C S1E13