❶ 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");
}