首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

tc运行有关问题 ,终于找到有关问题的所在,但不知为什么 :Invalid keyboard code specified

2012-02-22 
tc运行问题 ,终于找到问题的所在,但不知为什么 :Invalid keyboard code specified一个查找问题题目是:设某

tc运行问题 ,终于找到问题的所在,但不知为什么 :Invalid keyboard code specified
一个查找问题
题目是:设某字典组成如下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语言不是可以这样给数组赋值的吗?    


[解决办法]
不知道你编译怎么通过的?float f[17]={0,0.16,0.87,154,170,275,426,503,509,512,612,653,677,703,765,896,908};
最后的这个分号是中文的,在我的编译器下通不过.
[解决办法]
float f[17]={0,0.16,0.87,154,170,275,426,503,509,512,612,653,677,703,765,896,908};

这样初始化是可以的。
[解决办法]
ST.elem=(float *)malloc(17,sizeof(float));
改为:
ST.elem = (float *)malloc(17 * sizeof(float));

热点排行