【c语言oj练习】Online Judge Practice 6
Online Judge Practice 6
- c语言oj练习
- 一、Fgetc(fp)和fputc(ch,fp)的使用
- 二、fputs(s,fp)、fgets(s,n,fp)的使用
- 三、fscanf(fp,”%d %f”,&i,&j)和fprintf(fp,“%d %f”,i,j)的使用
- 四、fread(&s[i],sizeof(struct Student),1,fp)和fwrite(&s[i],sizeof(struct Student),1,fp)的使用
- 五、一维数组打印杨辉三角
- 六、天平砝码问题
- 七、从文件中读取文本,统计单词个数
- 八、头插法、尾插法
- 九、两个大整数相加
- 十、单个字符用单引号,多个字符用双引号
- 十一、十六进制数相加减
- 十二、天平砝码问题
- 十三、大整数相乘
- 十四、统计字符串中每个字符出现的次数
- 十五、出现乱码的解决方法
- 十六、完数
- 十七、求字符串中子串的个数
- 十八、随机数函数rand()
- 十九、求矩阵对角线元素的和
- 二十、二维数组打印杨辉三角
- 二十一、使用指针使数组循环后移
- 二十二、约瑟夫环小游戏
全国新增确诊连续两天为0
喜迎遍地飘零的时刻
海外游子也在回家
一起加油!
c语言oj练习
一、Fgetc(fp)和fputc(ch,fp)的使用
【注】
字符串的结束符用’\0’
文件的结束符用feof(fp)
【代码】
二、fputs(s,fp)、fgets(s,n,fp)的使用
【注】
n意味得到n-1个字符
【代码】
三、fscanf(fp,”%d %f”,&i,&j)和fprintf(fp,“%d %f”,i,j)的使用
【注】
记得使用rewind(fp)对文件指针重新定位
遇到空格或者回车换行会自动停住
【代码】
四、fread(&s[i],sizeof(struct Student),1,fp)和fwrite(&s[i],sizeof(struct Student),1,fp)的使用
【注】
Fread和fwrite第一个参数都要带取地址符
Fread和fwrite一般用于结构体
【代码】
五、一维数组打印杨辉三角
【代码】
六、天平砝码问题
【注】
六种砝码
分别重1,2,3,5,10,20克,每种砝码各有5,3,2,2,1,1个,计算能称出的重量和种类
【代码】
七、从文件中读取文本,统计单词个数
【注】
Isalpha()函数应引入头文件ctype.h
如果忘记可自己编写一个
Fprintf(fp,”%d”,num),fscanf(fp,”%d”,&num)遇到空格和回车换行即可终止
适合于读取单词
【代码】
八、头插法、尾插法
【注】
头插法一步到位
尾插法分两步:无数据节点和有数据节点
【代码】
九、两个大整数相加
【注】
用字符串接收
再转成字符数组(倒着放)
从头到尾模拟个十百千万相加,并实现进位
左后倒着输出即可得到结果
【代码】
十、单个字符用单引号,多个字符用双引号
【注】
空格为单个字符,用单引号
【代码】
十一、十六进制数相加减
【注】
输入两个数一个字符的形式,如“a+b”,放入scanf中,判断字符是加号还是减号
并对不同情况进行处理
【代码】
十二、天平砝码问题
【注】
一种砝码有五个,它的取法有:0、1、2、3、4、5
因此n数组两头都要取着
【代码】
十三、大整数相乘
【注】
【代码】
十四、统计字符串中每个字符出现的次数
【注】
使用链表
出现就添加上去,不出现就不添加上去
出现多次就num++
【代码】
十五、出现乱码的解决方法
【注】
在字符数组的末尾添加 ’\0’
【代码】
十六、完数
【注】
完数:除本身之外所有的因子相加等于本身的数
例如:6 = 1 + 2 + 3
【代码】
十七、求字符串中子串的个数
【注】
区分i、j下标对应不同的数组
【代码】
十八、随机数函数rand()
【注】
Rand()需要引入stdlib.h头文件
Int a = rand();//任意的数
Int a = rand()%10;//0~9内任意的数
若想求10~59内任意的数?
答:int a = rand()%(50)+10;
【代码】
十九、求矩阵对角线元素的和
【注】
两种方法:
1.双层循环:sum = sum + a[i][j]
2.单层循环:sum = sum + a[i][i]
【代码】
二十、二维数组打印杨辉三角
【代码】
二十一、使用指针使数组循环后移
【代码】
二十二、约瑟夫环小游戏
【注】
即为围坐在一起,数到三的排除,看最后剩下谁的游戏
【代码】