❶ c語言,多對一的對應關系查表該如何編寫
typedefstruct
{
uint32_tuiMin;
uint32_tuiMax;
uint32_tuiRet;
}Range2RetMapping_t;
//TODO::Howmanytypes?
#defineMAX_TYPE_CNT3
staticRange2RetMapping_tg_mapRange2Ret[]=
{
{1,10,1},
{11,20,2},
{21,30,3}
//TODO::addothersmapping.
};
//usage
uint32_tGetResult(uint32_tuiValue)
{
for(uint32_ti=0;i<MAX_TYPE_CNT;i++)
{
if(g_mapRange2Ret[i].uiMin<uiValue&&
g_mapRange2Ret[i].uiMax>uiValue)
{
returng_mapRange2Ret[i].uiRet;
}
}
return-1;
}
還有其他方式可以用,但是都得自己去建立映射關系才行。
會用stl容器嗎?
multimap,和map容器差不多,但是其key值可以重復的。方法網路。
❷ 單片機C語言查表,應該怎麼寫如下
一個for循環,看誰最貼近10.
intmin=w[0];
for(i=0;i<50;i++)
if(abs(w[i]-10)<abs(min-10))min=w[i];
❸ c語言怎麼查表
查表是數據結構中的一個概念。查表的前提是先建表。
在C語言實現中,建表也就是將一系列的數據,或者有原始數據中提取出的特徵值,存儲到一定的數據結構中,如數組或鏈表中。
查表的時候,就是對數組或鏈表查詢的過程。常用的方式有如下幾種:
1 對於有序數組,可以採用折半查找的方式快速查詢。
2 對於鏈表,可以根據鏈表的構建方式,進行針對性查詢演算法的編寫。
3 大多數情況,可以通過遍歷的方式進行查表。即從第一個元素開始,一直順序查詢到最後一個元素,逐一對比。
❹ C語言中能用查表方式訪問數據么
沒錯,在C語言中大部分情況下是用數組來實現查表的,當然,也不僅限於查表,通過指針的方式也是非常常見的,此外還有用結構來構造查找表的,甚至也有用switch-case、if-else等來構造小規模查找表。
❺ C語言查表
表就是自己做的.
舉個簡單的例子,根據公式計算後,0-100對應100度,那就直接根據AD值去對應溫度
❻ C語言怎麼實現查表
0-8之間的 設置為默認的就行了
❼ c語言編寫查表的程序
用數組來解決最簡單方便,自己參考一下吧
#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語言編一個課表查詢
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
struct classlist
{
char time[12];
char kecheng[10];
classlist *next;
};
void main()
{
classlist *head=(classlist *)malloc(sizeof(classlist));
head->next=NULL;
for(int i=0;i<3;i++)
{
classlist *s=(classlist *)malloc(sizeof(classlist));
s->next=head->next;
head->next=s;
if(i==0)
{
strcpy(s->time,"9:00-10:00");
strcpy(s->kecheng,"英語");
}
else if(i==1)
{
strcpy(s->time,"10:00-11:00");
strcpy(s->kecheng,"數學");
}
else if(i==2)
{
strcpy(s->time,"11:00-12:00");
strcpy(s->kecheng,"語文");
}
}
printf("請輸入時間(格式: 9:00-10:00)");
char time1[12];
scanf("%s",time1);
while(head->next!=NULL)
{
if(strcmp(head->next->time,time1)==0)
{
printf("%s",head->next->kecheng);
break;
}
else
head=head->next;
}
}
❾ 用C語言編寫一個查表程序
#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||b<0||b>80)
{
printf("輸入錯誤");
}
else
{
c=b/10;
printf("溫度是: %.1f",a[c]);
}
}
❿ C語言編寫一個查表程序
#include <stdlib.h>
#include <stdio.h>
const int LEN = 9;
const float value[9] = {29.4, 33.3, 37.2, 41.4, 45.8, 50.4, 55.2, 60.2, 65.6};
int hashfn(int key)
{
return (key % 9);
}
void main()
{
int temp, ret;
printf("Please input the temperature: ");
scanf("%d", &temp);
if ((ret = hashfn(temp)) >= 0)
printf("%.2f\n", value[ret]);
else
printf("Invalid\n");
system("PAUSE");
}