其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#include<stdio.h>
int Retrieve(int array[],int length,int x)/*形参x直接传值就可以了*/
int main()
{
int *a,x
int length,i
scanf("%d",&length)
a = (int)malloc(sizeof(int)*length)/*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/
用数组来解决最简单方便,自己参考一下吧#include <stdio.h>
int main()
{
char ch
int i,j,BQ
char * k1[3][4]={
{"0","0.1","0.2-0.3" ,"0.4-0.6"} ,
{"0.1" ,"0.2-0.3","0.4-0.6","0.7-0.9"} ,
{"0.2","0.4-0.6","0.7-0.9","1.0"} ,
}
printf("地下水状态说明:\n")
printf("0-潮湿或点滴状出水\n" )
printf("1-淋雨状或涌流状出水,水压<=0.1MPa或单位出水量<=10L/min\n")
printf("2-淋雨状或涌流状出水,水压>0.1MPa或单位出水量>10L/min\n")
printf("请选择地下水状态[0-2]:")
do {
scanf("%c",&ch )getchar()
} while ( ch >'2' || ch<'0' )
i=ch-'0'
printf("请输入BQ值:")
scanf("%d" , &BQ )
if ( BQ >450 ) j=0 //题目中写的有问题,应该是>450,不是451
else if ( BQ >350 ) j=1
else if ( BQ >250 ) j=2
else j=3
printf("K1=%s\n" , k1[i][j] )
system("pause")
return 0
}
查表是数据结构中的一个概念。查表的前提是先建表。在C语言实现中,建表也就是将一系列的数据,或者有原始数据中提取出的特征值,存储到一定的数据结构中,如数组或链表中。
查表的时候,就是对数组或链表查询的过程。常用的方式有如下几种:
1 对于有序数组,可以采用折半查找的方式快速查询。
2 对于链表,可以根据链表的构建方式,进行针对性查询算法的编写。
3 大多数情况,可以通过遍历的方式进行查表。即从第一个元素开始,一直顺序查询到最后一个元素,逐一对比。