tc运行问题 ,终于找到问题的所在,但不知为什么 :Invalid keyboard code specified
sooho 2007-05-15 12:59:48 一个查找问题
题目是:设某字典组成如下D={0.16,0.87,154,170,275,426,503,509,512,612,653,677,703,765,896,908},用顺序查找检索字典中是否有元素612.
我的代码是
#include <stdio.h>
typedef struct {
float *elem;
int length;
}SSTable;//顺序查找表
int search_ssq(SSTable ST,float e){
ST.elem[0]=e;
for(int i=ST.length;ST.elem[i]!=e;--i);
retuen i;
} //检索
main(){
int k,j;
float f[17]={0,0.16,0.87,154,170,275,426,503,509,512,612,653,677,703,765,896,908};//f[0]=0是我加的,作为前哨。
SSTable ST;
ST.elem=(float *)malloc(17,sizeof(float));
ST.length=16;
for(j=0;j<17;j++)
ST.elem[j]=f[j];//将f[]的值赋给ST.elem.
//以上四行是初始化查找表,初始值是D
k=search_ssq(ST,612); //调用查找函数
if(k) printf("it is elem[%d]=%f",k,ST.elem[k]);
else printf("no,the elem is not in"); //输出结果
}
编译器是tcforwindows,操作系统xpsp2中文版 (美式键盘输入)
编译没有错,运行就出现:Invalid keyboard code specified
我已经找到是因为:float f[17]={0,0.16,0.87,154,170,275,426,503,509,512,612,653,677,703,765,896,908};这个赋值的问题,可是c语言不是可以这样给数组赋值的吗?