1. 查询某元素是否在数组中
int main(void) {// char i[10][2]={{1,7},{2,10},{5,2},{0,-1},{4,10},{10,1},{3,1},{0,8}};char z[10]={1,2,3,4,1,4,6,8,0,9};int zz=0; //标志位:0:在 1:不在char in=9; //输入数int t=0;do{t++;if(t>10){ //数组总元数,防止数组越界zz=1; //没有置no 标志位break;}}while(z[t-1]!=in);printf("%d\n",zz);return 0;
}
2. 统计数组中出现的元素,重复的只记一次
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/videodev2.h>
#include <string.h>
#include <sys/mman.h>
#include <linux/fb.h>int main(void) {char i[10][2]={{1,8},{2,8},{5,8},{0,-1},{4,10},{10,5},{3,5},{0,5}};char o[10][2]={};int t=0;for(int a=0;a<10;a++){if(t==0){o[t][0]=1;o[t][1]=i[a][1];t++;continue;}
//--------------------------------------int n=0;do{n++;if(n>t){o[t][1]=i[a][1];o[t][0]=1;t++;break;}}while(o[n-1][1]!=i[a][1]); }
//------------------------------------for(int a=0;a<t-1;a++){for(int b=0;b<2;b++){printf("%d ,",o[a][b]);}puts("");}return 0;
}
3. 统计数组中的元素,并计算重复元素出现的频率,可用于Z形排序的数据
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/videodev2.h>
#include <string.h>
#include <sys/mman.h>
#include <linux/fb.h>int main(void) {char i[10][2]={{1,8},{2,1},{5,8},{0,-1},{4,8},{10,5},{3,5},{0,9}};char o[10][2]={};int t=0;for(int a=0;a<10;a++){if(t==0){o[t][0]=1; //复制第一个元素o[t][1]=i[a][1];t++;continue;}
//--------------------------------------for(int b=0;b<t;b++){ //计算重复的次数if(o[b][1]==i[a][1]){o[b][0]=o[b][0]+1;}}int n=0; // 生成第一出现的元素do{n++;if(n>t){o[t][1]=i[a][1];o[t][0]=1;t++;break;}}while(o[n-1][1]!=i[a][1]);}
//------------------------------------for(int a=0;a<t-1;a++){for(int b=0;b<2;b++){printf("%d ,",o[a][b]);}puts("");}return 0;
}