![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
鲸骨猫
这个作者很懒,什么都没留下…
展开
-
调用函数----如何在主函数调用子函数
题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后 问第一个人,他说是 10 岁。请问第五个人多大?1.程序分析: 利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道 第四人的岁数,依次类推,推到第一人(10 岁),再往回推。2.程序源代码:#include<stdio.h> i...原创 2020-12-24 22:15:13 · 14434 阅读 · 1 评论 -
%d,%o,%x,%e,%f,%c,%u,%g,%f,%o,%p等含义
题目:求 1+2!+3!+...+20!的和 。1.程序分析: 此程序只是把累加变成了累乘。2.程序源代码:#include<stdio.h>int main(){ float i,a=1,b=0; for(i=1;i<=20;i++) { a*=i; b+=a; } printf("%e",b); } 3.代码及编译结果截图:4.知识点:格式说明由“%”和格式字符组成,如%d%f等。它的作...原创 2020-11-03 23:27:10 · 1201 阅读 · 0 评论 -
for语句讲解与举例
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20项之和。1.程序分析: 请抓住分子与分母的变化规律。2.程序源代码:#include<stdio.h>int main(){ int i; float t,s=0,a=2,b=1; for(i=0;i<20;i++) { s+=a/b; t=a;a=a+b;b=t; } printf("%f",s);} 3.代码及编...原创 2020-11-03 23:19:01 · 1590 阅读 · 0 评论 -
跟我一起打*********************************************************************
题目:打印出如下图案(菱形) **** ****** ******** ****** *** *1.程序分析: 先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for 循环,第一层控制行,第二层控制列。2.程序源代码:#include<stdio.h>int main(){ int i,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) print...原创 2020-10-22 22:54:25 · 229 阅读 · 0 评论 -
比赛名单------找对手
题目:两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为x,y,z 三人。已抽签决定 比赛名单。有人向队员打听比赛的名单。a 说他不和 x 比,c 说他不和 x,z 比,请编程序找出 三队赛手的名单。1.问题分析: 假设i是a的对手,j是b的对手,k是c的对手,a,b,c分别是x,y,z之一,且a,b,c互不相等,同时还要满足条件a!='x'&&c !='x'&&c !='z'。2.程序源代码:#include<stdi...原创 2020-10-21 23:26:58 · 311 阅读 · 0 评论 -
来了来了----猴子吃桃问题
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。1.程序分析: 采取逆向思维的方法,从后往前推断。2.程序源代码:#include<stdio.h>int main(){ int day,x1,x2;/*定义三个bai变量,day表示天数,x1表示猴子所吃掉的桃...原创 2020-10-20 22:32:53 · 282 阅读 · 0 评论 -
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1.程序分析: 利用 while 语句,条件为输入的字符不为'\n'.2.程序源代码:#include<stdio.h>int main(){ char c; int letters=0,space=0,digit,others=0; printf("please input some characters\n"); while((c=getchar())!='\n') {...原创 2020-10-19 23:19:22 · 34662 阅读 · 6 评论 -
条件运算符的基本例子 -----(a>b)?a:b
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示,60-89 分之间的用 B 表示, 60 分以下的用 C 表示。1.程序分析:(a>b)?a:b 这是条件运算符的基本例子。2.程序源代码:#include<stdio.h>int main(){ int score; char grade; printf("please input a score\n"); scanf("%d",&score); grade=score原创 2020-10-18 23:35:03 · 5243 阅读 · 0 评论 -
一个关于球的问题------解决物理问题
题目:一球从 100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第 10 次落地时,共经过多少米?第10 次反弹多高?1.程序分析: 见下面注释2.程序源代码:#include<stdio.h>int main() { float sn=100.0,hn=sn/2; int n; for(n=2;n<=10;n++) {sn=sn+2*hn;/*第n 次落地时共经过的米数*/ hn=hn/2; /*第 n次反跳高度*...原创 2020-10-16 23:04:39 · 279 阅读 · 0 评论 -
完数!!!
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3.编程 找出 1000 以内的所有完数。1. 程序分析: 对 n进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果 n<>k,但 n 能被k 整除,则应打印出k 的值,并用 n 除以k 的商,作为新的正整数你 n, 重复执行第一步。 (3)如果 n不能被 k 整除,则用 k+1作为 k 的值...原创 2020-10-16 17:21:48 · 159 阅读 · 0 评论 -
2020-10-14
题目:求 s=a+aa+aaa+aaaa+aa...a的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时 共有 5 个数相加),几个数相加有键盘控制。1.程序分析: 关键是计算出每一项的值2.程序源代码:#include<stdio.h>int main(){ int a,n,count=1; long int sn=0,tn=0; printf("please input a and n\n"); scanf("%...原创 2020-10-14 20:49:27 · 113 阅读 · 0 评论 -
2020-10-14
题目:输入两个正整数 m和 n,求其最大公约数和最小公倍数。1.程序分析: 利用辗除法。2.程序源代码:#include<stdio.h>int main(){ int a,b,num1,num2,temp; printf("please input two numbers:\n"); scanf("%d,%d",&num1,&num2); if(num1<num2) {temp=num1; num1=num2; nu...原创 2020-10-14 20:20:23 · 102 阅读 · 0 评论 -
蒋正整数分解为质因数
题目:将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。1.程序分析: 对 n进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果 n<>k,但 n 能被k 整除,则应打印出k 的值,并用 n 除以k 的商,作为新的正整数你 n, 重复执行第一步。 ...原创 2020-10-14 18:10:59 · 120 阅读 · 0 评论 -
古典问题:数兔子
题目:有一对兔子,从出生后第 3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21....2.程序源代码:#include<stdio.h>int main(){ long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) {printf("%12ld %12ld",f1,f...原创 2020-10-14 17:53:12 · 208 阅读 · 0 评论 -
喜欢国际象棋的来瞅瞅啦
题目:要求输出国际象棋棋盘。1.程序分析: 用 i 控制行,j 来控制列,根据 i+j的和的变化来控制输出黑方格,还是白方格。2.程序源代码:#include<stdio.h>int main(){ int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) if((i+j)%2==0) printf("%c%c",219,219); else printf(" "); p...原创 2020-10-12 22:48:44 · 127 阅读 · 0 评论 -
乘法口诀
题目:输出 9*9口诀1.程序分析: 分行与列考虑,共 9 行 9列,i 控制行,j 控制列。2.程序源代码:#include<stdio.h>int main(){ int i,j,result; printf("\n"); for(i=1;i<10;i++) {for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3 位...原创 2020-10-12 22:26:09 · 136 阅读 · 0 评论 -
送给刚入C语言的萌新们
题目:用*号输出字母 C的图案。1.程序分析: 可先用'*'号在纸上写出字母 C,再分行输出。2.程序源代码:#include<stdio.h>int main(){ printf("Hello C-word!\n"); printf("****\n"); printf("*\n"); printf("*\n"); printf("****\n");}3.代码及编译结果截图:4.送给萌新祝福: ...原创 2020-10-11 22:31:43 · 111 阅读 · 0 评论 -
C语言scanf注意事项
题目:输入三个整数 x,y,z,请把这三个数由小到大输出。1.程序分析: 我们想办法把最小的数放到 x 上,先将 x与 y 进行比较,如果 x>y 则将x 与 y 的值进行交换, 然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x最小。2.程序源代码:#include<stdio.h>int main(){ int x,y,z,t; scanf("%d%d%d",&x,&y,&...原创 2020-10-11 22:16:14 · 473 阅读 · 0 评论 -
C语言
题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以 3 月 5日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊 情况,闰年且输入月份大于 3 时需考虑多加一天。2.程序源代码:#include<stdio.h>int main(){ int day,month,year,sum,leap; printf("\nplease input year,mouth,day\n"); scanf("%d,%d,%d",&yea.原创 2020-10-10 22:56:49 · 95 阅读 · 0 评论 -
2020-10-10
题目: 一个整数,它加上 100后是一个完全平方数,再加上 168又是一个完全平方数,请问该数是多少?1.程序分析:在 10 万以内判断,先将该数加上 100后再开方,再将该数加上 268后再开方,如果开方后 的结果满足如下条件,即是结果。2.程序源代码:#include<stdio.h>#include"math.h"int main(){ long int i,x,y; for(i=1;1<100000;i++) {x=sqrt(i+1...原创 2020-10-10 22:30:34 · 94 阅读 · 1 评论 -
2020-10-09
题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。2.程序源代码:#include<stdio.h>int main(){ int i,j,k; printf("\n"); for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++) for(k=1;k<5;k++)..原创 2020-10-09 23:00:53 · 115 阅读 · 1 评论 -
2020-10-09
题目:打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153 是一个“水仙花数” ,因为 153=1的三次方+5 的三次方+3 的三次方。1.程序分析: 利用 for 循环控制100-999 个数,每个数分解出个位,十位,百位。2.程序源代码:#include<stdio.h>int main(){ int i,j,k,n; printf("water fiower'number is:"); f...原创 2020-10-09 11:49:45 · 492 阅读 · 0 评论 -
2020-10-08
题目:判断 101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。2.程序源代码:#include<stdio.h>#include"math.h"main(){intm,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){k=sqrt(m+1);for(i=2;i<=k;i++)if..原创 2020-10-08 19:08:09 · 99 阅读 · 0 评论