
C程序设计
生活沒有前戲
我是蒟蒻(jv ruo)
展开
-
PTA 习题3-2 高速公路超速处罚 (15 分)(浮点数的精度问题)
习题3-2 高速公路超速处罚 (15 分)第二个样例是卡人的,原因在于浮点数的精度问题。当我们用这种形式就能够避免第二组样例也输出“OK"的尴尬。这里给出参考博客https://blog.youkuaiyun.com/qq_41384798/article/details/101980655#include<stdio.h>int main(){ int spd,dl; scanf("%d %d",&spd,&dl); //printf("%lf %l原创 2021-04-09 14:56:06 · 1378 阅读 · 0 评论 -
数组循环问题(旋转数组)PTA实验8-1-7
PTA实验8-1-7 数组循环右移 (20 分)循环右移的实现方法有两种,第一种是逐个右移动:将数组中最后一个元素取出,然后其他元素顺次后移,直到k等于0方法一:int ArrayShift( int a[], int n, int m ){ while(m--){ int t = a[n-1]; for(int i = n - 2 ;i >= 0 ;i--) { a[i+1] = a[i]; }原创 2021-04-09 10:22:38 · 283 阅读 · 0 评论 -
习题11-2 查找星期 (15分)
本题要求实现函数,可以根据下表查找到星期,返回对应的序号。序号 星期 0 Sunday 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 函数接口定义:int getindex( char *s );函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。裁判测试程序样例:#include &l原创 2021-01-10 11:05:22 · 426 阅读 · 0 评论 -
浙大版《C语言程序设计(第3版)》题目集 习题5-7 使用函数求余弦函数的近似值 (15分)
习题5-7使用函数求余弦函数的近似值(15分)本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯函数接口定义:double funcos( double e, double x );其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。裁判测试程序样例:#..原创 2021-01-07 11:09:23 · 203 阅读 · 0 评论 -
练习7-10 查找指定字符 (15分)(编程蒟蒻在线求教)
本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7输入样例2:a1234输出样例2:Not Found在线求解:哪位巨佬能告诉我问.原创 2020-05-24 22:14:42 · 301 阅读 · 0 评论 -
(递归经典问题)整数划分问题
问题描述:将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。求正整数n的不同划分个数。 例如正整数6有如下11种不同的划分: 6; 5+1; 4+2,4+1+1; 3+3,3+2+1,3+1+1+1; 2+2+2,2+2+1+1,2+1+1+1+1; 1+1+1+1+1+1。分析:设置函数q(n,m),n代表输入的整数,m代表最大加数不能...原创 2020-05-21 10:12:21 · 686 阅读 · 0 评论 -
浙大版《C语言程序设计(第3版)》题目集 习题10-4 递归求简单交错幂级数的部分和 (15分)
本题要求实现一个函数,计算下列简单交错幂级数的部分和:f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn函数接口定义:double fn( double x, int n );其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。裁判测试程序样例:#include <stdio.h>double fn( double x, int n );int main(){原创 2020-05-21 09:14:02 · 630 阅读 · 0 评论 -
浙大版《C语言程序设计(第3版)》题目集 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m,n]内的所有Fibonacci数,相邻数字间有.原创 2020-05-19 08:45:49 · 1668 阅读 · 0 评论 -
浙大版《C语言程序设计(第3版)》题目集 习题6-2 使用函数求特殊a串数列和 (20分)
给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。函数接口定义:int fn( int a, int n );int SumA( int a, int n );其中函数fn须返回的是n个a组成的数字;SumA返回要求的和。裁判测试程序样例:#include <stdio.h>int fn( int a, in...原创 2020-05-07 19:56:09 · 702 阅读 · 0 评论 -
浙大版《C语言程序设计(第3版)》题目集 习题5-6 使用函数输出水仙花数 (20分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义:int narcissistic( int number );void PrintN( int m, int n );函...原创 2020-05-07 15:09:19 · 859 阅读 · 0 评论 -
习题8-3 数组循环右移 (20分)
本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(an−m⋯an−1a0a1⋯an−m−1)(最后m个数循环移至最前面的m个位置)。函数接口定义:int ArrayShift( int a[], int n, int m ...原创 2020-04-24 19:37:29 · 679 阅读 · 0 评论 -
练习5-2 找两个数中最大者 (10分)
本题要求对两个整数a和b,输出其中较大的数。函数接口定义:int max( int a, int b );其中a和b是用户传入的参数,函数返回的是两者中较大的数。裁判测试程序样例:#include <stdio.h>int max( int a, int b );int main(){ int a, b; scanf("%d...原创 2020-03-31 14:12:25 · 209 阅读 · 0 评论 -
PTA C Program 练习5-1 求m到n之和 (10分)
本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。函数接口定义:int sum( int m, int n );其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。裁判测试程序样例:#include <stdio.h>int sum(int m, int n);int main(){ ...原创 2020-03-31 14:11:42 · 393 阅读 · 0 评论 -
6-7 求单链表的表长 (11分)
本题要求实现一个函数,求带头结点的单链表的表长。函数接口定义:int Length ( LinkList L );其中LinkList结构定义如下:typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;L是带头结点的单链表的头指针,函数Length返回单...原创 2020-02-06 16:07:23 · 6742 阅读 · 0 评论 -
7-65 找完数 (20分)
7-65找完数(20分)所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式:输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。输出格式:逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2...原创 2020-01-16 15:12:05 · 880 阅读 · 0 评论 -
7-89 输出小于n的所有完数 (10分)
7-89输出小于n的所有完数(10分)本题要求从小到大输出小于n(2≤n≤10000)的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。输入格式:输入在一行中给出n(2≤n≤10000)的值。输出格式:输出完数,每个数占6位。如果小于n的完数不存在,则输出"NONE"。输入样例:1000输出样例: ...原创 2020-01-16 15:10:51 · 4778 阅读 · 1 评论 -
7-10 求一元二次方程的根 (20分)
本题目要求一元二次方程的根,结果保留2位小数。输入格式:输入在一行中给出3个浮点系数a、b、c,中间用空格分开。输出格式:根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;3)如果方程只有一个根,则直接输出此根;...原创 2020-02-05 10:58:17 · 23129 阅读 · 8 评论 -
7-53 验证“哥德巴赫猜想” (20分)
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。输出格式:在一行中按照格式“N = p + q”输出N的素数分解,其中p≤q均为素数。又因为...原创 2020-02-02 15:33:46 · 1413 阅读 · 0 评论 -
7-59 梅森数 (20分)
形如2n−1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。本题要求编写程序,对任一正整数n(n<20),输出所有不超过2n−1的梅森数。输入格式:输入在一行中给出正整数n(n...原创 2020-02-02 09:42:23 · 1062 阅读 · 0 评论 -
7-70 小于m的最大的10个素数 (15分)
给定一个整数m(50<m<20000),找出小于m的最大的10个素数。输入格式:输入在一行中给出一个正整数m(50<m<20000)。输出格式:在一行中按递减顺序输出10个满足条件的素数,每个素数输出占6列。没有其它任何附加格式和字符。输入样例:229输出样例: 227 223 211 199 197 193 ...原创 2020-02-01 14:41:48 · 3510 阅读 · 0 评论 -
7-68 求n以内最大的k个素数以及它们的和 (20分)
本题要求计算并输出不超过n的最大的k个素数以及它们的和。输入格式:输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。输出格式:在一行中按下列格式输出:素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。输入样例1:1000 10输出样例1:997+991+983+977+971+967...原创 2020-02-01 14:19:31 · 1778 阅读 · 0 评论 -
7-55 打印菱形图案 (15分)
本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7输出样例: * * * * * * * * * * * * * * * * * * * * * * * * *...原创 2020-01-31 15:31:25 · 1120 阅读 · 1 评论 -
7-74 二分法求多项式单根 (20分)
二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f(r)=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则 如果f(a)f(b)<0,则计算中点的值f((a+b)/2); 如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则...原创 2020-01-31 10:56:22 · 289 阅读 · 0 评论 -
7-45 求e的近似值 (15分)
自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!+⋯来近似计算。本题要求对给定的非负整数n,求该级数的前n+1项和。输入格式:输入第一行中给出非负整数n(≤1000)。输出格式:在一行中输出部分和的值,保留小数点后八位。输入样例:10输出样例:2.71828180坑点在这:讲解的很明白7-45求e的近似值(15分)代码:...原创 2020-01-22 11:15:10 · 529 阅读 · 0 评论 -
7-44 求给定精度的简单交错序列部分和 (15分)
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。输入格式:输入在一行中给出一个正实数eps。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样例1:4E-2输出样例1:sum = 0.854457输入...原创 2020-01-17 22:01:44 · 1608 阅读 · 1 评论 -
7-57 兔子繁衍问题 (15分)
7-57兔子繁衍问题(15分)一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30输出样例:9最少...原创 2020-01-17 11:26:48 · 331 阅读 · 0 评论 -
7-54 高空坠球 (20分)
皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范...原创 2020-01-17 09:37:02 · 438 阅读 · 0 评论 -
7-51 特殊a串数列求和 (20分)
7-51特殊a串数列求和(20分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246代码:#include<stdio.h>int main...原创 2020-01-16 22:15:01 · 464 阅读 · 0 评论 -
7-47 统计素数并求和 (20分)
7-47统计素数并求和(20分)本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31输出样例:7 143代码:#include<stdio.h>#includ...原创 2020-01-16 14:38:43 · 1177 阅读 · 0 评论 -
Digit factorials(好奇数)
Digit factorialsA curious number is equal to the sum of the factorials of its digits, for example 1! + 4! + 5! = 1 + 24 + 120 = 145, so 145 is a curiouse number. But 1! + 2! + 3! = 1 + 2 + 6 ≠ 12...原创 2020-01-16 09:52:16 · 239 阅读 · 0 评论 -
7-88 就不告诉你 (15分)
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53注意: 卡前导零#includ...原创 2020-01-15 14:46:37 · 1017 阅读 · 0 评论 -
7-35 念数字 (15分)
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,...原创 2020-01-14 11:01:53 · 249 阅读 · 0 评论 -
字典序(输入OR不输入)
#include<stdio.h>#include<string.h>int main(){void sort( char *name[], int n);void print(char *name[], int n);char *name[5] = { "follow me", "basic", "great wall", "fortran", "compu...原创 2020-05-21 14:19:10 · 118 阅读 · 0 评论 -
关于三个数按从小到大输出
转载大佬的博客,总结的很全面本文链接:https://blog.youkuaiyun.com/navicheung/article/details/79346760转载 2020-01-10 20:28:07 · 255 阅读 · 0 评论 -
杨辉三角
7-5杨辉三角(10 分)打印n行杨辉三角,n<10。输入格式:直接输入一个小于10的正整数n。输出格式:输出n行杨辉三角,每个数据输出占4列。输入样例:5输出样例: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1#include<stdio.h>int main...原创 2020-01-08 21:22:44 · 4924 阅读 · 0 评论 -
(C语言)有一个已排好序的数组,要求输入一个数字后,按原来的排序规律将它插入数组
写法一: 这种写法是谭浩强书上的写法: 我先判断是不是最后插得数,如果是最后插得话直接插就可以了。 如果不是在最后插的,那么我挨个进行判断:比如这样一个数组—— {1 4 6 9 13 16 19 28 40 100} 如果我要插入一个10,那么我就找到第一个大于这个数的位置(13,a...原创 2020-01-08 14:46:49 · 6665 阅读 · 4 评论 -
埃拉托色尼筛法(素数筛)
埃拉托色尼是古希腊的数学家,埃氏筛就是他发明的。#include<stdio.h>int main(){ int a[101]; int i, j , k =0; for(i = 1; i<=100;i++){ a[i]=i; } a [1] = 0;//第一遍筛,先把1筛掉 for(i = 2; i <= 99 ;i++){ for(j =...原创 2020-01-08 09:55:39 · 543 阅读 · 0 评论 -
选择排序
主要思想#include<stdio.h>#include<string.h>int main(){ int a[11]; memset(a,0,sizeof(int)); for(int i = 0;i < 10;i ++){ scanf("%d",&a[i]); } for(int i = 0;i < 10;i ++){...原创 2020-01-08 10:33:07 · 106 阅读 · 0 评论