C语言程序100题(完整版)_第1页
C语言程序100题(完整版)_第2页
C语言程序100题(完整版)_第3页
C语言程序100题(完整版)_第4页
C语言程序100题(完整版)_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言经典程序100题(完整版)第一部分:基础语法(1-10题)【程序1】HelloWorld(最基础入门程序)题目:编写一个C语言程序,输出"HelloWorld!"。程序分析:C语言最基础的输出程序,主要熟悉printf函数的使用,以及程序的基本结构(包含头文件、main函数)。程序源代码:c

#include<stdio.h>

intmain(){

//输出HelloWorld!

printf("HelloWorld!\n");

return0;

}【程序2】输出单个字符题目:编写程序,使用printf函数输出字符'A',并使用putchar函数输出字符'B'。程序分析:熟悉字符输出的两种方式,printf可输出字符(%c格式符),putchar专门用于输出单个字符。程序源代码:c

#include<stdio.h>

intmain(){

//printf输出字符A

printf("%c\n",'A');

//putchar输出字符B

putchar('B');

putchar('\n');//换行

return0;

}【程序3】输入输出整数题目:从键盘输入一个整数,将其输出到屏幕上,并说明该数是正数、负数还是零。程序分析:熟悉scanf函数用于输入数据,if-else条件判断语句的使用,处理整数的正负判断。程序源代码:c

#include<stdio.h>

intmain(){

intnum;

//提示用户输入

printf("请输入一个整数:");

//输入整数

scanf("%d",&num);

//输出输入的整数

printf("你输入的整数是:%d\n",num);

//判断正负

if(num>0){

printf("该数是正数\n");

}elseif(num<0){

printf("该数是负数\n");

}else{

printf("该数是零\n");

}

return0;

}【程序4】计算两个整数的和题目:从键盘输入两个整数,计算它们的和,并输出结果。程序分析:熟悉变量定义、scanf输入多个数据、算术运算(加法),以及结果输出。程序源代码:c

#include<stdio.h>

intmain(){

inta,b,sum;

printf("请输入两个整数(用空格分隔):");

scanf("%d%d",&a,&b);

sum=a+b;//计算和

printf("%d+%d=%d\n",a,b,sum);

return0;

}【程序5】计算圆的面积和周长题目:从键盘输入圆的半径,计算圆的面积(πr²)和周长(2πr),π取3.14。程序分析:熟悉浮点型变量(float/double)的使用,算术运算(乘法、平方),以及printf输出浮点型数据(%f格式符)。程序源代码:c

#include<stdio.h>

intmain(){

floatr,area,perimeter;

constfloatPI=3.14;//定义常量π

printf("请输入圆的半径:");

scanf("%f",&r);

area=PI*r*r;//计算面积

perimeter=2*PI*r;//计算周长

//输出结果,保留2位小数

printf("圆的面积:%.2f\n",area);

printf("圆的周长:%.2f\n",perimeter);

return0;

}【程序6】求两个整数的最大值题目:输入两个整数,使用if-else语句找出其中的最大值并输出。程序分析:熟练使用if-else条件判断,比较两个数的大小,输出最大值。程序源代码:c

#include<stdio.h>

intmain(){

inta,b,max;

printf("请输入两个整数:");

scanf("%d%d",&a,&b);

if(a>b){

max=a;

}else{

max=b;

}

printf("最大值是:%d\n",max);

return0;

}【程序7】判断一个数是否为偶数题目:输入一个整数,判断该数是否为偶数,若是输出“是偶数”,否则输出“是奇数”。程序分析:熟悉取余运算(%),利用“偶数%2==0”的特性判断奇偶性。程序源代码:c

#include<stdio.h>

intmain(){

intnum;

printf("请输入一个整数:");

scanf("%d",&num);

if(num%2==0){

printf("%d是偶数\n",num);

}else{

printf("%d是奇数\n",num);

}

return0;

}【程序8】将摄氏度转换为华氏度题目:输入摄氏度,根据公式F=C×9/5+32,将其转换为华氏度并输出。程序分析:熟悉浮点型运算,掌握温度转换公式,注意整数除法的问题(需将整数转换为浮点型)。程序源代码:c

#include<stdio.h>

