编程题
这是一些oj题的记录
re怠惰的未禾
这里是未禾。祝未来无悔现在,去做自己喜欢的事吧!
展开
-
交换一个整数的二进制奇数位与偶数位
刷题总结原创 2022-08-12 01:46:54 · 464 阅读 · 6 评论 -
编程题---调整数组使奇数全部都位于偶数前面
调整数组使奇数全部都位于偶数前面原创 2022-07-04 15:30:07 · 251 阅读 · 0 评论 -
字符串逆序 - 多种方法实现
字符串逆序哦原创 2022-05-16 19:07:50 · 6815 阅读 · 0 评论 -
1215: 一道比较水的题
oj原创 2022-05-07 10:26:45 · 251 阅读 · 0 评论 -
1181: 谁的年龄最小(结构体专题)
题目描述设计一个结构体类型,包含姓名、出生日期。其中出生日期又包含年、月、日三部分信息。输入n个好友的信息,输出年龄最小的好友的姓名和出生日期。输入首先输入一个整数n(1<=n<=10),表示好友人数,然后输入n行,每行包含一个好友的信息:姓名(不超过8位)以及三个整数,分别表示出生日期的年月日。输出输出年龄最小的好友的姓名和出生日期,用空格隔开,出生日期的输出格式见输出样例。样例输入 Copy3Zhangling 1983 2 4Wangliang 1983原创 2022-03-29 21:19:30 · 238 阅读 · 0 评论 -
1180: 成绩统计(结构体专题)
题目描述从键盘输入若干个学生的信息,每个学生信息包括学号、姓名、3门课的成绩,计算每个学生的总分,输出总分最高的学生的信息。输入首先输入一个整数n(1<=n<=100),表示学生人数,然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及三个整数,表示语文、数学、英语三门课成绩,数据之间用空格隔开。输出输出总成绩最高的学生的学号、姓名、及三门课成绩,用空格隔开。若有多个最高分,只输出第一个。样例输入 Copy3541207010原创 2022-03-29 21:16:54 · 544 阅读 · 0 评论 -
1179: 带参宏定义(函数专题)
题目描述从键盘输入三个字符,用空格隔开,使用带参宏定义1中SWAP,将三个字符按从大到小的顺序排序输出。宏定义1:#define SWAP(a, b, t) { t=a; a=b; b=t; }请尝试,如果用宏定义2中的SWAP,主函数需要如何修改才能得到正确结果?宏定义2:#define SWAP(a, b, t) t=a; a=b; b=t;输入输入三个字符,用空格隔开输出输出占一行,包含三个字符,用空格隔开样例输入 Copyw a q样例输出 Copyw原创 2022-03-29 19:43:31 · 146 阅读 · 0 评论 -
1178: 单词数(不重复)
题目描述统计一篇文章里不同单词的总数。输入有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由字母和空格组成,没有标点符号,遇到#时表示输入结束。输出每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。样例输入 Copyyou are my friend#样例输出 Copy4#include <stdio.h>#include <string.h>#include <stdlib.h>int原创 2022-03-28 18:54:12 · 435 阅读 · 0 评论 -
1177: 按要求排序(指针专题)
输入n和n个整数,然后按要求排序,若输入1,请输出升序排序序列;若输入2,请输出降序排序序列,若输入3,请输出按绝对值升序排序序列。要求程序结构如下,请完善程序。void sort(int a[], int n, int (*cmp)());int CmpAsc(int x, int y); /*按升序要求判断两元素是否逆序*/int CmpDec(int x, int y); /*按降序要求判断两元素是否逆序*/int CmpAbsAsc(int x, int y); /*按绝对值升序要求判断.原创 2022-03-28 17:43:08 · 278 阅读 · 0 评论 -
1176: 查找最大字符串(指针专题)
题目描述从键盘上输入多个字符串(每个串不超过5个字符且没有空格),用”*****”作为串输入结束的标记。从所输入的若干字符串中,找出一个最大的串,并输出该串。要求最大串的查找通过调用编写的函数实现void find(char *name[], int n, int *p){//在包含n个字符串的二维字符数组name中,查找值最大的字符串,将其下标存入指针p所指内存单元}输入一行输入一个字符串,输入多行输出输出一个字符串,单独占一行。样例输入 Copyzzzdffd.原创 2022-03-27 19:26:50 · 1001 阅读 · 0 评论 -
1175: 矩阵转置(指针专题)
给定一个m行n列的二维矩阵,输出其转置矩阵。1<=m、n<=100000,可能是1行100000列,也可能是10000行50列。你可能不能预定义数组的大小了,你要学会使用动态内存分配哦。输入输入第一行是m和n,然后是一个m行n列的矩阵。输出输出转置后的矩阵样例输入 Copy3 41 2 3 4 5 6 7 8 9 5 4 6 样例输出 Copy1 5 92 6 53 7 44 8 6#include <stdio.h>#in原创 2022-03-27 18:40:56 · 248 阅读 · 0 评论 -
1173: 密码解密(指针专题)
题目描述有加密当然也有解密啦。那我们来解密吧。已知明文中只有数字和字母,且加密的规则如下:将每个字符的ascii码的值减去24作为每个字符加密过后的密文,例如'a'的ascii码的值为97,那么加密后就变成了73。"73"就是'a'的密文。所以,若密文是“757392”,则解密后的原文是“cat”。现在请你编写程序,将一段密文解密为原文。请定义并使用如下函数void decrypt(char *cipher, char *plain){//将密文cipher解密后将明文存入plain}输入原创 2022-03-24 13:07:05 · 194 阅读 · 0 评论 -
1172: 矩阵边界和(指针专题)
题目描述给定一个m行n列的二维矩阵,求其四周边元素和。1<=m、n<=100000,可能是1行100000列,也可能是10000行50列,但保证矩阵元素不多于500000。你可能不能预定义数组的大小了,你要学会使用动态内存分配哦。你可以动态申请m*n个内存单元,然后用一维数组来存储二维数组,二维数组元素a[i][j]对应一维数组a[i*n+j],i、j均从0开始。输入输入第一行是m和n,然后是一个m行n列的矩阵。输出输出一个整数,表示矩阵所有边界元素的和。样例输入 Cop原创 2022-03-23 21:28:16 · 131 阅读 · 0 评论 -
1171: 加密(指针专题)
题目描述将一段明文加密。加密的规则如下:将每个字符的ascii码的值减去24作为每个字符加密后的值,例如'a'的ascii码的值为97,那么加密后就变成了73。"73"就是'a'的密文。现在请你编写程序,对一段文字加密。请定义并使用如下函数:void encrypt(char *plain, char *cipher){//把原文字符串plain加密后存入字符串cipher}输入输入一串字符串,只包含数字和字母,最长为200.输出输出加密后的字符串。样例输入 Copyz原创 2022-03-23 20:43:26 · 318 阅读 · 0 评论 -
1170: 最长字符串(指针专题)
题目描述输入多个字符串,输出最长字符串。要求定义并使用函数maxLenStr(),void maxLenStr(char *str[], int n, int *max){从字符串数组str中找出最长的一个字符串,并将其下标存入形参指针max所指内存。}输入输入有多行,每行一个字符串,每个字符串长度不超过80,输入最多不超过100行,用****作为结束输入的标志,该行输入不用处理。输出输出最长的一个字符串。样例输入 CopyL love C programmingAC原创 2022-03-23 19:41:46 · 510 阅读 · 0 评论 -
1169: 大整数(指针专题)
题目描述输入3个大整数,位数不超过100位,按从小到大的顺序输出这三个整数。要求定义并使用如下函数比较两个大整数的大小。int cmp(char *a,char *b){//若大整数a大于b,返回1;//若a小于b,返回-1;// 若a与b相等,返回0}输入输入有3行,每行输入一个大整数,位数不超过100位,输入不含前导0。输出输出3行,即排序后的3个大整数。样例输入 Copy12345678901234567899999999999999911111111原创 2022-03-22 14:06:45 · 399 阅读 · 0 评论 -
未禾的C语言总结
字符串相关函数头文件#include <stdio.h>求长度 char s[10] = "hello world"; strlen(s),返回字符的个数 sizeof(s),返回字符串大小,包括'\0'复制函数 char s1[10];//字符数组 char s2[10] = "hello"; strcpy(s1,s2),把字符串s2整体复制到s1中,但s1中要有足够的内存 strncpy(s1,s2,n),对s2最多n个字符成立...原创 2022-03-19 11:16:10 · 392 阅读 · 0 评论 -
在线判题系统(字符串比较)
LittleTom开发了一个在线判题系统,判题系统需要把用户提交上来的代码编译成可执行文件,然后运行。而用户会提交什么样的代码是无法预知的,所以LittleTom做了充分的准备,比如阻止解题程序访问文件系统、阻止解题程序访问注册表、阻止解题程序修改系统设置、阻止解题程序关闭系统、阻止解题程序超限或非法使用内存、阻止解题程序的运行时间超过设定时间等。这些工作LitteTom都已完成。 还有一个待解决的问题是判断解题程序的正确性。判题系统需要把解题程序产生的输出文件和正确的输出文件进行比较,如果两个文件完..原创 2022-03-19 10:46:32 · 2037 阅读 · 0 评论 -
字符串(亲和串)
判断亲和串。亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。输入本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。输出如果s2是s1的亲和串,则输出"yes",反之,输出"no"。每组测试的输出占一行。样例输入 CopyAABCDCDAAASDASDFababa样例输出 Copyyesnono#inclu原创 2022-03-18 00:18:22 · 277 阅读 · 0 评论 -
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三
#include <stdio.h>int isre( int i,int b[]);//判断该三位数各位数字是否重复void divid( int i, int b[]);//组成b[i]的三个数字所存放的数组归零 int main(void){ int i,j,k; int cnt=0; int a[1000]={0};//储存每个三位数 int b[10]={0};//储存单个数字出现的次数 //用数组a[]储存不重复且个位十位部位0的三位数 for( i=1.原创 2022-03-03 18:07:27 · 677 阅读 · 0 评论 -
c语言把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。
把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。原创 2022-03-03 15:01:16 · 1518 阅读 · 0 评论 -
数组的一些总结
数组是什么?数组是一段连续的储存单元。一维数组定义类型 变量名[ 数组长度];声明(初始化)类型 变量名[ 数组长度] = {,};引用变量名[ 下标](下标不能超过定义的长度,且下标从0开始)应用1:排序(比较大小)2:二维数组定义类型 变量名[行长度][列长度];声明(初始化)类型 变量名[行长度][列长度] = {,};引用变量名[行下标][列下标](下标不能越界,从0开始)应用1:井字棋判断输赢2:排序3:字符数组定义char ch[];char原创 2022-01-16 16:43:14 · 179 阅读 · 0 评论