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 · 218 阅读 · 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 · 318 阅读 · 0 评论 -
找规定的年龄
规则某人的年龄的三次方是一个四位数,四次方是一个六位数。这个四位数和六位数共十个数字,分别是0-9的一个数字,互不相同,求这个年龄思路:初步确定一个范围,我就从1-100循环,满足四位数六位数的年龄应该就在这个范围里面。然后把三次方,四次方得到的数字拆分成数组,为了区分数组中的数字是拆出来的还是数组自带的,将数组全部赋值为-1,用了一个十位数的数组。然后用到set的特性就是可以去重,把两个数组的数字都放到set里面去,如果不重复的话,此时set里的数就是0-9再加一个-1,共11位数就满足了。想到原创 2022-02-27 23:44:01 · 252 阅读 · 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 · 119 阅读 · 0 评论 -
彩票中了几位数
思路:随机生成一个七位数为开奖号码。自己输入一个七位数为自己买的彩票。然后写一个函数把七位数分解为一个数组,把开奖号码和自己的号码都传进去,然后得到两个数组,在比较对应位数上的值看中了几位数。太久没写C了,碰到好多问题。首先,rand()函数生成的随机数只能到32767,为了生成大一点的随机数用了两个rand()相乘然后将数值分割成数组这个功能要调用两次,肯定得写一个方法来调。C语言函数的返回值是没有数组类型的,只能返回一个指针,指向数组首地址。这里又涉及到一些问题。首先就是在函数内定义一个数组,原创 2022-02-27 19:11:41 · 873 阅读 · 0 评论 -
找参赛对手
两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为x,y,z 三人。已抽签决定 比赛名单。有人向队员打听比赛的名单。a 说他不和 x 比,c 说他不和 x,z 比,请编程序找出 三队赛手的名单。参考 https://blog.csdn.net/lsx2596/article/details/109212225思路:如果不编程的话一眼就能看得出来谁和谁比。写代码的话需要三层循环,在最内层把谁不和谁比的条件加上。第二层第三层还得排除一下找到一样的比赛对手的情况。三层循环的流程大概是这个样子原创 2022-02-26 23:14:16 · 184 阅读 · 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 · 484 阅读 · 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 · 814 阅读 · 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 · 220 阅读 · 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 · 247 阅读 · 0 评论