intmain(){

floatc,f;

printf("请输入摄氏度:");

scanf("%f",&c);

f=c*9.0/5+32;//9.0确保浮点运算,避免整数除法

printf("%.2f摄氏度=%.2f华氏度\n",c,f);

return0;

}【程序9】输出1-10的整数题目:使用for循环,输出1到10的所有整数,每个数占一行。程序分析:熟悉for循环的基本结构(初始化、循环条件、循环增量),实现循环输出。程序源代码:c

#include<stdio.h>

intmain(){

inti;

//for循环:初始化i=1,i<=10时循环,每次i+1

for(i=1;i<=10;i++){

printf("%d\n",i);

}

return0;

}【程序10】计算1-10的和题目:使用for循环,计算1到10所有整数的和,并输出结果。程序分析:利用for循环遍历1-10,通过累加变量(sum)计算总和,熟悉循环中的累加操作。程序源代码:c

#include<stdio.h>

intmain(){

inti,sum=0;//sum初始化为0

for(i=1;i<=10;i++){

sum+=i;//等价于sum=sum+i

}

printf("1到10的和是:%d\n",sum);

return0;

}第二部分:数组与字符串(11-25题)【程序11】定义并输出一个整型数组题目:定义一个包含5个整型元素的数组,初始化值为10、20、30、40、50,遍历数组并输出所有元素。程序分析:熟悉数组的定义、初始化方法,使用for循环遍历数组(通过下标访问元素)。程序源代码:c

#include<stdio.h>

intmain(){

//定义并初始化数组

intarr[5]={10,20,30,40,50};

inti;

printf("数组的元素为:");

for(i=0;i<5;i++){

printf("%d",arr[i]);//访问数组第i个元素(下标从0开始)

}

printf("\n");

return0;

}【程序12】从键盘输入数组元素并输出题目:定义一个包含6个整型元素的数组,从键盘输入6个整数存入数组,然后遍历数组输出所有元素。程序分析:熟悉数组的输入操作,通过scanf逐个给数组元素赋值,再通过循环输出。程序源代码:c

#include<stdio.h>

intmain(){

intarr[6];

inti;

//输入数组元素

printf("请输入6个整数(用空格分隔):");

for(i=0;i<6;i++){

scanf("%d",&arr[i]);//注意数组元素的地址写法

}

//输出数组元素

printf("你输入的数组元素为:");

for(i=0;i<6;i++){

printf("%d",arr[i]);

}

printf("\n");

return0;

}【程序13】求数组的最大值和最小值题目:定义一个包含8个整型元素的数组,从键盘输入元素值,找出数组中的最大值和最小值并输出。程序分析:遍历数组,通过变量记录当前最大值和最小值,逐个与数组元素比较,更新最值。程序源代码:c

#include<stdio.h>

intmain(){

intarr[8];

inti,max,min;

printf("请输入8个整数:");

for(i=0;i<8;i++){

scanf("%d",&arr[i]);

}

//初始化max和min为数组第一个元素

max=arr[0];

min=arr[0];

//遍历数组,更新max和min

for(i=1;i<8;i++){

if(arr[i]>max){

max=arr[i];

}

if(arr[i]<min){

min=arr[i];

}

}

printf("数组的最大值:%d\n",max);

printf("数组的最小值:%d\n",min);

return0;

}【程序14】计算数组所有元素的平均值题目:输入一个包含10个浮点型元素的数组,计算所有元素的平均值并输出(保留2位小数)。程序分析:遍历数组累加所有元素,用总和除以元素个数得到平均值,注意浮点型运算。程序源代码:c

#include<stdio.h>

intmain(){

floatarr[10];

floatsum=0.0,avg;

inti;

printf("请输入10个浮点数:");

for(i=0;i<10;i++){

scanf("%f",&arr[i]);

sum+=arr[i];//累加元素

}

avg=sum/10;//计算平均值

printf("数组元素的平均值:%.2f\n",avg);

return0;

}【程序15】数组元素逆序输出题目:定义一个包含7个整型元素的数组,初始化后,将数组元素逆序输出(例如:原数组1,2,3,逆序后3,2,1)。程序分析:两种方法:1.从数组最后一个元素开始,倒序遍历输出;2.交换数组首尾元素,实现逆序后再输出。此处用第一种方法,简单易懂。程序源代码:c

#include<stdio.h>

