C
alike_meng
好菜啊,怎么办
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最大公共子串
目前只会暴力求解 思路: 两层大循环。字符串1向后遍历,每次拿一个字符出来。字符串2从前往后找看哪个字符能和字符串1拿出来的字符匹配。匹配上第一个字符了就写一个小循环往后看一共能匹配多少个字符,记录下第一个匹配上字符的位置和长度,如果打破了最大字符串长度的记录就替换记录。 #include <stdio.h> #include <string.h> void sub(char* s1, char* s2); int main() { char s1[100], s2[100];原创 2022-03-01 21:44:20 · 261 阅读 · 0 评论 -
大数的加减
无小数无负数的大数加减 没仔细测过,不确定是不是完全正确 思路 加减操作都类似,把输入的字符串转化为整型的数组。然后把两个数组都倒过来。每一位分别相加减,然后处理进位和借位问题。得到的和差再倒过来输出。里面有些小坑必须自己动手去写代码才能感受到。 #include<stdio.h> #include<string.h> char s[100]; int num1[100] = { 0 }, num2[100] = { 0 }, sum[100] = { 0 }, dif[100] =原创 2022-03-01 00:18:12 · 391 阅读 · 0 评论 -
找规定的年龄
规则 某人的年龄的三次方是一个四位数,四次方是一个六位数。这个四位数和六位数共十个数字,分别是0-9的一个数字,互不相同,求这个年龄 思路: 初步确定一个范围,我就从1-100循环,满足四位数六位数的年龄应该就在这个范围里面。 然后把三次方,四次方得到的数字拆分成数组,为了区分数组中的数字是拆出来的还是数组自带的,将数组全部赋值为-1,用了一个十位数的数组。然后用到set的特性就是可以去重,把两个数组的数字都放到set里面去,如果不重复的话,此时set里的数就是0-9再加一个-1,共11位数就满足了。 想到原创 2022-02-27 23:44:01 · 329 阅读 · 0 评论 -
校验卡号正确性
规则 奇数位的和为s1,奇数位直接相加 偶数位的和为s2,偶数位*2,若小于等于9直接相加,若大于9,*2之后再-9。 若s1+s2为可以被10整除则卡号正确,否则错误 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int judge(char *card); char s[100]; printf("输入一串卡号"); scanf("%c", s); int c原创 2022-02-27 22:02:32 · 170 阅读 · 0 评论 -
彩票中了几位数
思路: 随机生成一个七位数为开奖号码。自己输入一个七位数为自己买的彩票。 然后写一个函数把七位数分解为一个数组,把开奖号码和自己的号码都传进去,然后得到两个数组,在比较对应位数上的值看中了几位数。 太久没写C了,碰到好多问题。 首先,rand()函数生成的随机数只能到32767,为了生成大一点的随机数用了两个rand()相乘 然后将数值分割成数组这个功能要调用两次,肯定得写一个方法来调。C语言函数的返回值是没有数组类型的,只能返回一个指针,指向数组首地址。这里又涉及到一些问题。首先就是在函数内定义一个数组,原创 2022-02-27 19:11:41 · 1001 阅读 · 0 评论 -
找参赛对手
两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为x,y,z 三人。已抽签决定 比赛名单。有人向队员打听比赛的名单。a 说他不和 x 比,c 说他不和 x,z 比,请编程序找出 三队赛手的名单。 参考 https://blog.youkuaiyun.com/lsx2596/article/details/109212225 思路: 如果不编程的话一眼就能看得出来谁和谁比。写代码的话需要三层循环,在最内层把谁不和谁比的条件加上。第二层第三层还得排除一下找到一样的比赛对手的情况。 三层循环的流程大概是这个样子原创 2022-02-26 23:14:16 · 237 阅读 · 0 评论 -
求与其他得分平均值差得最大的评分
有一堆评分。求一个评分,它与除自己外的其他评分的平均值差得最多。 思路: 对每个评分,求出其他评分的平均值。放在一个数组中。 在用一个数组来算,每个评分与其他评分的平均值的差,再取个绝对值。 循环一边第二个数组,求出差得最大的数。 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double max(double num[], int length); //评委个数 int原创 2022-02-26 22:52:29 · 601 阅读 · 0 评论 -
求4位数组成的最大数和最小数的差
求4位数组成的最大数和最小数的差。将每位数剥离下来放在数组里,对数组排序。然后在把最大数和最小数在循环重组装起来。 #include<stdio.h> #include<math.h> int main() { unsigned differFromMaxMin(unsigned num); unsigned n; scanf("%d", &n); differFromMaxMin(n); return 0; } unsigned differFromMaxMin(原创 2022-02-26 22:09:00 · 960 阅读 · 0 评论 -
最后留下来几号
n个人围成一圈,第一个人从1开始报数(从1到3),报到3的人退圈,最后留下来的是原来的几号 #include<stdio.h> int main() { int n,count = 0,i = 0,k = 0; printf("一共有几个人?"); scanf("%d", &n); int *p,number[50]; p = number; for (i = 0; i < n; i++) * (p + i) = i + 1; i = 0; while (cou原创 2022-02-25 22:25:53 · 262 阅读 · 0 评论 -
求一个N阶魔方阵
参考 https://www.runoob.com/w3cnote/c-print-magic-square.html 魔方阵说明: 魔方阵是一个N*N的矩阵; 该矩阵每一行,每一列,对角线之和都相等; 分析魔方针的数据特点 1.魔方阵是奇数阶数的。"1"放在第一行,中间一列;后续的数字按规律从1开始继续计算 2.从数字2开始至N*N各数按如下规律放在矩阵上: 每一个数存放的行比上一个数的行减1;每一个数存放的列比上一个数的列加1; (3,4说明在矩阵上边缘和右边缘的数怎么处理,5说明位置被占了怎么处理还原创 2022-02-24 10:58:05 · 331 阅读 · 0 评论
分享