C语言
公子小白呀
红红火火恍恍惚惚嘻嘻哈哈快快乐乐
展开
-
获取时间C语言-按秒数
两部分:1.获取秒数2.获取“年-月-日-时-分-秒”1.获取秒数#include<time.h>//包含的头文件int GetTime(){ time_t t; t = time(NULL); return t;//返回的是从从1970年1月1日0时0分0秒到此时的秒数}2.获取具体时间...原创 2021-11-08 19:55:57 · 2018 阅读 · 0 评论 -
7-18 二分法求多项式单根 (20 分)
二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f®=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则如果f(a)f(b)<0,则计算中点的值f((a+b)/2);如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则如果f((a+b)/2)与f(a)同号,则说明根在区间[(a+b)/2,b],令a=(a+b)/2,重复循环;如果f((原创 2021-08-25 22:52:15 · 59 阅读 · 0 评论 -
7-17 爬动的蠕虫 (15 分)
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。输出格式:在一行中输出蠕虫爬出井的时间,以分钟为单位。输入样例:原创 2021-08-25 21:42:29 · 120 阅读 · 0 评论 -
7-16 求符合给定条件的整数集 (15 分)
给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。输入格式:输入在一行中给出A。输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。输入样例:2结尾无空行输出样例:234 235 243 245 253 254324 325 342 345 352 354423 425 432 435 452 453523 524 532 534 542 543#include <stdio.h原创 2021-08-23 15:42:19 · 84 阅读 · 0 评论 -
7-15 计算圆周率 (15 分)
根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。输入格式:输入在一行中给出小于1的阈值。输出格式:在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。输入样例:0.01结尾无空行输出样例:3.132157第一次写的代码可以运行,但是无法通过,提示直接计算阶乘会超出长整型#include <stdio.h>int funup(int n);int fundown(int n);int main (){ int i = 0; do原创 2021-08-23 15:19:40 · 661 阅读 · 0 评论 -
C语言%.2f四舍五入
#include <stdio.h>int main(){ double d = 1.199; printf("%.2f", d); return 0;}输出1.20如果不想让其四舍五入可以这样:#include <stdio.h>#include <math.h>int main(){ double d = 1.199; printf("%.2f", floor(d * 100) / 100); ret转载 2021-08-20 11:40:34 · 7339 阅读 · 0 评论 -
7-3 逆序的三位数 (10 分)
7-3 逆序的三位数 (10 分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123结尾无空行输出样例:321代码#include <stdio.h>int main (){ int N = 0,a = 0,b = 0,c = 0; int result = 0; scanf原创 2021-08-20 11:00:53 · 103 阅读 · 0 评论 -
7-2 然后是几点 (15 分)
7-2 然后是几点 (15 分)有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。输入格式:输入在一行中给出 2 个整数,分别是原创 2021-08-20 10:52:36 · 147 阅读 · 2 评论 -
6-7 统计某类完全平方数 (20 分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <math.h>int IsTheNumber ( const int N );int main(){ int n1, n转载 2021-08-19 17:39:58 · 73 阅读 · 0 评论 -
C语言条件运算符
先看一个errorerror: lvalue required as left operand of assignment|i == 0 ? X = 1.0 : X *= x;修改后i == 0 ? (X = 1.0) : (X *= x);也就是说条件运算符可以执行语句,当是赋值语句时要加括号规定优先级,不然会干扰程序判断。因为条件运算符作为三目运算符优先级低于所有其他运算符,赋值运算符=除外如果是数据就简单多了,比如i == 0 ? 1.0 : 5;(条件表达式) ? (结果1)原创 2021-08-19 11:51:49 · 183 阅读 · 0 评论 -
C语言形参
形参和实参区别形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函转载 2021-08-19 11:26:47 · 1918 阅读 · 0 评论 -
C语言的四舍五入实现
习题3-2 高速公路超速处罚 (15 分)按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。输入格式:输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。输出格式:在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是原创 2021-08-19 11:27:31 · 895 阅读 · 0 评论 -
C语言怎么输出百分号%
规律:printf函数中,当出现多个%时,由左至右,每两个%结合输出一个%#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ int c = 52; printf("% \n %% \n %%% \n %%%% \n %%%%% \n %%%%%%\n"); printf("%d %%d %%%d %%%%d %%%%%d %%%%%%d\n",c,原创 2021-08-17 21:37:38 · 4577 阅读 · 2 评论 -
简单冒泡排序
将5个数字按从小到大排序。#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ int x[5] = {0},temp = 0; for(int i = 0;i<5;i++) { scanf("%d",&x[i]); } //冒泡排序(升序) for(int j = 0;j<4;j++)//n个数只需扫原创 2021-08-17 20:57:13 · 51 阅读 · 0 评论 -
练习3-8 查询水果价格 (15 分)
练习3-8 查询水果价格 (15 分)给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。首先在屏幕上显示以下菜单:[1] apple[2] pear[3] orange[4] grape[0] exit用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。输入格式:原创 2021-08-17 17:44:16 · 74 阅读 · 0 评论 -
2000年不算在21世纪
练习3-5 输出闰年 (15 分)输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。想当然地以为21世纪是2000~2099,当然没有通过if(N >= 2000&&N <= 2099) { for(int i = 2000;i <= N;i++) { if(i%400 == 0||(i%4 == 0&&i%100原创 2021-08-17 16:25:18 · 448 阅读 · 0 评论 -
C语言空格怎么表示
1.直接敲空格就行,或者使用ASCII码值赋值为32。 空格没有转义字符。printf("12%c45 58",32);输出12 45 582.合法转义字符如下:\a 响铃(BEL) 、\b 退格(BS)、\f 换页(FF)、\n 换行(LF)、\r 回车(CR)、\t 水平制表(HT)、\v 垂直制表(VT) 0、\3.C语言中 char a[1]={’’}; 和 char a[1]={’ ‘}; 有什么区别啊? 是用’ ‘空格和空字符的概念 ‘‘表示为NULL 而’ ‘表示为空格。 cha转载 2021-08-17 15:48:17 · 42147 阅读 · 0 评论 -
数组部分笔记
对于数组的初始化需要注意以下几点:可以只给部分元素赋值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:int a[10]={12, 19, 22 , 993, 344};表示只给 a[0]~a[4] 5个元素赋值,而后面 5 个元素自动初始化为 0。当赋值的元素少于数组总体元素的时候,剩余的元素自动初始化为 0:对于short、int、long,就是整数 0;对于char,就是字符 ‘\0’;对于float、double,就是小数 0.0。我们可以通过下面的形式将数组的转载 2021-08-17 14:33:26 · 90 阅读 · 0 评论 -
C语言中定义变量位置
C标准的问题C89规定,在任何执行语句之前,在块的开头声明所有局部变量。即应该如下:定义变量只能在最开始,scanf等执行语句之前int N = 0; double sum = 0; scanf("%d",&N);在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。如下:int N = 0; scanf("%d",&N); double sum = 0;另一方面,编译器不同也不同,gcc编译器有很多扩展的功能转载 2021-08-17 13:40:07 · 1116 阅读 · 0 评论 -
函数scanf
本节介绍输入函数 scanf 的用法。scanf 和 printf 一样,非常重要,而且用得非常多,所以一定要掌握。 概述 scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为: # include <stdio.h> int scanf(const char *format, ...); 它有两种用法,或者说有两种格式。 1) scanf("输入控制符", 输入参数); 功能:将从键盘输入的字符转化为“输入控制...转载 2021-08-17 13:12:38 · 1052 阅读 · 0 评论 -
习题2-1 求整数均值 (10 分)
吐槽一下,因为少打了一个空格,PTA上老是不给我过,还一直报结果错误,误导我好久,即使是吹毛求疵,也应该提示我格式错误吧!!原题:本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出4个整数,其间以空格分隔。输出格式:在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。输入样例:1 2 3 4结尾无空行输出样例:Sum = 10; Average = 2.5原来要在“Su原创 2021-08-16 17:36:34 · 86 阅读 · 0 评论 -
C语言pow函数的精度问题
(1)pow函数返回值是double类型(2)pow原型double pow(double x,double y);(3)sqrt原型double sqrt(double x);当输出时函数值赋给整型就会出错:int main()d{ int N = 1; scanf("%d",&N); for(int i = 0;i<=N;i++) { printf("pow(10,%d) = %d\n",i,pow(10,i)); }原创 2021-08-16 16:54:56 · 1780 阅读 · 2 评论 -
习题6-6 使用函数输出一个整数的逆序数 (20 分)
本题要求实现一个求整数的逆序数的简单函数。函数接口定义:int reverse( int number );其中函数reverse须返回用户传入的整型number的逆序数。我的代码:int reverse( int number ){ int n = number,res = 0,t = 0; n = (n>=0)?n:-n; while(n != 0) { t = n%10; res = 10*res + t;原创 2021-02-09 12:38:41 · 369 阅读 · 0 评论 -
习题6-5 使用函数验证哥德巴赫猜想 (20 分)
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );void Goldbach( int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须原创 2021-02-08 14:02:58 · 95 阅读 · 0 评论 -
习题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数,相邻数字间有一个空格原创 2021-02-07 21:34:18 · 570 阅读 · 0 评论 -
习题6-3 使用函数输出指定范围内的完数 (20 分)
本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。函数接口定义:int factorsum( int number );void PrintPN( int m, int n );其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完原创 2021-02-07 20:54:09 · 165 阅读 · 0 评论 -
习题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返回要求的和。我的代码:int fn( int a, int n ){ int s = 0; int i = 0; for(i = 0;i<n;i++) { int w = 1,j = 0;原创 2021-02-07 17:45:46 · 128 阅读 · 0 评论 -
习题6-1 分类统计字符个数 (15 分)
本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。我的代码:void StringCount( char s[] ){ int i = 0; i原创 2021-02-07 12:10:47 · 224 阅读 · 0 评论 -
C语言5-7习题
本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:#include <stdio.h>#include <math.h>double funcos( double e, double x );int main(){ double e, x; scanf("%lf %lf", &e, &x); printf("cos(%.2f) = %.6f\n", x, funcos(e, x));原创 2021-02-04 19:40:25 · 529 阅读 · 0 评论 -
PTA习题
PTA习题PTA浙大版《C语言程序设计(第3版)》题目集5-6水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。#include <stdio.h>int narcissistic( int number );void PrintN( int m, int n );int main(){ int m, n; sc原创 2021-02-04 15:24:54 · 277 阅读 · 0 评论