
C语言习题
C语言习题
林03
坚持,探索,诚信,自律
展开
-
c语言经典例题练习-5(比赛匹配对手)
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。分析:关键点有两个。首先要避免出现队内成员比赛的情况,其次要符合题目中a和c说的话。代码及运行结果如下:#include<stdio.h>int main(){ int i,j,k; for(i='x';i<='z';i++)//3重循环代表a,b,c3个人 {原创 2020-08-22 15:42:19 · 1060 阅读 · 1 评论 -
c语言经典例题练习-4(分解质因数)
题目:输入一个数a,将这个数分解质因数。(比如:300=2*2*3*5*5,2,3,5都是质数且都是300的因子)分析:直接从第一个质数(素数)2开始,先判断2是不是该数的因子,如果是,还要判断该数能分解成几个2,比如300就可以分解出两个质因子2。然后再判断下一个数3是不是质因子并且能分解出几个3,然后是5(你可能想问为什么不是4,直接跳到5呢?因为如果能被4整除,那么一定能被2整除,另外也不难推出,这之后的因子也都是素数),同理,判断完5之后是7(而不是6,6既能被2整除,也能被3整除)。所以,我原创 2020-08-21 19:34:33 · 266 阅读 · 0 评论 -
(YTU)问题 G: 字符串的修改(串)
题目描述:一个字符串s、一个字符串t,判断t是否是s的子串,若是则将s中所有出现了t串的地方换成指定的字符或字符串p(p的字符数可以不和t相同),若不是,则输出NO输入:一个字符串s、一个字符串t,要换的字符或字符串输出:输出修改后的s串样例输入:asdfasdf132saf样例输出:NO代码及运行结果如下:#include <stdio.h>#include <stdlib.h>#include <string.h>int main()原创 2020-08-09 22:02:41 · 819 阅读 · 0 评论 -
切面条问题(思路,原理详解)
题目如下:一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?对于本题的分析见下图图解:知道了这个规律,那写程序还不是手到擒来,直接硬套代码及运行结果如下!#include <stdio.h>#include<math.h>int main(){ int n; double answer; scanf原创 2020-08-08 18:52:38 · 2279 阅读 · 2 评论 -
写一个函数,求两数的商,并保留指定位数的小数
a/b计算商固然简单方便,可如果商是无限小数或很长位数小数的情况,你该如何求指定位数的商呢?(代码中不能使用浮点型变量)编写函数void div(int m,int n,int digits), 求两个整数m和n的商,结果保留digits位小数。#includevoid div(int m,int n,int digits);int main(){int m,n,digits;scanf("%d %d %d",&m,&n,&digits);div(m,n,digits)原创 2020-08-08 12:06:42 · 2766 阅读 · 0 评论 -
c语言知识点温习-2-递归
第一道题:输入一个正整数,用递归逆序输出这个数,比如输入一个数12345,那么输出结果应该是54321.代码及运行结果如下:#include <stdio.h>void inverted(int a){ if(a<10)//这是这个递归函数结束的条件 printf("%d",a); else { printf("%d",a%10); inverted(a/10); }}int main(){原创 2020-08-07 22:04:46 · 248 阅读 · 0 评论 -
给定任意一个正整数N(N<=30),打印出N行的杨辉三角形
给定一个正整数N,要求打印出N行的杨辉三角形。分析:整个杨辉三角形可以放到一个二维数组中,数字与数字之间的间隙可以看成当作一个0放在数组中。如果我们输出杨辉三角形前4行,那么每行需要的数组长度(也就是最后一行第四行需要的数组长度)为24-1=7,以此类推,如果是输出杨辉三角形前50行,我们通过规律可知第50行需要的数组大小为250-1=99.因为杨辉三角形每个数字都等于上一行左右两个相邻数字之和,而我们又把数组中的每个元素都赋值为0,所那么我们只给出第一行的1在数组中的位置即可。代码及运行结果如下:原创 2020-08-06 17:20:43 · 5782 阅读 · 1 评论 -
输入一个字符串,逆序并输出
输入一个字符串,然后逆序这个字符串并输出代码及运行结果如下:#include <stdio.h>#include <string.h>int main(){ char a[20],tmp; int len,i,j; scanf("%s",a); len=strlen(a); for(i=0,j=len-1;i<len/2;i++,j--) { tmp=a[i]; a[i]=a[j];原创 2020-08-05 22:31:07 · 8853 阅读 · 0 评论 -
指定数组大小,逆时针旋转数组中的元素
将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的每个数据都不能相同。代码及运行结果如下:法一:#include <stdio.h>int main(){ int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int b[4][4]; int i,j; for(i=0;i<4;i++) { for(j=0;j<4;j++)原创 2020-08-04 11:00:05 · 258 阅读 · 0 评论 -
找1000以内的完数
完数,是一些特殊的自然数,它所有的真因子(即除了自身以外的因子)的和,恰好等于它本身。(所以这里说明一下,1不是完数,因为1只有自身这一个因子)第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。所以程序循环直接从数字2开始判断代码及运行结果如下:#include <stdio.h>int main(){ int i,j,m,k,sum; int a[35];//这里数组大小不能太小,因为840有32个因数,是1原创 2020-08-02 19:57:07 · 1065 阅读 · 0 评论 -
c语言经典例题练习-3(最大公约数和最小公倍数)
题目:输入两个正整数,分别求出他们的最大公约数和最小公倍数并输出。分析:求最大公约数用辗转相除法:比如有两个正整数a,b。那么a和b的最大公约数等于b和c的最大公约数,而c表示余数:c=a%b。求最小公倍数的方法是:两个数的乘积恰好等于它们最大公约数和最小公倍数的乘积,而我们只要求出最大公约数,通过这个等式就可以求出代码及运行结果如下:#include<stdio.h>int main(){ int a,b,c,tmp,mul; scanf("%d %d",&原创 2020-08-21 17:33:24 · 899 阅读 · 0 评论 -
c语言经典例题练习-2(完全平方数)
题目:一个正整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?分析:首先强调一下,完全平方数和完全数不是一个 概念,完全平方数:若一个数能写成某一个数平方的形式,那么这个数就是完全平方数,比如25=5*5,36=6*6,那么25,36都是完全平方数,另外虽然25=(-5)*(-5),但对于本题不需要区分正负,因为我们本题的关键是用的平方数,而不是平方根,所以本题不考虑负平方根的情况;而完全数(又叫完数):它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等原创 2020-08-18 17:51:20 · 2618 阅读 · 0 评论 -
c语言经典例题练习-1
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?代码及运行结果如下:#include<stdio.h>int main(){ int i,j,k,n=0; for(i=1;i<5;i++) { for(j=1;j<5;j++) { for (k=1;k<5;k++) { if (i!=k&&am原创 2020-08-17 17:08:03 · 136 阅读 · 0 评论 -
古典问题--兔子繁衍
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,新出生的小兔子长到第三个月后每个月也会生一对兔子,假如兔子都不死,问前20个月每个月的兔子总数分别为多少对?(兔子的规律为数列1,1,2,3,5,8,13,21…)***分析:***因为兔子是从出生后的第3个月才生兔子,而且这之后每个月都会生下一对兔子(注意是1对,而不是1只),所以前两个月的兔子总数不会变,都是1对,我们可以直接输出前两个月的兔子总数;从第3个月开始,兔子总数开始增加1对,此时兔子总数变为2对,注意因为刚出生的兔子不能繁衍,要到原创 2020-08-01 10:58:17 · 1452 阅读 · 0 评论 -
输出乘法口诀表C语言(YTU)
代码如下:原创 2020-02-18 15:43:10 · 401 阅读 · 1 评论 -
绕钉子的长绳子C语言
平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。(题目来源洛谷)题目描述求出绳子的长度输入格式第1行两个数:整数N(1<=N<=100)和实数R。接下来N行按逆时针顺序给出N个钉子中心的坐标坐标的绝对值不超过100。输出格式一个数,绳子的长度,精确到小数点后2位。代码如下:运行结果:...原创 2020-02-15 16:47:12 · 466 阅读 · 0 评论 -
学生的平均成绩
二维数组练习——学生的平均成绩 (题目来源小甲鱼)题目:一个学习小组有5名成员 ,每人有3门课的学习成绩。将所有数据保存到二维数组a[5][3]中,并求这5人的单科平均成绩和所有人全科总的平均成绩。其中5人成绩如下:高等数学: 80分 61分 59分 85分 76分c语言: 75分 65...原创 2020-02-01 21:08:14 · 1069 阅读 · 0 评论 -
世界对称日C语言
题目:列出自纪元以来,出现过多少次世界完全对称日(形如20200202)。代码如下:代码中刚开始的三个数组是将12个月中的天数分类,这里不用考虑是否闰年即二月28还是29天,这对本题无影响,那么可以分成三类,1个月31天的,1个月30天的,和1个月28天的。然后对年份进行依次循环,在依次判断这一年的1到12月天数,最后判断月数和天数的对称组合数是否和年份相同,输出即可。运行结果:...原创 2020-02-02 18:11:50 · 1527 阅读 · 3 评论 -
扑克牌洗牌系统(一维数组)
题目:请设计一个随机洗牌系统,将52张除大小王外的扑克随机发给4个人 ,并对每个人手中的牌进行排序后输出。排序规则:先按花色排,依次为黑桃、红桃、梅花、方片,同花色的按点数从小到大排。其中,点数A视作点数1。输出格式:每人占1行,相邻两张牌之间用1个空格分开。数组card代表52张不同的扑克,其中10002000的代表黑桃牌,20003000的代表红桃牌…依题目要求类推,由于...原创 2020-02-04 17:01:39 · 603 阅读 · 2 评论 -
一元二次方程根的问题
一元二次方程根的问题题目:有方程axx+b*x+c=0;求出这一方程可能的根的情况;代码如下:代码中运用了数学中一元二次方程的基本求法,只是需要分情况考虑是不要遗漏某一种可能性。运行结果:这里取了一个比较特殊的值输入,如果代码还有错误或需要改进的地方,请指教,不胜感激。...原创 2020-02-06 13:00:20 · 380 阅读 · 0 评论 -
新型冠状病毒之物资的分配
问题背景: (题目来源:烟台大学计195练习题)爆发于武汉的新型冠状病毒感染的肺炎疫情牵动着全国各地人民的心,一方有难,八方支援。截至目前,山东寿光向武汉捐赠蔬菜已达1120吨;俄罗斯中国总商会组织在俄企业、华人华侨捐赠各类防护用品约15吨;直升机空降新华路体育场,解武汉协和医院燃眉之急……大批捐赠物资的管理存放是个大问题。一旦处理不好劳民伤财不说,还会寒了广大爱心人士的心。问题描述:...原创 2020-02-08 12:21:06 · 1759 阅读 · 0 评论 -
谣言的传播
题目:总有一些人在造谣。现在有n个人,编号分别为1—n。造谣者向他们传播了m次谣言,每个谣言的影响范围不同。每次造谣者选中一个人A,若谣言的影响范围为B,则A会告诉所有与它编号的差不超过B的人。你的任务是计算每个人最后收到的是第几次谣言。输入描述:第1行输入n和m,接下来m行,每行两个数A 、B输出描述:输出一行n个数,第i个数表示编号位i的人收到的我最后一次谣言。没有收到谣言输出0样例输入:10 57 24 52 16 23 1样例输出:3 5 5 5 4 4 4 4 2 0原创 2021-01-31 16:30:23 · 562 阅读 · 0 评论 -
求矩形中正方形和长方形的个数
题目:设有一个N×M方格的棋盘(1≤N≤100,1≤M≤100,N与M始终不相等)求出该棋盘中包含有多少个正方形、多少个长方形。例 输入:2,3输出:8,10代码如下:对于解决这个问题,有个公式需要知道,假设一个矩阵长为5,宽为4,那么求一个矩形中的正方形个数公式为:45+【(4-1)(5-1)】+【(4-2)(5-2)】+【(4-3)(5-3)】,因为(4-4)(5-4)是...原创 2020-02-11 17:19:29 · 3953 阅读 · 0 评论 -
大奖计分赛
在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。请在大奖赛计分程序基础上,增加功能,若用户输入不在0-10范围内,则立即要求重输,直到正确。基本要求:在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。代码如下:运行结果:...原创 2020-02-19 10:34:21 · 495 阅读 · 0 评论