首页 > 其他分享 >PTA- - -个位数统计(C语言)

PTA- - -个位数统计(C语言)

时间:2024-03-15 23:05:29浏览次数:14  
标签:count 数字 int 个位数 PTA C语言 计数 数组 字符串

Hello,好久没更新啦,今天给大家讲解一下PTA平台上面的“个位数统计”这道题吧~

题目是要统计一个数字每个位上数字出现的次数。下面是一个解决方案的思路和相应的 C 语言代码:

思路:

  1. 初始化一个大小为10的数组,用于计数每个数字(0-9)出现的次数。
  2. 读取输入的数字N作为字符串,这样可以处理超长数字并逐个字符检查。
  3. 遍历字符串,将每个字符转换为整数索引,并在计数数组对应索引处递增。
  4. 遍历计数数组,按照题目要求的格式打印出现次数不为0的数字及其计数。
#include <stdio.h>
#include <string.h>

int main() {
    char N[1001]; // 由于数字可能非常大,我们将其作为字符串读入
    int count[10] = {0}; // 初始化计数数组
    scanf("%s", N); // 读入数字字符串

    // 遍历数字字符串
    for (int i = 0; N[i] != '\0'; i++) {
        count[N[i] - '0']++; // 更新计数数组,'0'-'0' = 0, '1'-'0' = 1, ... '9'-'0' = 9
    }

    // 输出每个数字及其出现的次数
    for (int i = 0; i < 10; i++) {
        if (count[i] > 0) { // 只有当某个数字出现次数大于0时才打印
            printf("%d:%d\n", i, count[i]);
        }
    }

    return 0;
}

上面的代码首先读取输入的整数N作为一个字符串。之所以用字符串而不是整数类型,是因为题目提到N可以非常大,超过普通整数类型的存储范围。然后代码中使用count数组对每个出现的数字进行计数。最后,代码遍历count数组并打印出现次数。

您可以使用这个代码,并根据您编程环境的需要进行必要的调整。然后编译并运行以检查它是否符合题目要求。希望能够帮助到小伙伴提供更多的解题思路哦,关注叶秋学长不迷路,学长带你们上高速

标签:count,数字,int,个位数,PTA,C语言,计数,数组,字符串
From: https://blog.csdn.net/m0_63722685/article/details/136660808

相关文章

  • 实验1_C语言输入输出和简单程序应用编程
    task11#include<stdio.h>2#include<stdlib.h>3intmain()4{56printf("o\to\n");7printf("<H>\t<H>\n");8printf("II\tII\n");910system("pa......
  • C语言新手经典基础题——冒泡排序
    冒泡排序:用户输入一组数,编写程序将该组数据进行从小到大的顺序进行排列。举个例子:用户输入;1413918766这一组数据,现在要将这组数据进行从小到大的程序进行排列。我们编写程序的思路如下:现将第一个数和第二个数进行比较,即14和13,13比14小,那么就将13和14进行位置的调换,13......
  • C语言实验1
    #include<stdio.h>#include<stdlib.h>intmain(){printf("0\n");printf("<H>\n");printf("II\n");printf("0\n");printf("<H>\n");printf("II\n......
  • C语言调整奇数偶数顺序
    输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。代码如下#include<stdio.h>voidFunction(int*p,intk){ int*left=p; int*right=p+k-1; while(left<right){ while(le......
  • C语言实验1
    #include<stdio.h>#include<stdlib.h>intmain(){printf("o\n");printf("<H>\n");printf("II\n");printf("o\n");printf("<H>\n");printf("II\......
  • 实验1 C语言输入输出和简单程序编写
    task1_1.c1#include<stdio.h>2intmain()3{4printf("O\n");5printf("<H>\n");6printf("II\n");7printf("O\n");8printf("<H>\n");9prin......
  • Preview pipeline: Display_Out SetupTargetBuffer
    camx/src/core/hal/camxhaldevice.cppCamxResultHALDevice::ProcessCaptureRequest(Camera3CaptureRequest*pRequest){result=GetCHIAppCallbacks()->chi_override_process_request(reinterpret_cast<constcamera3_device*>(&m_c......
  • C语言中抽象函数与具体实现的命名与组织
    C语言中抽象函数与具体实现的命名与组织在C语言的项目开发中,尤其是嵌入式系统和开源软件项目里,合理地命名和组织抽象函数及其具体实现对于提高代码的可读性、可维护性和可扩展性至关重要。以下是关于如何在这些项目中有效地处理抽象和实现的一些建议:抽象函数与具体实现的区分A......
  • pta帅到没朋友(c/c++版)
     c语言中的小小白-CSDN博客c语言中的小小白关注算法,c++,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm=1001.2014.3001.5343给大家分享一句我很喜欢我话:知不足而奋进,望远山而前行!!!铁铁们,成功的路上必......
  • C语言之Linux环境下学习(二)
    C语言目录一、Linux指令补充1.rm:移除文件2.cat:查看文件内容3.cp:复制文件4.mv:剪切4.tar:压缩文件二、Linux指令之通配符1.通配符2.Tab自动补全功能前言针对上一节部分Linux指令操作知识的补充,以及快捷键的使用。一、Linux指令补充1.rm:移除文件  ......