1.数独数组

思路:我一开始没有读清楚题目,我以为必须是连续的9个数都包含才能够成为数独数组,所以我的思路就是新创建一个b数组,组成元素是按顺序的1-9,然后分别取原数组下表为0-8,1-9,2-10...以此类推,然后用qsort函数对这部分元素进行排序,再与b数组进行比较,如果一致,就可以成为数独数组,否则即不是数独数组。
#include <stdio.h>
#include <stdlib.h>
int int_cmp(const void *p1,const void *p2)
{
return (*(int*)p1-*(int*)p2);//这里是用了qsort函数
}
int Strcmp(int *s,int *b)
{
int flag=0,i=0;
for(i=0;i<9;i++)
{
if(s[i++]!=b[i++])//这里就是排序后挨个比较两个数组中的元素
{
flag=1;//一旦不相等,说明不满足条件,跳出循环
break;
}
}
if(flag==1)//表示不符合要求
return 0;
else
return 1;
}
int main()
{
int n=0,i=0,a=0,b=0,flag=0;
int arr[10005];
int brr[9]={1,2,3,4,5,6,7,8,9};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
//数独数组:当且仅当其每个长度为9的连续子数组,都包含1-9这九个数字
//a这个

最低0.47元/天 解锁文章
933

被折叠的 条评论
为什么被折叠?



