pc端和移动端的网站区别是什么意思,静态网站如何入侵,17zwd一起做网店官网,网站开发最新流程本专栏为c语言练习专栏#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新#xff0c;通过每天练习#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字#xff1a;错误的集合 密码检查 #x1f493;博主csdn个人主页#xff1a;小小u… 本专栏为c语言练习专栏适合刚刚学完c语言的初学者。本专栏每天会不定时更新通过每天练习进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字错误的集合 密码检查 博主csdn个人主页小小unicorn ⏩专栏分类C语言天天练 代码仓库小小unicorn的代码仓库 关注我带你学习编程知识 Day1 题目一题目描述解题思路代码实现结果情况 题目二题目描述解题思路代码实现结果情况 总结 题目一
题目描述 题目来源错误的集合 集合 s 包含从 1 到 n 的整数。不幸的是因为数据错误导致集合里面某一个数字复制了成了集合里面的另外一个数字的值导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数再找到丢失的整数将它们以数组的形式返回。 解题思路 将数组排序之后比较每对相邻的元素即可找到错误的集合。 寻找重复的数字较为简单如果相邻的两个元素相等则该元素为重复的数字。 寻找丢失的数字相对复杂可能有以下两种情况 1.如果丢失的数字大于 111 且小于 nnn则一定存在相邻的两个元素的差等于 222这两个元素之间的值即为丢失的数字 2.如果丢失的数字是 111 或 nnn则需要另外判断。 为了寻找丢失的数字需要在遍历已排序数组的同时记录上一个元素然后计算当前元素与上一个元素的差。考虑到丢失的数字可能是 111因此需要将上一个元素初始化为 000。 1.当丢失的数字小于 nnn 时通过计算当前元素与上一个元素的差即可得到丢失的数字 2.如果 nums[n−1]≠n则丢失的数字是 nnn。 代码实现
int cmp(int* a, int* b)
{return *a - *b;
}int* findErrorNums(int* nums, int numsSize, int* returnSize)
{int* errorNums malloc(sizeof(int) * 2);*returnSize 2;qsort(nums, numsSize, sizeof(int), cmp);int prev 0;for (int i 0; i numsSize; i) {int curr nums[i];if (curr prev) {errorNums[0] prev;} else if (curr - prev 1) {errorNums[1] prev 1;}prev curr;}if (nums[numsSize - 1] ! numsSize) {errorNums[1] numsSize;}return errorNums;
}
结果情况 符合题目要求问题得到解决。
题目二
题目描述 题目来源密码检查 小明同学最近开发了一个网站在用户注册账户的时候需要设置账户的密码为了加强账户的安全性小明对密码强度有一定要求 密码只能由大写字母小写字母数字构成密码不能以数字开头密码中至少出现大写字母小写字母和数字这三种字符类型中的两种密码长度至少为8 现在小明受到了n个密码他想请你写程序判断这些密码中哪些是合适的哪些是不合法的。 输入描述 输入一个数n接下来有n(n≤100)行每行一个字符串表示一个密码输入保证字符串中只出现大写字母小写字母和数字字符串长度不超过100。 输出描述 输入n行如果密码合法输出YES不合法输出NO 解题思路
这道题的关键就是判断字符串长度和首元素即可。
代码实现
#includestdio.h
#includestring.hint main()
{char arr[101] { 0 };int n 0;scanf(%d, n);int i 0;int j 0;//控制总输入次数for (i 0; i n; i){int flag 0;int flag1 0;int flag2 0;scanf(%s, arr);int sz strlen(arr);//判断字符串长度和首元素if(arr[0] 0 arr[0] 9 || sz 8){printf(NO\n);continue;}//判断条件1,3for (j 0; j sz; j){if (arr[j] a arr[j] z)flag 1;else if (arr[j] A arr[j] Z)flag1 1;else if (arr[j] 0 arr[j] 9)flag2 1;else{printf(NO\n);continue;}}if (flag flag1 flag2 2)printf(YES\n);}return 0;
}结果情况 符合题目要求问题得到解决。
总结 文章到这里就要告一段落了有更好的想法或问题欢迎评论区留言。 希望今天的练习能对您有所收获咱们下期见