查表是數(shù)據(jù)結(jié)構(gòu)中的一個概念。查表的前提是先建表。
創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計公司的優(yōu)秀設(shè)計人員和策劃人員組成的一個具有豐富經(jīng)驗的團隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計師、平面廣告設(shè)計師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站改版、網(wǎng)頁設(shè)計制作、網(wǎng)站建設(shè)與維護、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務(wù)。
在C語言實現(xiàn)中,建表也就是將一系列的數(shù)據(jù),或者有原始數(shù)據(jù)中提取出的特征值,存儲到一定的數(shù)據(jù)結(jié)構(gòu)中,如數(shù)組或鏈表中。
查表的時候,就是對數(shù)組或鏈表查詢的過程。常用的方式有如下幾種:
1 對于有序數(shù)組,可以采用折半查找的方式快速查詢。
2 對于鏈表,可以根據(jù)鏈表的構(gòu)建方式,進行針對性查詢算法的編寫。
3 大多數(shù)情況,可以通過遍歷的方式進行查表。即從第一個元素開始,一直順序查詢到最后一個元素,逐一對比。
用數(shù)組來解決最簡單方便,自己參考一下吧
#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("地下水狀態(tài)說明:\n");
printf("0-潮濕或點滴狀出水\n" );
printf("1-淋雨狀或涌流狀出水,水壓=0.1MPa或單位出水量=10L/min\n");
printf("2-淋雨狀或涌流狀出水,水壓0.1MPa或單位出水量10L/min\n");
printf("請選擇地下水狀態(tài)[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 ; //題目中寫的有問題,應(yīng)該是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;
}
#includevoidmain(){inta[10]={9,16,25,32,2,1,29,81,36,21};intkey,low=0,high=10-1,mid,k=-1;inti,j,t;printf("pleaseinput:");scanf("%d",key);for(i=0;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}while(low=high){mid=(low+high)/2;if(a[mid]==key){k=mid;break;}elseif(a[mid]
#include "stdio.h"
void main()
{
float a[10] = {29.4,33.3,37.2,41.4,45.8,50.4,55.2,60.2,65.6};
int b,c;
printf("請輸入溫度: ");
scanf("%d",b);
if(b%10!=0||b0||b80)
{
printf("輸入錯誤");
}
else
{
c=b/10;
printf("溫度是: %.1f",a[c]);
}
}
首先,指針默認只有一個地址的長度的空間,存不了那么多的字符。
其次,傳值和傳地址一塌糊涂,完全就是亂寫么。
scanf的第二個參數(shù)是地址,如果本身不是指針則需要取址符。
我給你重寫了算了
#includestdio.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); /*申請一個內(nèi)存空間用來存放數(shù)據(jù),或者直接用一個大數(shù)組也可以*/