24k、纯帅 2019-11-17 00:48 采纳率: 0%
浏览 532

if判断的条件是真,却不执行if块中的代码什么原因,前面输出的都是0,其他输出的是总字符数,为为什么

#include

void w()
{
char a[3000]; int b[] = { 0,0,0,0,0 };

char c;
int i = 0, j = 0;
while ((c=getchar())!='#')
{
a[i] = c;
i++;
if (a[i] <= 'z' && a[i] >= 'a' || a[i] <= 'Z' && a[i] >= 'A'){
if (a[i - 1] != 0) j++;
}
else if (a[i] == 32) b[1]++;
else if (a[i] >= 48 && a[i] <= 57) b[2]++;
else if (a[i] == '\n') b[3]++;
else b[4]++;
}
printf("zhimu shuzhi duanluo qitafuhao\n");
printf("\n");
for (i = 0; i < 5; i++)
{
printf("%-6d", b[i]);
}
}

int main()
{
w();


  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-17 09:37
    关注

    问题解决后请采纳。

    // Q950851.cpp : Defines the entry point for the console application.
    //
    
    #include <stdio.h>
    
    void w()
    {
    char a[3000]; int b[] = { 0,0,0,0,0 };
    
    char c;
    int i = 0, j = 0;
    while ((c=getchar())!='#')
    {
    a[i] = c;
    
    if (a[i] <= 'z' && a[i] >= 'a' || a[i] <= 'Z' && a[i] >= 'A'){
    //if (a[i - 1] != 0) j++;
        b[0]++;
    }
    else if (a[i] == 32) b[1]++;
    else if (a[i] >= 48 && a[i] <= 57) b[2]++;
    else if (a[i] == '\n') b[3]++;
    else b[4]++;
    i++;
    }
    printf("zhimu shuzhi duanluo qitafuhao\n");
    printf("\n");
    for (i = 0; i < 5; i++)
    {
    printf("%-6d", b[i]);
    }
    }
    int main()
    {
    w();
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 ADS时域 连续相位观察方法
  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题