【C语言】(错题整理) 寻找完数、字符串中各类字符数的统计、最大公约数和最小公倍数、回文数计算 (循环、函数相关内容)

简介: 本篇博客旨在整理最近在头歌遇到的难题、错题,对其进行分析并整理。一、循环1.寻找完数(计算因子例题) 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出1000之内的所有完数。 这道题的首要任务就是找到各个数的因子,然后再对其进行判断。那么计算这个数的因子,我们可以用循环,试每个小于它的数对其进行求余%,结果为零即是因子。

目录

一、循环

        1.寻找完数(计算因子例题)

       2.字符串中各类字符数的统计

       3.最大公约数和最小公倍数

求最大公约数:

最小公倍数:最小公倍数=两整数的乘积÷最大公约数

二、函数

       1.回文数计算


本篇博客旨在整理最近在头歌遇到的难题、错题,对其进行分析并整理。


一、循环

1.寻找完数(计算因子例题)

       一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出1000之内的所有完数。


       这道题的首要任务就是找到各个数的因子,然后再对其进行判断。那么计算这个数的因子,我们可以用循环,试每个小于它的数对其进行求余%,结果为零即是因子。

#include<stdio.h>intmain(void)
    {  
intnum,i,j,sum;
scanf("%d",&num);
for(i=2;i<num;i++)
      {
sum=1;
for(j=2;j<=i/2;j++)
          {
if(i%j==0)
sum+=j;
          }
if(i==sum)
          {
printf("%d\n",i);
          }
      }
return0;
    }

2.字符串中各类字符数的统计

       输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

       这道题主要就是用到了ASCII码相关知识,要具备的知识就是知道字母的大小排序。

#include<stdio.h>intmain(void)
    {  
inta=0,b=0,c=0,d=0;
charx;
while((x=getchar())!='\n')
      {
if((x>='A'&&x<='Z')||(x>='a'&&x<='z'))
a++;
elseif(x>='0'&&x<='9')
b++;
elseif(x==' ')
c++;
elsed++;
      }
printf("%d %d %d %d",a,b,c,d);
return0;
    }

3.最大公约数和最小公倍数

       输入两个正整数m和n,求其最大公约数和最小公倍数。


求最大公约数:

       (1)辗转相除法

设有两整数a和b:

① a%b得余数c

② 若c==0,则b即为两数的最大公约数

③ 若c!=0,则a=b,b=c,再回去执行①。


例如求27和15的最大公约数过程为:

27÷15 余12

15÷12 余3

12÷3 余0

因此,3即为最大公约数。


       (2)相减法

设有两整数a和b:

① 若a>b,则a=a-b

② 若a<b,则b=b-a

③ 若a==b,则a(或b)即为两数的最大公约数

④ 若a!=b,则再回去执行①。


例如求27和15的最大公约数过程为:

27-15=12( 15>12 )

15-12=3( 12>3 )

12-3=9( 9>3 )

9-3=6( 6>3 )

6-3=3( 3==3 )

因此,3即为最大公约数。


最小公倍数:最小公倍数=两整数的乘积÷最大公约数

#include<stdio.h>intmain(void)
    {  
intm,n,a,b,i,j;
scanf("%d %d",&m,&n);
a=m;
b=n;
j=m*n;
while(i!=0)
      {
i=a%b;
a=b;
b=i;
      }
printf("最大公约数是:%d\n最小公倍数是:%d",a,j/a);
return0;
    }

二、函数

       1.回文数计算

       编写函数求区间[200,3000]中所有的回文数,回文数是正读和反读都是一样的数。如525, 1551。


       因为题目已经给出所取数的区间了,所以只需要做一个判断来判断三位数和四位数就行了,所以相对来说比较简单,对三位数我们只需要判断第一位和最后一位就行,第一位用除以100来表达,(因为这个变量为整数,所以除以100所剩的只有第一位数字),然后第三位数字就是求余,%10,剩下的就是第三位。四位数除了第四位,前三位与三位数的第一位类似。

#include<stdio.h>intsolve(inta){
intb,c,d,e,temp;
if(a<1000)
    {
b=a/100;
c=a%10;
if(b==c)
temp=a;
elsetemp=0;
    }
else    {
b=a/1000;
c=(a-b*1000)/100;
d=(a-b*1000-c*100)/10;
e=a%10;
if(b==e&&c==d)
temp=a;
elsetemp=0;
    }
returntemp;
}
intmain(void)
{  
intnum,i,temp;
for(i=200;i<=3000;i++)
    {
temp=solve(i);
if(temp==i)
printf("%d\n",i);
    }
return0;
}


相关文章
|
21天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
40 10
|
21天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
42 9
|
21天前
|
存储 Unix Serverless
【C语言】常用函数汇总表
本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
32 8
|
21天前
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
41 6
|
21天前
|
存储 C语言
【C语言】输入/输出函数详解
在C语言中,输入/输出操作是通过标准库函数来实现的。这些函数分为两类:标准输入输出函数和文件输入输出函数。
121 6
|
21天前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
49 6
|
22天前
|
存储 算法 安全
C 语言中的位运算:挖掘底层计算的高效力量
位运算是C语言中直接操作二进制位的一种技术,能高效处理底层数据,广泛应用于优化算法、硬件编程等领域,是掌握C语言高级特性的关键之一。
|
21天前
|
C语言 开发者
【C语言】断言函数 -《深入解析C语言调试利器 !》
断言(assert)是一种调试工具,用于在程序运行时检查某些条件是否成立。如果条件不成立,断言会触发错误,并通常会终止程序的执行。断言有助于在开发和测试阶段捕捉逻辑错误。
29 5
|
24天前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
68 4
|
1月前
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
53 4