c语言的解题答案!求解决

在一行中输入长度不超过40的字符串。

输出格式:
第一行中输出“zimu=x“

第二行中输出“shuzi=y“

第三行中输出“kongge=z”,

第四行中输出“qita=m” 所有结果均原样输出,没有列宽控制。

输入输出有什么关联?

#include <iostream>
using namespace std;
int main()
{
    char s[41] = {0};
    int a=0,b=0,c=0,d=0;
    gets(s);
    for(int i=0;i<strlen(s);i++)
    {
        if((s[i] >= 'A' && s[i] <='Z' )|| (s[i] >= 'a' && s[i] <='z' ))
            a++;
        else if(s[i] >= '0' && s[i] <= '9')
            b++;
        else if(s[i] == ' ')
            c++;
        else
            d++;
    }
    cout<<"zimu="<<a<<endl;
    cout<<"shuzi="<<b<<endl;
    cout<<"kongge="<<c<<endl;
    cout<<"qita="<<m<<endl;
    return 0;
}

C代码如下

#include <stdio.h>
int main()
{
    char buf[42]={0};
    int zimu=0,shuzi=0,kongge=0,qita=0;
    int i = 0;
    gets(buf);
    while(buf[i]!='\0')
    {
        if( (buf[i]>='A'&&buf[i]<='Z') || (buf[i]>='a'&&buf[i]<='z'))
            zimu++;
        else if(buf[i]>='0'&&buf[i]<='9')
            shuzi++;
        else if(buf[i]==' ')
            kongge++;
        else
            qita++;
        i++;
    }
    printf("zimu=%d\n",zimu);
    printf("shuzi=%d\n",shuzi);
    printf("kongge=%d\n",kongge);
    printf("qita=%d\n",qita);
    return 0;
}

原样输出?这样吗?

#include<stdio.h>

int main()
{
    char s[4][40];
    for (int i = 0; i < 4; i++)
        gets(s[i]);
    for (int i = 0; i < 4; i++)
        printf("%s\n",s[i]);
    return 0;
}

如有帮助,望采纳!谢谢!