本文目錄一覽:
C語言查找數組中的數據
#define IntSize sizeof(int)
#define StructSize sizeof(struct tagresult)
#includestdio.h
#includestdlib.h
#includestring.h
typedef int *ptint;
typedef struct tagresult
{
int v;
char bl;
}*ptresult;
int lessthan(const void *v1,const void *v2)
{
int i1=*((ptint)v1),i2=*((ptint)v2);
if(i1==i2)
return 0;
else if(i1i2)
return 1;
else
return -1;
}
int main()
{
int c,n,capacity=128,rlen=0,dlen;
ptint data=(ptint)calloc(capacity,IntSize);
ptresult result;
scanf(“%d”,n);
result=(ptresult)calloc(n,StructSize);
memset(result,0,n*StructSize);
while(n–0)
{
scanf(“%d”,c);
dlen=0;
for(;c0;c–)
{
if(dlen+1=capacity)
{
capacity*=2;
data=(ptint)realloc(data,capacity);
}
scanf(“%d”,data+dlen++);
}
scanf(“%d”,c);
//直接調用庫函數qsort進行快速排序,就不自己寫快速排序算法函數了
qsort(data,dlen,IntSize,lessthan);
if(c=dlen)
{
(*(result+rlen)).v=*(data+c-1);
(*(result+rlen)).bl=1;
}
rlen++;
}
for(n=0;nrlen;n++)
{
if(1==(*(result+n)).bl)
printf(“Case #%d:%d\n”,n+1,(*(result+n)).v);
else
printf(“Case #%d:-1\n”,n+1);
}
free(data);
free(result);
return 0;
}
c語言 數組查詢
#include stdio.h
#include string.h
typedef char* String;
String names[7] = {“Allen”, “Bob”};
int query(char const *name){
int index = 0;
while (*(names + index)){
//如果字符串相等就意味查詢到結果,break退出循環
if (strcmp(*(names + index), name) == 0){
break;
}
index++;
}
return index;
}
int main(){
int index = query(“Bob”);
printf(“%i\n”, index);
}
使用順序查找的方法,看程序!
運行結果,查詢Bob,Bob的下標為1,返回正確!
如何用c語言編寫查詢數組中的元素
#include
stdio.h
#include
stdlib.h
void
main()
{
int
b[7];
int
i,
j,
dup;
randomize();
/*
這一段代碼可保證數組
b
內的
7
個隨機數都不一樣
*/
for
(i
=
0;
i
7;
++i)
{
do
{
b[i]
=
rand()
%
36;
/*
產生隨機數
*/
dup
=
0;
/*
先假設沒有重複
*/
for
(j
=
0;
j
i
!dup;
++j)
/*
跟已經產生的數字一一比較
*/
{
if
(b[i]
==
b[j])
/*
如果重複了
*/
dup
=
1;
/*
就記住是重複了
*/
}
}
while
(dup);
}
/*
這一段只是把結果打出以作驗證
*/
for
(i
=
0;
i
7;
++i)
printf(“%d
“,
b[i]);
printf(“\n”);
}
如果有看不懂的地方,請繼續追問,一定會解釋清楚。
C語言數組的查找函數
#includestdio.h
int main()
{
int a[5];
int i,max,min;
printf(“input number:\n”);
for(i=0;i5;i++)
scanf(“%d”,a[i]);
max=a[0];
min=a[0];
for(i=0;i5;i++){
if(a[i]max)
max=a[i];
}
for(i=0;i5;i++){
if(a[i]min)
min=a[i];
}
for(i=0;i5;i++){
printf(“%d”,a[i]);
printf(” “);
}
printf(“\n”);
printf(“最大值為%d\n”,max);
printf(“最小值為%d\n”,min);
return 0;
}
原創文章,作者:ZDJG,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/134895.html