
新手学C—OJ题为主
你在开玩笑吧
人生得意须尽欢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
空字符与空格
动手实践一下:include<stdio.h>int main(){ char ch1='\0', ch2='\0', ch3='\0', ch4='\0', a=97; printf("%c%c%c%c%c", ch1, ch2, ch3, ch4, a); return 0;}以上代码运行结果: a//前面是有四个位置的Process ...原创 2019-11-25 23:18:05 · 401 阅读 · 0 评论 -
字符串与字符数组
字符串与字符数组参考文章原创 2019-11-25 21:40:13 · 103 阅读 · 0 评论 -
关于printf输出字符串时宽度与精度的限制
include<stdio.h>#define BOOK "youn are very good"int main(){ printf("This copy of %8s sell for $%10.2f\n",BOOK,cost); /*虽然第一个转换说明为%8s,但指定的输出宽度小于实际宽度,则按实际输出,宽度自动增加,当大于实际宽度时则左补空格*/ ...原创 2019-11-13 23:47:27 · 3052 阅读 · 0 评论 -
字符串两边加双引号
方式一#include<stdio.h>#define Q "you are very good"int main(){ printf("%c%s%c",34,Q,34);//34是双引号对应的十进制ASCII值 return 0;}方法二(用转义序列)#include<stdio.h>#define Q "you are very go...原创 2019-11-13 17:38:57 · 2208 阅读 · 0 评论 -
printf中修饰符与标记的使用(转换字符串%m.nf)
转换字符串%m.nf中,m表宽度,n表精度。当没有m与n以及m与n之的小数点时,仅仅是%f时,默认输出的数据的小数点后面有六位数字。另:%.f与%.0f是一样的。当指定的输出宽度(宽度包括所有数字与小数点所占的位数)大于数据的实际宽度时,根据m的正负左补或右补空格直到满足宽度,当指定的输出宽度小于数据的的实际宽度时,则按实际位数输出(宽度自动增加)。对整数而言,按该数的实际宽度输出,对浮点...原创 2019-11-11 17:38:46 · 589 阅读 · 0 评论 -
用printf打印%号
#include<stdio.h>int main(){ printf("%%"); return 0;}运行即为打印%号,且后面不需要有待打印项原创 2019-11-10 17:39:41 · 881 阅读 · 0 评论 -
C语言中空格符、空字符、字符数组结束符、换行、回车的区别
参考文章转载 2019-11-09 21:55:11 · 834 阅读 · 0 评论 -
从技术层面看字符
char类型用于存储字符,但从技术层面上看,char类型是整数类型。因为char类型实际上储存的是整数而不是字符。计算机使用数字编码来处理字符,即用特定的整数表示特定的字符,美国常用的是ASCII编码,当然还有其他的编码。一个字符变量实际上被储存为1字节的整数值字符分为可打印字符与非打印字符,可打印字符包括字母,标点符号,数字等,非打印字符主要是一些代表行为的字符(如,退格,换行),具体见C ...原创 2019-11-09 21:35:15 · 113 阅读 · 0 评论 -
printf()中的*修饰符可以控制字段宽度
可以用*修饰符代替字段宽度,但还是要用一个参数告诉函数字段宽度应该是多少。也就是说,如果转换说明是% *d,那么参数列表中应包含 *和d对应的值。这个技巧也可用于浮点值指定精度和字段宽度。例如:#include <stdio.h>#include <stdlib.h>int main(){ int width,precision; int numbe...原创 2020-01-13 17:01:32 · 618 阅读 · 0 评论 -
字符串大小的比较规则
比较的时候,从字符串左边开始,一次比较每个字符,直接出现差异、或者其中一个串结束为止。比如ABC与ACDE比较,第一个字符相同,继续比较第二个字符,由于第二个字符是后面一个串大,所以不再继续比较,结果就是后面个串大。再如ABC与ABC123比较,比较三个字符后第一个串结束,所以就是后面一个串大。所以,长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。比较两个字符串的大小只能...原创 2019-12-15 09:51:08 · 2904 阅读 · 0 评论 -
求区间元素和
题目描述输入n和n个整数,从下标0开始按输入顺序连续存放在数组中。编程计算数组中下标处在指定区间内的所有元素的和。输入输入有3行:第一行是一个正整数n(n<100);第二行有n个整数;第三行有两个整数left和right,表示区间[left, right]。输出输出一个整数,即数组中下标处在指定区间[left, right]内的所有元素的和,若没有下标处在此区间的元素,则输出...原创 2019-12-12 19:35:17 · 1662 阅读 · 0 评论 -
1108打印数字图形(函数专题)
题目描述从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。要求在程序中定义并调用如下函数:PrintSpace(m)用来输出m个空格;PrintDigit(m)来输出一行中的数字串"12…m…21"(该行中的最大数字是m)。函数原型如下:void PrintDigit(int m);void PrintSpace(int m);对于C/C++代码的提交,本题要求必须通过定义Prin...原创 2019-12-07 11:06:19 · 430 阅读 · 0 评论 -
1105: 判断友好数对(函数专题)
题目描述输入两个正整数m和n,顺序输出m到n之间的所有友好数对。如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的。例如:1184和1210是友好数对,因为1184的因子之和为1+2+4+8+16+32+37+74+148+296+592=12101210的因子之和为1+2+5+10+11+22+55+110+121+242+605=1184要求程序定义一个f...原创 2019-12-05 22:04:43 · 603 阅读 · 0 评论 -
C语言错误:expected declaration or statement at end of input
出现此错误提示的原因很可能是你的代码中某个部分少了花括号但是编译器显示的出现错误的代码行往往是最后一行,你需要仔细寻找你的代码那个位置少了花括号,当然不同的编译器显示该error的原因可能不一样,但大部分是一样的,也有的说是因为某个函数或变量未声明,我用的是codeblocks在codeblocks上缺少花括号与某个函数或变量未声明出现的error是不样的。...原创 2019-12-05 17:01:25 · 12828 阅读 · 0 评论 -
1104求因子和(函数专题)
我第一次提交的代码:#include<stdio.h>#include<math.h>int FacSum(int n);int main(){ int n, sum; scanf("%d", &n); sum = FacSum(n); printf("%d", sum); return 0;}int Fac...原创 2019-12-05 15:59:54 · 558 阅读 · 0 评论 -
1103平均分绩点(函数专题)
题目描述平均学分绩点(Grade Point Average,即GPA)是以学分与绩点作为衡量学生学习的量与质的计算单位,以取得一定的学分和平均学分绩点作为毕业和获得学位的标准,实施多样的教育规格和较灵活的教学管理制度。大学里每一门课程都有一定的学分。只有通过这门课的考试,才能获得相应的学分。课程绩点的计算方法通常是:(百分制成绩-50)/10 取整。成绩100,对应绩点为5,成绩9099对应...原创 2019-12-03 14:06:01 · 1091 阅读 · 0 评论 -
warning: control reaches end of non-void function
控制到达非void函数的结尾,意思是你定义的函数本应是带有返回值的,但执行到函数末尾好像没有。但是下面的代码也会出现此警告:#include<stdio.h>double CancelFee(double price);int main(){ double n, back; scanf("%lf", &n); back = CancelFee...原创 2019-12-03 09:32:57 · 3981 阅读 · 0 评论 -
return; return 0; return -1; return 1;的区别
返回值int类型的函数返回值return;return;如果什么都不接的话,其实就是void类型函数的返回,返回后不再执行return后面的语句。如果函数执行成功返回0,不成功返回非0,一般情况下非0值常用-1来表示。return 0;return 0:一般用在主函数结束时,表示程序正常终止,即告诉系统程序正常。return 1;表示返回一个代数值,一般用在子函数结尾。表示程序...原创 2019-12-03 09:16:48 · 844 阅读 · 0 评论 -
return 0 return 1与return-1
1、返回值int 类型的函数返回:return语句用来结束循环,或返回一个函数的值。return 0:一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。return -1::表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败;以上两个是约定俗成,系统提供的函数绝大部分定义为int类型返回值的都是这样的。返回值是返回给系统用的,给系统看得。一般做调...转载 2019-12-03 09:00:48 · 1303 阅读 · 0 评论 -
ZZULIOJ99角谷猜想
我的第一次提交的代码(OJ上显示答案错误):#include<stdio.h>int main(){ int n, number = 0; while(scanf("%d", &n)!=EOF) { if(n == 1) { printf("%d", number); ...原创 2019-12-02 20:18:59 · 316 阅读 · 0 评论 -
计算平均成绩(函数专题)OJ97
题目描述输入某位同学各门课的成绩,输出平均成绩。输入的成绩均为五级制成绩,五级制成绩转换为百分之成绩的规则如下:'A’转换为百分之成绩为95分,'B’对应85分,C对应75分,'D’对应65分,'E’对应40分。 输出的平均成绩为一个实数,保留1位小数。要求程序定义一个getScore()函数和一个main()函数,getScore()函数返回一个等级对应的分数,其余功能在main()函数中实...原创 2019-12-02 13:12:09 · 1404 阅读 · 0 评论 -
ZZULI-OJ96水仙花数
题目描述春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。现在要求输出所有在m和n范围内的水仙花数。要求程序定义一个narcissus()函数和一个main()函数,narcissus()函数判断一个整数n是否为水鲜花数,其余功能在main()函数中实现。int n...原创 2019-12-01 21:22:10 · 974 阅读 · 1 评论 -
error: stray ‘\302’ in program 原因与解决办法
出现此错误提示让我很困惑,一般这种错误提示会出现在从其他地方拷贝代码的过程中,是指源程序中含有非法字符,需要将非法字符去掉。一般是由于coder使用中文输入法或者从别的地方直接复制粘贴代码造成的。代码中出现了中文空格,中文引号, 各种中文标点符号都会出现,简单修改一下就OK了。解决方法:1.把出错行的空格及其前后空格删掉重新打一下试试。2.把明显和其他标点符号颜色不同的改掉。(大部分编译器都...原创 2019-11-30 20:57:18 · 42323 阅读 · 1 评论 -
全局变量与局部变量
变量具有生命周期与作用域还是那句话实践出真知,用代码去验证二者的生命周期与作用域。局部变量:C语言中把在函数内部或者复合语句内部声明的变量称为局部变量,函数内部声明的局部变量的作用域从声明该变量的代码行开始一直到所在函数体的末尾,所声明的变量所占的储存单元是自动分配的,函数返回时收回分配,复合语句内的局部变量的作用域从声明处开始一直到该复合语句的末尾,存储单元也是再执行到该复合语句时自动分配,...原创 2019-11-26 15:21:20 · 166 阅读 · 0 评论 -
oj93验证哥德巴赫猜想
题目描述哥德巴赫猜想大家都知道一点吧。我们现在不是想证明这个结论,而是对于任给的一个不小于6的偶数,来寻找和等于该偶数的所有素数对。做好了这件实事,就能说明这个猜想是成立的。要求程序定义一个prime()函数和一个main()函数,prime()函数判断一个整数n是否是素数,其余功能在main()函数中实现。int prime(int n){//判断n是否为素数, 若n为素数,本函数返回...原创 2019-11-25 18:59:01 · 379 阅读 · 1 评论 -
求逆序数字
#include <stdio.h>#include <math.h> void main(){ int number, k, fig=0, i, j, num, sum=0; printf("请输入一个整数:"); scanf("%d",&number); k=number; while(k!=0) { ++fig; //fig用...原创 2019-11-24 10:25:57 · 859 阅读 · 0 评论 -
输出空心矩形(运用嵌套循环,一个控制换行,一个控制每一行的输出)
#include <stdio.h>int main(){ int w, h, i, j; printf("输入矩形的宽和高\n"); scanf_s("%d%d", &w, &h); if (w <= 0 || h <= 0) { printf("宽度和高度都要大于0\n"); ...原创 2019-11-21 21:46:47 · 1657 阅读 · 0 评论 -
统计单词的个数
输入一字符串,判断其中英文单词的个数代码:#include <stdio.h>int main(){ int i, sum = 0, word = 0; char string[100]; gets_s(string); for (i = 0; string[i] != '\0'; i++) if (string[i] == ' ') word = 0; ...原创 2019-11-19 21:52:14 · 339 阅读 · 0 评论 -
115数组最小值
数组最小值***时间限制: 1 Sec 内存限制: 128 MB##提交: 15838 解决: 7074[状态] [讨论版] [提交] [命题人:admin]题目描述数组a有n个元素,请输出n个元素的最小值及其下标。若最小值有多个,请输出下标最小的一个。注意,有效下标从0开始。输入输入分两行,第一行是一个正整数n(n<=1000),第二行是n个整数。输出输出占一行。输出...原创 2019-11-19 15:24:45 · 287 阅读 · 0 评论 -
首字母变大写(曾经让我怀疑人生)
题目描述输入一个只包含大小写英文字母和空格的句子,将每个单词的第一个字母改成大写字母。输入输入一个长度不超过100的英文句子。输出请输出按照要求改写后的英文句子。样例输入 Copyi like ACM样例输出 CopyI Like ACM我改了好多次后的答案:#include<stdio.h>#include<string.h>int main()...原创 2019-11-17 11:07:08 · 528 阅读 · 0 评论 -
关于scanf在读取数据时何时跳过空格,何时读取空格的思考总结
scanf函数使用空白(换行符,制表符,空格)把输入分为多个字段,在依次把转换说明和字段匹配时跳过字符,首先你要知道什么是转换说明(%d,%f等),但唯一例外的是%c,根据%c,scanf会读取每一个字符,包括空白。换句话说,除了%c模式,scanf在读取输入时会跳过非空白字符前的所有字符,然后一直读取字符,直到遇到空白字符或与正在读取的字符不匹配的字符,(转换说明符与其所对应的参数数据类型不一...原创 2019-11-16 11:51:12 · 8969 阅读 · 0 评论 -
再谈scanf的返回值以及其返回值的利用方式
关于scanf的返回值请参考我的另一篇文章以及另一篇博文关于scanf的返回值先看一下下面的题目://用代码表示以下测试条件//scanf()读取一个名为x的double类型值且失败scanf()成功读入一个整数答案如下:scanf("%lf",x) != 1//或者写成scanf("%lf",x) == 0也行scanf("%d",x) == 1在这里scanf的返回值...原创 2019-11-15 00:06:53 · 652 阅读 · 0 评论 -
新发现:转义序列可以在明示常量中应用
#include<stdio.h>#define BOOK "\a\"you are very good\""int main(){ float cost = 12.99; float percent = 80.0; printf("This copy of %s sell for $%.2f\n",BOOK,cost); printf("Th...原创 2019-11-13 19:58:08 · 132 阅读 · 0 评论 -
scanf的输入控制:只能控制长度不能控制精度
例如:现在我们键入一个实数,其整数部分为三位,小数部分为两位scanf("%3.2f",&m) 这种是非法的,scanf只能控制输入数据的长度,所以可以这样输入scanf("%6f",&m),意为输入一个长度为6的浮点数,换句话说其只能控制输入的宽度。这个问题可以参考文章:scanf的控制再看一个例子:scanf("%5d",&n) printf("%d",n...原创 2019-11-12 21:01:15 · 11823 阅读 · 4 评论 -
ZZULI《向Z同学学习》
题目描述Z同学为了实现暑假去云南旅游的梦想,决定以后每天只消费1元,每花k元就可以再得到1元,一开始Z同学有M元,问最多可以坚持多少天。输入输入2个整数M, k,(2 <= k <= M <= 1000)。输出输出一个整数,表示M元可以消费的天数。样例输入 Copy4 3样例输出 Copy5#include<stdio.h>int main()...原创 2019-11-12 17:27:17 · 517 阅读 · 1 评论 -
scanf("%c",&m)中%c前面加空格的作用
%c前面加空格不是必须的,但有了空格就可以忽略你输入的空格。例如:scanf(" %c" ,&m),你输入了’ a’(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,这个可以防止误操作,忽略空格输入,接受第一个非空格输入。参考内容:《C Primer Plus 》P95...原创 2019-11-12 15:49:13 · 1272 阅读 · 0 评论 -
回文数判断
参考文章转载 2019-11-09 11:21:07 · 127 阅读 · 0 评论 -
C语言二进制与十进制之间的转换
参考文章1转载 2019-10-29 18:12:09 · 641 阅读 · 0 评论 -
数在不同进制之间的转换
参考文章1原创 2019-10-29 16:52:30 · 171 阅读 · 0 评论 -
ZZULIOJ 字符分类统计所感:ASCII值与字符的关系
题目描述输入一行字符,以回车符作为输入结束的标志。统计其中英文字母、数字字符和其他字符的个数。输入多个字符,以回车符结束,回车符不作为有效字符。有效字符个数不超过100。输出输出分3行,格式见输出样例。样例输入 CopyAbse 4+5*3=?样例输出 Copyletter:4digit:3other:5#include<stdio.h>int main()...原创 2019-10-28 18:07:16 · 401 阅读 · 0 评论