#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int abs(int a){
if(a>=0) return a;
return -a;
}
int len(int S[]){
return sizeof(S)/sizeof(S[0]);
}
int D(int a,int b, int c){
return abs(a-b)+abs(a-c)+abs(b-c);
}
int main(){
int S1[]={1,2,3,4,5,6,7,8,9};
int S2[]={1,2,3,7,8,9,10,11,12};
int S3[]={1,2,3,4,5,6,7,8,9,20};
int len1=sizeof(S1)/sizeof(S1[0]);
int len2=sizeof(S2)/sizeof(S2[0]);
int len3=sizeof(S3)/sizeof(S3[0]);
int index[3]={0,0,0};
while(index[0]!=len1&&index[1]!=len2&&index[2]!=len3){
while(index[0]!=len1-1&&D(S1[index[0]+1],S2[index[1]],S3[index[2]])<=D(S1[index[0]],S2[index[1]],S3[index[2]])) index[0]++;
while(index[1]!=len2-1&&D(S1[index[0]],S2[index[1]+1],S3[index[2]])<=D(S1[index[0]],S2[index[1]],S3[index[2]])) index[1]++;
while(index[2]!=len3-1&&D(S1[index[0]],S2[index[1]],S3[index[2]+1])<=D(S1[index[0]],S2[index[1]],S3[index[2]])) index[2]++;
printf("(%d,%d,%d)\n",S1[index[0]],S2[index[1]],S3[index[2]]);
index[0]++;
index[1]++;
index[2]++;
}
}
408代码2020年(C语言)
于 2023-11-17 22:28:54 首次发布
文章描述了一个C语言程序,通过定义abs、len和D函数,实现了一个在三个整数数组中找到和最小的三个数的索引的算法。
摘要由CSDN通过智能技术生成