intmain(){

intarr[7]={1,3,5,7,9,11,13};

inti;

printf("原数组:");

for(i=0;i<7;i++){

printf("%d",arr[i]);

}

printf("\n逆序数组:");

//从最后一个元素(下标6)开始,到第一个元素(下标0)结束

for(i=6;i>=0;i--){

printf("%d",arr[i]);

}

printf("\n");

return0;

}【程序16】冒泡排序(升序)题目:使用冒泡排序算法,将一个包含10个整数的数组按升序排列,并输出排序前后的数组。程序分析:冒泡排序核心逻辑:重复遍历数组,每次比较相邻两个元素,若前一个大于后一个,则交换位置,直到整个数组有序(每一轮排序都会将最大的元素“冒泡”到末尾)。程序源代码:c

#include<stdio.h>

intmain(){

intarr[10]={5,2,8,1,9,3,7,4,6,0};

inti,j,temp;

//输出排序前的数组

printf("排序前:");

for(i=0;i<10;i++){

printf("%d",arr[i]);

}

printf("\n");

//冒泡排序(升序)

for(i=0;i<9;i++){//外层循环:控制排序轮数(n个元素需n-1轮)

for(j=0;j<9-i;j++){//内层循环:每轮比较的次数(每轮减少1次)

if(arr[j]>arr[j+1]){

//交换相邻元素

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

//输出排序后的数组

printf("排序后:");

for(i=0;i<10;i++){

printf("%d",arr[i]);

}

printf("\n");

return0;

}【程序17】选择排序(降序)题目:使用选择排序算法,将一个包含8个整数的数组按降序排列,并输出结果。程序分析:选择排序核心逻辑:每一轮从待排序元素中找到最大值(降序),将其与待排序部分的第一个元素交换位置,依次循环,直到整个数组有序。程序源代码:c

#include<stdio.h>

intmain(){

intarr[8]={3,1,6,2,8,5,7,4};

inti,j,max_index,temp;

//选择排序(降序)

for(i=0;i<7;i++){//外层循环:控制轮数(n个元素需n-1轮)

max_index=i;//假设当前待排序第一个元素是最大值

//找到待排序部分的最大值下标

for(j=i+1;j<8;j++){

if(arr[j]>arr[max_index]){

max_index=j;

}

}

//交换最大值与待排序第一个元素

temp=arr[i];

arr[i]=arr[max_index];

arr[max_index]=temp;

}

//输出排序后的数组

printf("选择排序(降序)结果:");

for(i=0;i<8;i++){

printf("%d",arr[i]);

}

printf("\n");

return0;

}【程序18】查找数组中的指定元素题目:定义一个整型数组,从键盘输入一个目标值,查找该值在数组中是否存在,若存在,输出其下标;若不存在,输出“未找到”。程序分析:遍历数组,将每个元素与目标值比较,若匹配则记录下标并退出循环;遍历结束后若未找到,输出提示信息。程序源代码:c

#include<stdio.h>

intmain(){

intarr[10]={2,5,8,11,14,17,20,23,26,29};

inttarget,i,flag=0;//flag标记是否找到,0=未找到,1=找到

printf("请输入要查找的整数:");

scanf("%d",&target);

//遍历数组查找目标值

for(i=0;i<10;i++){

if(arr[i]==target){

printf("找到目标值!下标为:%d\n",i);

flag=1;

break;//找到后退出循环,避免多余遍历

}

}

//若未找到

if(flag==0){

printf("未找到目标值%d\n",target);

}

return0;

}【程序19】字符串的输入与输出题目:使用字符数组存储字符串,从键盘输入一个字符串,然后将其输出到屏幕上,同时输出字符串的长度。程序分析:熟悉字符数组的使用(字符串本质是字符数组,以'\0'结尾),使用scanf输入字符串,printf输出,strlen函数计算字符串长度(需包含string.h头文件)。程序源代码:c

#include<stdio.h>

#include<string.h>//包含strlen函数的头文件

intmain(){

charstr[50];//定义字符数组,存储字符串(最多49个字符,留1个给'\0')

printf("请输入一个字符串:");

scanf("%s",str);//输入字符串,无需&符号(数组名本身就是地址)

//输出字符串

printf("你输入的字符串是:%s\n",str);

//输出字符串长度(strlen不计算'\0')

printf("字符串的长度是:%d\n",strlen(str));

return0;

}【程序20】字符串拼接题目:输入两个字符串,将第二个字符串拼接在第一个字符串后面,输出拼接后的字符串(不使用strcat函数)。程序分析:先遍历第一个字符串,找到其结尾('\0'),然后将第二个字符串的每个字符依次复制到第一个字符串的结尾,最后添加'\0'。程序源代码:c

#include<stdio.h>

#include<string.h>

intmain(){

charstr1[100]="Hello";

charstr2[50];

inti=0,j=0;

printf("请输入第二个字符串:");

scanf("%s",str2);

//找到str1的结尾('\0'的位置)

while(str1[i]!='\0'){

i++;

}

//将str2的字符复制到str1结尾

while(str2[j]!='\0'){

str1[i]=str2[j];

i++;

j++;

}

str1[i]='\0';//拼接后添加字符串结束符

//输出拼接后的字符串

printf("拼接后的字符串:%s\n",str1);

return0;

}【程序21】字符串反转题目:输入一个字符串,将其反转后输出(例如:输入"abcde",输出"edcba")。程序分析:获取字符串长度,交换字符串首尾对应位置的字符(第一个与最后一个、第二个与倒数第二个...),直到中间位置。程序源代码:c

#include<stdio.h>

#include<string.h>

intmain(){

charstr[50];

intlen,i,temp;

printf("请输入一个字符串:");

scanf("%s",str);

len=strlen(str);//获取字符串长度

//交换首尾字符,实现反转

for(i=0;i<len/2;i++){

temp=str[i];

str[i]=str[len-1-i];

str[len-1-i]=temp;

}

printf("反转后的字符串:%s\n",str);

return0;

}【程序22】统计字符串中字母的个数题目:输入一个字符串,统计其中英文字母(大写和小写)的个数,忽略数字、符号和空格。程序分析:遍历字符串的每个字符,通过ASCII码判断是否为字母(大写字母:65-90,小写字母:97-122),统计符合条件的字符个数。程序源代码:c

#include<stdio.h>

#include<string.h>

intmain(){

charstr[100];

inti,count=0,len;

printf("请输入一个字符串:");

gets(str);//gets函数可输入带空格的字符串(注意:gets存在安全隐患,此处用于简单演示)

len=strlen(str);

for(i=0;i<len;i++){

//判断是否为大写字母或小写字母

if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')){

count++;

}

}

printf("字符串中英文字母的个数:%d\n",count);

return0;

}【程序23】将字符串中的小写字母转为大写题目:输入一个字符串,将其中所有的小写字母转为大写字母,大写字母和其他字符不变,输出转换后的字符串。程序分析:利用ASCII码差值(小写字母比对应大写字母大32),遍历字符串,将小写字母减去32转为大写,其他字符不变。程序源代码:c

#include<stdio.h>

#include<string.h>

intmain(){

charstr[50];

inti,len;

printf("请输入一个字符串:");

scanf("%s",str);

len=strlen(str);

for(i=0;i<len;i++){

//判断是否为小写字母

if(str[i]>='a'&&str[i]<='z'){

str[i]-=32;//小写转大写

}

}

printf("转换后的字符串:%s\n",str);

return0;

}【程序24】比较两个字符串是否相等题目:输入两个字符串,比较它们是否完全相等(不使用strcmp函数),若相等输出“相等”,否则输出“不相等”。程序分析:先比较两个字符串的长度,若长度不同则直接不相等;若长度相同,再逐个比较对应位置的字符,全部相同则相等,否则不相等。程序源代码:c

#include<stdio.h>

#include<string.h>

intmain(){

charstr1[50],str2[50];

inti,len1,len2,flag=1;//flag=1表示相等,0表示不相等

printf("请输入第一个字符串:");

scanf("%s",str1);

printf("请输入第二个字符串:");

scanf("%s",str2);

len1=strlen(str1);

len2=strlen(str2);

//先比较长度

if(len1!=len2){

flag=0;

}else{

//长度相同,逐个比较字符

for(i=0;i<len1;i++){

if(str1[i]!=str2[i]){

flag=0;

break;

}

}

}

//输出结果

if(flag==1){

printf("两个字符串相等\n");

}else{

printf("两个字符串不相等\n");

}

return0;

}【程序25】统计字符串中指定字符出现的次数题目:输入一个字符串和一个指定字符,统计该字符在字符串中出现的次数。程序分析:遍历字符串,将每个字符与指定字符比较,若匹配则计数器加1,遍历结束后输出计数器的值。程序源代码:c

#include<stdio.h>

#include<string.h>

intmain(){

charstr[100],ch;

inti,count=0,len;

printf("请输入一个字符串:");

gets(str);

printf("请输入要统计的字符:");

scanf("%c",&ch);//注意:此处需先吸收缓冲区的换行符,或用getchar()处理

//吸收缓冲区的换行符(避免scanf读取到换行符)

getchar();

len=strlen(str);

for(i=0;i<len;i++){

if(str[i]==ch){

count++;

}

}

printf("字符'%c'在字符串中出现了%d次\n",ch,count);

return0;

}第三部分:循环与条件判断(26-40题)【程序26】使用while循环输出1-20的整数题目:使用while循环,输出1到20的所有整数,每个数占一行,同时计算这些数的总和。程序分析:熟悉while循环的结构(循环条件在前,先判断后执行),初始化循环变量,在循环中更新变量,同时累加求和。程序源代码:c

#include<stdio.h>

intmain(){

inti=1,sum=0;

printf("1到20的整数:\n");

while(i<=20){

printf("%d\n",i);

sum+=i;

i++;//更新循环变量,避免死循环

}

printf("1到20的总和:%d\n",sum);

return0;

}【程序27】使用do-while循环计算1-10的乘积题目:使用do-while循环,计算1到10的乘积(即10!),并输出结果。程序分析:do-while循环的特点是“先执行后判断”,即使循环条件一开始不满足,也会执行一次循环体。此处用于计算阶乘,初始化乘积变量为1,逐步相乘。程序源代码:c

#include<stdio.h>

intmain(){

inti=1;

longlongproduct=1;//用longlong避免乘积过大溢出

do{

product*=i;//等价于product=product*i

i++;

}while(i<=10);//循环条件:i<=10

printf("1到10的乘积(10!):%lld\n",product);

return0;

}【程序28】打印九九乘法表题目:使用双重for循环,打印九九乘法表(格式规范,左对齐或右对齐)。程序分析:外层循环控制行数(1-9),内层循环控制每行的列数(1-当前行数),每行输出“i×j=i×j”的格式,注意换行和对齐。程序源代码:c

#include<stdio.h>

intmain(){

inti,j;

//外层循环:控制行数(1-9)

for(i=1;i<=9;i++){

//内层循环:控制每行的列数(1-i)

for(j=1;j<=i;j++){

//格式化输出,确保对齐(%2d表示占2个字符宽度)

printf("%d×%d=%2d",j,i,i*j);

}

printf("\n");//每行结束后换行

}

return0;

}【程序29】打印等腰三角形(星号组成)题目:使用双重循环,打印一个5行的等腰三角形(由星号*组成)。程序分析:外层循环控制行数,内层循环分两部分:第一部分打印空格(用于对齐),第二部分打印星号,每行的空格数递减,星号数递增。程序源代码:c

#include<stdio.h>

intmain(){

inti,j,k;

introws=5;//三角形的行数

//外层循环:控制行数(1-rows)

for(i=1;i<=rows;i++){

//第一内层循环:打印空格(每行空格数=rows-i)

for(j=1;j<=rows-i;j++){

printf("");

}

//第二内层循环:打印星号(每行星号数=2i-1)

for(k=1;k<=2*i-1;k++){

printf("*");

}

printf("\n");//换行

}

return0;

}【程序30】判断一个数是否为素数题目:输入一个大于1的整数,判断该数是否为素数(素数:只能被1和自身整除的数)。程序分析:素数判断逻辑:从2到该数的平方根(sqrt(n))遍历,若存在能整除该数的数,则不是素数;否则是素数。这样可以减少遍历次数,提高效率。程序源代码:c

#include<stdio.h>

#include<math.h>

intmain(){

intn,i,flag=1;//flag=1表示是素数,0表示不是

printf("请输入一个大于1的整数:");

scanf("%d",&n);

//遍历从2到sqrt(n)

for(i=2;i<=sqrt(n);i++){

if(n%i==0){

flag=0;

break;//找到能整除的数,直接退出循环

}

}

if(flag==1){

printf("%d是素数\n",n);

}else{

printf("%d不是素数\n",n);

}

return0;

}【程序31】输出100-200之间的所有素数题目:使用循环和素数判断逻辑,输出100到200之间的所有素数,每行输出5个。程序分析:外层循环遍历100-200的所有整数,内层循环判断每个数是否为素数,若为素数则输出,并统计个数,每5个换行。程序源代码:c

#include<stdio.h>

#include<math.h>

intmain(){

intn,i,flag,count=0;//count统计素数个数

printf("100-200之间的素数:\n");

for(n=100;n<=200;n++){

flag=1;

//判断n是否为素数

for(i=2;i<=sqrt(n);i++){

if(n%i==0){

flag=0;

break;

}

}

if(flag==1){

printf("%d",n);

count++;

if(count%5==0){//每5个素数换行

printf("\n");

}

}

}

printf("\n100-200之间共有%d个素数\n",count);

return0;

}【程序32】计算斐波那契数列的前20项题目:斐波那契数列:1,1,2,3,5,8,13...(从第三项开始,每一项等于前两项之和),输出前20项,每行输出5个。程序分析:使用循环实现,定义三个变量a、b、c,a和b初始化为1(前两项),循环计算后续项(c=a+b),然后更新a和b,依次循环。程序源代码:c

#include<stdio.h>

intmain(){

inta=1,b=1,c,i,count=2;

printf("斐波那契数列前20项:\n");

printf("%d%d",a,b);//输出前两项

//循环计算并输出后18项(共20项)

for(i=3;i<=20;i++){

c=a+b;

printf("%d",c);

count++;

if(count%5==0){//每5个换行

printf("\n");

}

//更新a和b,为下一次计算做准备

a=b;

b=c;

}

printf("\n");

return0;

}【程序33】求两个数的最大公约数(GCD)题目:输入两个正整数,使用辗转相除法(欧几里得算法)求它们的最大公约数。程序分析:辗转相除法核心逻辑:用较大数除以较小数,得到余数,再用除数除以余数,依次循环,直到余数为0,此时的除数就是最大公约数。程序源代码:c

#include<stdio.h>

intmain(){

inta,b,temp;

printf("请输入两个正整数:");

scanf("%d%d",&a,&b);

//确保a>=b(若a<b,交换两者)

if(a<b){

temp=a;

a=b;

b=temp;

}

//辗转相除法

while(b!=0){

temp=a%b;//求余数

a=b;//更新a为除数

b=temp;//更新b为余数

}

printf("最大公约数是:%d\n",a);

return0;

}【程序34】求两个数的最小公倍数(LCM)题目:输入两个正整数,先求它们的最大公约数,再通过公式“最小公倍数=两数乘积/最大公约数”求最小公倍数。程序分析:利用最大公约数和最小公倍数的关系,先通过辗转相除法求最大公约数,再代入公式计算最小公倍数,避免直接相乘导致溢出。程序源代码:c

#include<stdio.h>

intmain(){

inta,b,temp,gcd,lcm;

printf("请输入两个正整数:");

scanf("%d%d",&a,&b);

//保存原始值,用于后续计算最小公倍数

intoriginal_a=a,original_b=b;

//辗转相除法求最大公约数

while(b!=0){

temp=a%b;

a=b;

b=temp;

}

gcd=a;

//计算最小公倍数:两数乘积/最大公约数

lcm=(original_a*original_b)/gcd;

printf("最大公约数:%d\n",gcd);

printf("最小公倍数:%d\n",lcm);

return0;

}【程序35】判断一个数是否为完数题目:输入一个正整数,判断该数是否为完数(完数:一个数等于它的所有真因子之和,真因子:除了自身以外的约数,例如6的真因子是1、2、3,1+2+3=6,所以6是完数)。程序分析:遍历1到n-1的所有整数,判断是否为n的约数,若是则累加,最后比较累加和与n是否相等,相等则为完数。程序源代码:c

#include<stdio.h>

intmain(){

intn,i,sum=0;

printf("请输入一个正整数:");

scanf("%d",&n);

//遍历1到n-1,寻找真因子并累加

for(i=1;i<n;i++){

if(n%i==0){

sum+=i;

}

}

//判断是否为完数

if(sum==n){

printf("%d是完数\n",n);

}else{

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论