一只程序猫 发表于 2020-3-20 20:33:49

计算输入的值是什么

本帖最后由 一只程序猫 于 2020-3-20 20:36 编辑

也是一个题目:

输入一串字符,当输入“Enter ”键结束。统计其中的字母、数字和其他字符的个数,
                   同时将其中所有的连续数字串转化成整数并进行相加,输出累加的结果。

心态爆炸,做了一遍虽然不对。但是手贱没了!!!!!!
/*
2020年3月20日19:56:17
目的 :做题
题目 : 输入一串字符,当输入“Enter ”键结束。统计其中的字母、数字和其他字符的个数,
                   同时将其中所有的连续数字串转化成整数并进行相加,输出累加的结果。
e            
                   27
                else if(==)//
   
                        break;    27'i'      )?、

变成这个鬼东西!!!!!

我的思路是,每输入一个字符,都进行ASCII码对照。然后回车的ASCII码就退出

一只程序猫 发表于 2020-3-20 20:38:16

心态爆炸!

墨羽岚 发表于 2020-3-20 21:18:32

那个,连续数字串是个啥==
123abd234里的123和234
或者是只有123才行

sunrise085 发表于 2020-3-20 21:24:55

本帖最后由 sunrise085 于 2020-3-20 21:40 编辑

看看程序是否正确。
#include <stdio.h>
int main()
{
        char ch;
        int al=0,num=0,el=0;
        int sum=0,temp=0;
        while((ch=getchar())!='\n'){
                if(ch>='0'&&ch<='9'){
                        num+=1;
                        temp=temp*10+(ch-'0');
                }
                else if ((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
                        al+=1;
                        sum+=temp;
                        temp=0;
                }
                else{
                        el+=1;
                        sum+=temp;
                        temp=0;
                }
        }
        printf("字母字符个数:%d,数字字符个数:%d,数字之和:%d,其他字符个数:%d\n",al,num,sum,el);
        return 0;
}

墨羽岚 发表于 2020-3-20 21:32:40

本帖最后由 墨羽岚 于 2020-3-20 21:34 编辑

sunrise085 发表于 2020-3-20 21:24
看看程序是否正确。

你这个代码好像有点问题==(不过我暂时不知道在哪==)
当我输入qwert114514@qq.com后回车了没有任何反应
是不是因为getchar的原因
然后判断回车那儿是不是少了个!号==

sunrise085 发表于 2020-3-20 21:40:22

墨羽岚 发表于 2020-3-20 21:32
你这个代码好像有点问题==(不过我暂时不知道在哪==)
当我输入后回车了没有任何反应
是不是因为getc ...

哦,不好意思,有一处写错了,while循环的条件while((ch=getchar())!='\n')
把!=写成=了
现在改过来了

bin554385863 发表于 2020-3-20 22:53:13

本帖最后由 bin554385863 于 2020-3-20 23:11 编辑

连续数字串累加懒得写了
你自己看着办吧

#include <stdio.h>
#include <malloc.h>
#include <ctype.h>
#include <string.h>
char *getString(const size_t size)
{
    char *str = (char *)malloc(sizeof(char) * (size + 1));
    size_t i = 0;
    while ((str = getchar()) != '\n')
    {
      if (i == size - 1)
      {
            break;
      }
      i++;
    }
    str = '\n';
    return str;
}
void putDate(const char *str)
{
    size_t i = 0;
    int a = 0, d = 0, o = 0, s = 0;
    if (strlen(str) > 0)
    {
      while (str != '\n')
      {

            if (isalpha(str)) //字母个数
            {
                a++;
            }
            if (isdigit(str)) //数字个数
            {
                d++;
                s += (str - 48); //累加
            }
            if (!isalnum(str)) //其他字符个数
            {
                o++;
            }
            i++;
      }
    }
    printf("字母个数 = %d\n数字个数 = %d\n其他字符个数 = %d\n数字累加和 = %d\n\n", a, d, o, s);
}

int main(int argc, char const *argv[])
{
    printf("请输入字符串\n");
    char *str = getString(100);
    printf("开始统计\n");
    putDate(str);
    free(str);
    return 0;
}

Microsoft Windows [版本 10.0.18363.592]
(c) 2019 Microsoft Corporation。保留所有权利。

D:\My data\Documents\C++> cmd /C "c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.3\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-4d1gtc4a.p3f --stdout=Microsoft-MIEngine-Out-ocig5yyl.ihy --stderr=Microsoft-MIEngine-Error-gh1s0prn.35w --pid=Microsoft-MIEngine-Pid-yhlwsxao.eke --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi "
请输入字符串
123456789/*-+
开始统计
字母个数 = 0
数字个数 = 9
其他字符个数 = 4
数字累加和 = 45


D:\My data\Documents\C++> cmd /C "c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.3\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-kqbev1li.fmr --stdout=Microsoft-MIEngine-Out-zuw3aeqb.dki --stderr=Microsoft-MIEngine-Error-jp0qdqit.xbz --pid=Microsoft-MIEngine-Pid-tmymw4m1.j3v --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi "
请输入字符串
123adsds+-*/456fdasfs=--
开始统计
字母个数 = 11
数字个数 = 6
其他字符个数 = 7
数字累加和 = 21


D:\My data\Documents\C++>

一只程序猫 发表于 2020-3-21 09:23:27

sunrise085 发表于 2020-3-20 21:24
看看程序是否正确。

谢谢

一只程序猫 发表于 2020-3-21 09:24:35

sunrise085 发表于 2020-3-20 21:24
看看程序是否正确。

我写的时候思路也是这样,但是没你的好,也不知道判断回车

一只程序猫 发表于 2020-3-21 09:26:00

bin554385863 发表于 2020-3-20 22:53
连续数字串累加懒得写了
你自己看着办吧



哇,谢谢你
页: [1]
查看完整版本: 计算输入的值是什么