C语言编程
文章平均质量分 88
这是C语言常见的编程题
代码写注释
代码千万行,注释第一行。
编程不规范,同事两行泪。
集众人之智,成众人之事。
展开
-
C语言 “百鸡问题”最优解
“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?#include <stdio.h>main( ){int cocks,hens,chicks;cocks=0;while(cocks<=19) { hens=0; while(hens<=33) {原创 2019-01-31 14:14:42 · 14768 阅读 · 1 评论 -
哈喽C!有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
哈喽C!有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?原创 2019-01-31 14:35:47 · 4384 阅读 · 0 评论 -
教你用数学思维理解循环嵌套打印菱形
puts(" *\n ***\n *****\n ***\n *\n");想一想,数学当中,描述变量之间的关系是不是函数?所以可以借助函数关系求解外循环变量和内循环变量的关系。因为它们都是一元二次的函数,故借助Y=aX+b的模型求解。原创 2018-12-29 21:27:50 · 950 阅读 · 1 评论 -
C语言 判断质数很简单
算法分析:假设对于一个正数a,如果a的约数只有两个,1和它本身,那这样数叫做素数。我们对a在2*--a-1之间取余,如果还能找到第三个约数,使得余数为0,那a就不是素数,如果找不到第三个约数,使得余数不为0,那a就是素数。举个例子,如果a=5,我们判断5是不是质数,只要把5分别与2,3,4取余就好了。即在这个区间范围上,如果还能找到一个约数,使得余数为0,那么5就不是质数,否则,它就是质数。原创 2018-12-30 22:09:04 · 18310 阅读 · 3 评论 -
啊哈C!源自《C语言参考手册》-整型数据溢出理解
先看实战案例,再看原理分析:signed整型溢出是负数: 以short int 为例:上面的代码会输出:32767,-32768。千万别以为signed整型溢出就是负数,这个是不一定的。比如以int为例 signed整型溢出是正数:上面的代码会输出:32767,32768。signed整型溢出是正数: 以long int 为例上面的代码会输出:32767,32768。总结:对于...原创 2018-12-27 16:36:39 · 2828 阅读 · 3 评论 -
C语言 同构数的算法
“同构数”是指这样的整数:它恰好出现在其平方数的右端。如:376*376=141376。请输出10000以内的全部“同构数”。算法分析:1.求出1-10000之间每个数的位数(即这个数是几位数)。设这个数是i.//用for循环实现,2.再求出每个数的平方值,提取出最右端对应位数的数值出来。//用取模%法实现。如369是个三个数,它的平方是136161,用取模%法提取出最右三位数字16...原创 2019-02-03 14:45:57 · 31239 阅读 · 3 评论 -
哈喽C!用数学方法判断101-200之间有多少个素数,并输出所有素数。
哈喽C!用数学方法判断101-200之间有多少个素数,并输出所有素数。原创 2019-02-03 15:02:32 · 1758 阅读 · 1 评论 -
C语言 水仙花数两种算法
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.代码实现:#include "stdio.h"main(){ int i,j,k,n; printf("水仙花数是:&qu原创 2019-02-03 15:09:53 · 51767 阅读 · 13 评论 -
C语言 分解质因数。例如:输入90,打印出90=2*3*3*5。
将一个正整数分解质因数。例如:输入90,打印出90=233*5。1.程序分析:用短除法求解。对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,n本身就是质数,打印出n即可。(2)如果n!=i,但n能被i整除,则应打印出i的值,并用n除以i的商,作为新的正整数n,重复执行第一步。(3)如果n不能被i整除,则用i+1...原创 2019-02-03 15:38:45 · 17899 阅读 · 16 评论 -
哈喽C!利用辗除法求最大公约数和最小公倍数
哈喽C!利用辗除法求最大公约数和最小公倍数原创 2019-02-03 17:11:59 · 2119 阅读 · 9 评论 -
C语言 计算正整数1~100中的奇数之和及偶数之和
计算正整数1~100中的奇数之和及偶数之和【类似数学中的数列求和。这里是如何把奇数和偶数的求和公式写出来。又涉及到累加的问题。sum = sum + i】原创 2019-02-14 18:39:43 · 38883 阅读 · 10 评论 -
C语言 从5~100之间找出能被5或7整除的数
从5~100之间找出能被5或7整除的数算法分析:注意“或”的理解:或此或彼或彼此#include "stdio.h"main( ){ int i; for(i=5;i<=100;i++) if(i%5==0||i%7==0) printf("%d\t",i);}...原创 2019-02-14 18:48:50 · 29061 阅读 · 4 评论 -
C语言 编程统计全班学生成绩
编程统计全班学生成绩。要求每次用键盘输入一个学生的2门分数,计算输出每个学生平均分,如果平均分大于等于85,为优秀,60~85为通过。统计出成绩优秀的学生和及格的学生人数。算法分析:统计人数,用count计数器。假设学生人数是5人。grade1,grade2接受分数average平均分#include "stdio.h"main( ){ int i,iScore1,iScore2,i...原创 2019-02-14 19:22:56 · 17612 阅读 · 0 评论 -
C语言 输入10个数,统计出并输出正数、负数和0的个数
输入10个数,统计出并输出正数、负数和0的个数。**算法分析:**用三个计数器:iCount1,iCount2,iCount3,分别统计大于0的个数,小于0的个数,等于0的个数。#include "stdio.h"main( ){ int i,iNum,iCount1=0,iCount2=0,iCount3=0; for(i=1;i&lt;11;i++) { printf("...原创 2019-02-14 19:46:06 · 55006 阅读 · 3 评论 -
C语言 编写程序,计算各个数的立方和小于1000最大的n值
#include "stdio.h"main(){ int k,iSum=0;/*定义循环变量和累加变量*/ for(k=1;iSum<1000;k++) iSum= iSum+k*k*k; printf("最大的k值是:%d",k-2);}原创 2019-02-14 20:27:53 · 4510 阅读 · 2 评论 -
C语言 用更相减损术求最大公约数,最小公倍数
更相减损术更相减损术是出自《九章算术》的一种求最大公约数的算法,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。出处《九章算术》用途求最大公约数作用适用任何需要求最大公约数的场合思想《九章算术》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,原文是:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。白话文译...原创 2019-02-03 20:56:58 · 9567 阅读 · 1 评论 -
C语言 输入一行字符,统计其中有多少个单词 和 有三个字符串(网上找的代码有瑕疵已解决),找出其中最大者的完整代码及分析过程
输入一行字符,统计其中有多少个单词 有三个字符串,找出其中最大者原创 2019-02-16 10:31:57 · 10223 阅读 · 10 评论 -
C语言 用数组求十个学生成绩的平均分
有十个学生的成绩:92 85 68 75 54 88 98 45 61 79,求平均分#include <stdio.h> #include <string.h> main(){ int k,sum=0,a[10]; for(k=0;k<10;k++) scanf("%d",&a[k])...原创 2019-02-16 10:51:10 · 29965 阅读 · 6 评论 -
C语言 用数组求十个学生成绩的平均分
有十个学生的成绩:92 85 68 75 54 88 98 45 61 79,求平均分#include <stdio.h> #include <string.h> main(){ int k,sum=0,a[10]; for(k=0;k<10;k++) scanf("%d",&a[k])...原创 2019-02-16 10:51:10 · 15569 阅读 · 0 评论 -
用一维数组计算并输出Fibonacci数列的前20项
用一维数组计算并输出Fibonacci数列的前20项。Fibonacci数列为 1 1 2 3 5 8 13 21 等,可归纳为以下公式:F(1)=1;F(2)=1;F(n)=F(n-1)+F(n-2) n>2#include "stdio.h"main() { int iFib[20] = {1,1},i; for(i=2;i<2...原创 2019-02-16 20:44:03 · 33190 阅读 · 0 评论 -
一维数组的逆序存放的两种方法
逆序存放方法一:交换法#include "stdio.h"main(){ int iA[10]={1,2,3,4,5,6,7,8,9,10},i,iTemp; for(i=0;i<5;i++) { iTemp = iA[i]; iA[i] = iA[9-i]; iA[9-i] = iTemp; } for(i=0;i<10;i++...原创 2019-02-16 20:55:00 · 16533 阅读 · 6 评论 -
冒泡排序法过程分析
冒泡排序法过程分析:下面是代码。建议先自己尝试去实现一下看看,再来看我是如何实现的。#include <stdio.h>main(){int a[100],i,j,t,n;scanf("%d",&n); //输入一个数n,表示接下来有n个数for(i=1;i<=n;i++) //循环读入n个数到数组a中printf("请输入%d个数:",n),...原创 2019-02-18 23:39:24 · 1757 阅读 · 2 评论 -
C语言 哥德巴赫猜想 输入4~100之间的偶数, 写出这个偶数拆成两个素数之和的方法
本篇博客主要内容:哥德巴赫猜想 输入4~100之间的偶数, 写出这个偶数拆成两个素数之和的所有方法。见篇尾处。先看原理:饮水思源:*哥德巴赫猜想通常指:任何大于2的偶数都可以写成两个素数的和。别称通常指关于偶数的哥德巴赫猜想。例如:4=2+2, 6=3+3,8=5+3,10=7+3,12=7+5,14=11+3,……素数:除1和本身无其他因数,又称质数,2是最小的素数。关于哥德巴赫...原创 2019-02-13 21:29:02 · 8906 阅读 · 9 评论 -
C语言 给一个物体的重量, 当重量小于或低于2kg 时,费用是3.05 元......
给一个物体的重量, 当重量小于或低于2kg 时,费用是3.05 元, 大于2kg 时,每千克收费 1.05 元,超出部分不足1kg按1kg计算。 试写一个程序,输入重量,输出费用。因此如果发件人发送重达5.63kg的包裹,就需要缴纳7.45元。#include<stdio.h>main(){float m,n;int a;printf("请输入包裹的重量:\n");sca...原创 2019-02-13 22:06:01 · 3199 阅读 · 0 评论 -
C语言 编一程序,交换两个字符变量的值并输出
编一程序,交换两个字符变量的值并输出。#include<stdio.h> main(){ char ch1='A',ch2='B',chTemp;//Temp是临时的意思,代表中转站 ,在C语言中是通用的 printf("ch1=%c,ch2=%c\n",ch1,ch2); chTemp=ch1; ch1=ch2; ch2=chTemp;;...原创 2019-02-14 09:23:54 · 16627 阅读 · 0 评论 -
C语言 编一程序,从键盘输入一个实数,输出其绝对值。
编一程序,从键盘输入一个实数,输出其绝对值。#include<stdio.h> main(){ float fx; printf("please input a float:"); scanf("%f",&fx); if(fx<0) fx=-fx; printf("|fx|=%f",fx);}...原创 2019-02-14 09:28:24 · 33291 阅读 · 6 评论 -
C语言 从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比
编一程序,从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比。圆的正内接六边形的面积计算公式为:area=sqrt(3)*3/2r2。其中,r是圆半径,sqrt(3)是求3的平方根,∏是圆周率,area是圆正内接六边形的面积。#include<stdio.h> #include "math.h"#define PI 3.1415926ma...原创 2019-02-14 09:32:34 · 12081 阅读 · 0 评论 -
C语言 判断闰年
从键盘输入一个年份值,判断是否闰年。设iYear为某一年份,iYear为闰年的条件为:iYear可以被4整除且不可以被100整除,或者iYear可以被400整除。#include "Stdio.h"//s大小写不影响 main(){ int iYear; printf("please input the year:"); scanf("%d",&iYear); //判...原创 2019-02-14 09:39:15 · 4103 阅读 · 1 评论 -
C语言 一条语句max = x>y? (x>z?x:z) : (y>z?y:z)实现求 x, y, z 最大值
从键盘输入三个整数,按由小到大的顺序输出。#include "stdio.h"main(){int i,j,k,max; scanf("%d%d%d",&amp;i,&amp;j,&amp;k);//%d%d%d形式,告诉你原样输入数据时以空格为分隔符 max=i&gt;j?i:j; max=max&gt;k?max:k;原创 2019-02-14 09:49:59 · 9018 阅读 · 3 评论 -
C语言 用switch语句算工资
假设星期一至星期五每工作一小时的工资是20元,星期六和星期日每工作一小时的工资是平时的3倍,其中工资的4.5%是税金。试编一程序从键盘输入星期序号(1,2,3,4,5,6,7,分别表示星期一至星期天)和工作小时数,计算该日的工资及应交税金。#include "Stdio.h"main(){ int iWeek,iHours ; float fSalary,fTaxes; prin...原创 2019-02-14 10:05:29 · 10268 阅读 · 1 评论 -
C语言 算法判断是否构成三角形,如能则求出三角形的周长和面积并输出;如不能,输出不能构成三角形的信息
从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积并输出;如不能,输出不能构成三角形的信息。构成三角形的条件为:三角形任意两边的和大于第三边时,构成三角形。算法分析:#include "Stdio.h"#include "math.h"int main(void){ float f1,f2,f3,fTemp,fC,fArea; printf("plea...原创 2019-02-14 10:13:53 · 10869 阅读 · 5 评论 -
C语言 编一程序判断点(2,4)是在圆内?圆外?还是圆上?
#include "Stdio.h"main(){ int ix,iy; printf("please input a point coordinates :");//coordinates是坐标 scanf("%d%d",&ix,&iy ); if(ix*ix+iy*iy<16) printf("点在圆里\n" ); els...原创 2019-02-14 10:27:05 · 12959 阅读 · 1 评论 -
C语言 输入一个5位正整数,判断它是不是回文数
输入一个5位正整数,判断它是不是回文数。所谓回文数是指 12321、23732…这样的数。#include "stdio.h"main(){long i,i0,i1,i2,i3,i4 ; /*i0个位,i1十位,i2百位,i3千位,i4万位 */ printf("please input a integer:"); scanf("%ld",&i);/*注意精确度,防止数...原创 2019-02-14 10:36:24 · 11135 阅读 · 2 评论 -
C语言 输入一个5位正整数,判断它是不是回文数
输入一个5位正整数,判断它是不是回文数。所谓回文数是指 12321、23732…这样的数。#include "stdio.h"main(){long i,i0,i1,i2,i3,i4 ; /*i0个位,i1十位,i2百位,i3千位,i4万位 */ printf("please input a integer:"); scanf("%ld",&i);/*注意精确度,防止数...原创 2019-02-14 10:36:24 · 7398 阅读 · 1 评论 -
C语言 两种方法优化:输入一个日期的年、月、日,计算并输出这天是该年的第几天。
C语言 两种方法优化:输入一个日期的年、月、日,计算并输出这天是该年的第几天。原创 2019-02-14 10:46:44 · 45311 阅读 · 24 评论 -
编程思路:一个10x10的方阵,要求该方阵副对角线上的元素都为2 其余元素均为0,输出该方阵
/*编程产生一个10x10的方阵,要求该方阵副对角线上的元素都为2其余元素均为0,输出该方阵*//*编程思路:在NxN方阵中,主对角线上元素满足:行标=列标副对角线上的数组元素满足:行标+列标=N-1*/#include<stdio.h>main(){ int j,i,count; int a[10][10]={0}; for(i=0;i<10;i++) { ...原创 2019-04-06 14:16:18 · 5903 阅读 · 0 评论 -
编程移动字符串中的字符,移动规则如下: 把第一移动到第m个字符,平移到字符串的后部 把第m+1到字符串末尾的字符平移到字符串的前部 例如,字符串abcdefghi,m的值是4,移动后的结果为efghi
/*编程移动字符串中的字符,移动规则如下:把第一移动到第m个字符,平移到字符串的后部把第m+1到字符串末尾的字符平移到字符串的前部例如,字符串abcdefghi,m的值是4,移动后的结果为efghiabcd*/#include<stdio.h>#include<string.h>main(){ char t[80],a[80]; int i,j=0,m;...原创 2019-04-06 14:32:54 · 4757 阅读 · 6 评论 -
编程实现从键盘输入一串字符串和一个字符,统计该字符串中指定字符出现的个数
/*编程实现从键盘输入一串字符串和一个字符,统计该字符串中指定字符出现的个数*/#include<stdio.h>#include<string.h>main(){ char str[100],c; int i=0,count=0; printf("请输入一个字符串:"); gets(str); printf("请输入指定的查找字符:"); scanf(...原创 2019-04-06 14:42:46 · 57723 阅读 · 4 评论 -
编程从键盘输入一个字符串,统计该字符串中从‘a‘到‘z‘共26个小写字母各自出现的次数, 将结果存入数组中,并输出
/*编程从键盘输入一个字符串,统计该字符串中从'a'到'z'共26个小写字母各自出现的次数,将结果存入数组中,并输出*/#include<stdio.h>#include<string.h>#define N 100 main(){ int i,j=0,c[26]={0}; char str[N]; printf("请输入一个字符串:"); gets(s...原创 2019-04-06 14:54:00 · 27486 阅读 · 0 评论 -
编程从键盘输入一个字符串, 将其中下标为偶数且ASCII值也为偶数的字符存放到另一个字符数组中,并输出
/*编程从键盘输入一个字符串,将其中下标为偶数且ASCII值也为偶数的字符存放到另一个字符数组中,并输出*/#include<stdio.h>#include<string.h> main(){ char str[100],s[100]; int i,len,j=0; printf("请输入一个字符串:"); gets(str); len=strlen...原创 2019-04-06 15:10:14 · 18519 阅读 · 3 评论