189 8069 5689

c语言索引函数 查找函数c语言

C语言实现整型数组中查找指定元素的函数?

#includestdio.h

目前累计服务客户上千家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供成都网站建设、网站建设、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联公司始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。

int search(int a[], int n, int searchValue) {

int i;

for(i=0; in; i++) if(a[i]==searchValue) return i;

return -1;

}

int main() {

int i;

int a[10],find,idx;

for(i=0; i10; i++) {

printf("Input a[%d]:",i);

scanf("%d",a[i]);

}

printf("Input searchValue:");

scanf("%d",find);

idx=search(a,10,find);

if(idx!=-1) printf("pos=%d",idx);

else printf("not found");

}

index在c语言中是什么意思?

C语言中index并没有什么特别的含义啊。

那段话的意思:

从“prevEnd”开始,返回“str”数组中下个单词的第一个字符的索引。

“prevEnd”是字符数组“str”中的一个索引。

c语言索引计算公式是什么

#includestdio.h

typedef struct

{float a[30];

int top;

}shuju;

typedef struct

{char b[30];

int futop;

}fuhao;

void initstack(shuju *s)

{s-top=-1;

}

void initstackk(fuhao *s)

{

s-futop=-1;

}

int youxianji(char n) /*符号优先级比较*/

{

switch(n)

{case '#': return 0;

case '+': return 1;

case '-': return 1;

case '*': return 2;

case '/': return 2;

}

}

int shujujinzhan(shuju *s,float x) /*数据进栈*/

{

if(s-top==29)

return (false);

s-top++;

s-a[s-top]=x;

return(true);

}

char fuhaojinzhan(fuhao *l,char y) /*运算符进栈*/

{

if (l-futop==29)

return (false);

l-futop++;

y=l-b[l-futop];

return y;

}

float shujuchuzhan(shuju *s,float *x) /*数据出栈*/

{

if(s-top==-1)

return (false);

else

{

*x=s-a[s-top];

s-top--;

return *x;

}

}

int fuhaochuzhan(fuhao *s,char *x) /*运算符出栈*/

{

if(s-futop==-1)

return (false);

else

{

*x=s-b[s-futop];

s-futop--;

return(true);

}

}

float suzi(char i) /*数据组成*/

{ float z, j=0;

z=(float)(i-'0');

j=j*10+z;

return j;

}

float jisuan(float a,char b,float c) /*计算*/

{ float s;

switch(b)

{ case'+': s=float(a+b); break;

case'-': s=float(a-b); break;

case'*': s=float(a*b); break;

case'/': s=float(a/b); break;

}

return s;

}

int pangduanyunsuanfu(char i) /*判断运算符还是数据*/

{

if (i=='+'||i=='-'||i=='*'||i=='/')

return 1;

else

return 0;

}

void main()

{ char strink[60],k;

int i,n,m;

int a=0,j;

float z,s,h1,h2;

shuju q;

fuhao p;

initstack(q);

initstackk(p);

fuhaojinzhan(p,'#'); /*#进栈做栈底元素*/

printf("请输入计算公式\n");

gets(strink);

for (i=0;i60;i++)

{ if (strink[i]=='\0') /*判断字符串是否为空*/

break;

else

{j=pangduanyunsuanfu(strink[i]); /*判断是运算符还是数据*/

if (j==1)

{ a=i++;

n=youxianji(strink[i]);

m=youxianji(p.b[p.futop]);

if (n-m0) /*比较运算符的优先级*/

fuhaojinzhan(p,strink[i]); /*运算符进符号栈*/

else

{ k=fuhaochuzhan(p,k);

h1=shujuchuzhan(q,h1);

h2=shujuchuzhan(q,h2);

s=jisuan(h1,k,h2); /*出栈的两个元素与对应的运算符的计算*/

shujujinzhan(q,s); /*将计算的值回进数据栈中*/

}

}

else

{

z=suzi(strink[i]); /*对数据进行计算,*/

if (a!=i)

{ z=0;

shujujinzhan(q,z); } /*把得到相应的数据进栈*/

a=i++;

}

}

}

printf("%d",q.a[0]); /*输出数据栈的最后一个元素,就是公式对应的值*/

}

百度文库VIP已帮您省0元现在恢复最低仅需0.3元/天

立即续费

c语言数学计算公式

#includestdio.h

typedef struct

{float a[30];

int top;

}shuju;

typedef struct

{char b[30];

int futop;

}fuhao;

void initstack(shuju *s)

第 1 页

{s-top=-1;

}

void initstackk(fuhao *s)

{

s-futop=-1;

}

int youxianji(char n) /*符号优先级比较*/

{

switch(n)

{case '#': return 0;

c语言中,函数itoa有什么功能,怎么用?

itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使 用。但是,大多数的编译器(如Windows上的)通常在stdlib.h头文件中包含这个函数。在stdlib.h中与之有相反功能的函数是atoi。功能:把一整数转换为字符串。

用法

char *itoa(int value, char *string, int radix);

头文件: stdlib.h

程序例:

#include stdlib.h

#include stdio.h

int main()

{

int number = 123456;

char string[25];

itoa(number, string, 10);

printf("integer = %d string = %s\n", number, string);

return 0;

}

/* 实现itoa函数的源代码 */

char *myitoa(int num,char *str,int radix)

{

/* 索引表 */

char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

unsigned unum; /* 中间变量 *

int i=0,j,k;

/* 确定unum的值 */

if(radix==10num0) /* 十进制负数 */

{

unum=(unsigned)-num;

str[i++]='-';

}

else unum=(unsigned)num; /* 其他情况 */

/* 逆序 */

do {

str[i++]=index[unum%(unsigned)radix];

unum/=radix;

}while(unum);

str[i]='\0';

/* 转换 */

if(str[0]=='-') k=1; /* 十进制负数 */

else k=0;

/* 将原来的“/2”改为“/2.0”,保证当num在16~255之间,radix等于16时,也能得到正确结果 */

for(j=k;j=(i-1)/2.0+k;j++)

{

num=str[j];

str[j]=str[i-j-1+k];

str[i-j-1+k]=num;

}

return str;

}

itoa的第三个参数用于将数字转换成不同的进制。举个例子:

#include stdlib.h

#include stdio.h

int main(void)

{

int number = 12345;

char string[25];

itoa(number, string, 10); //按十进制转换

printf("integer = %d string = %s\n", number, string);

itoa(number, string, 16); //按16进制转换

printf("integer = %d string = %s\n", number, string);

return 0;

}

输出结果:

integer = 12345 string = 12345 --说明12345的十进制表示就是12345

integer = 12345 string = 3039 ——说明12345的十六进制表示是0x3039

但是要注意,itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。

用几进制表示吧:)

MSDN的例子

Example

/* ITOA.C: This program converts integers of various

* sizes to strings in various radixes.

*/

#include stdlib.h

#include stdio.h

void main( void )

{

char buffer[20];

int i = 3445;

long l = -344115L;

unsigned long ul = 1234567890UL;

_itoa( i, buffer, 10 );

printf( "String of integer %d (radix 10): %s\n", i, buffer );

_itoa( i, buffer, 16 );

printf( "String of integer %d (radix 16): 0x%s\n", i, buffer );

_itoa( i, buffer, 2 );

printf( "String of integer %d (radix 2): %s\n", i, buffer );

_ltoa( l, buffer, 16 );

printf( "String of long int %ld (radix 16): 0x%s\n", l, buffer );

_ultoa( ul, buffer, 16 );

printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul, buffer );

}

Output

String of integer 3445 (radix 10): 3445

String of integer 3445 (radix 16): 0xd75

String of integer 3445 (radix 2): 110101110101

String of long int -344115 (radix 16): 0xfffabfcd

String of unsigned long 1234567890 (radix 16): 0x499602d2

指定要转换的进制的基数,其值好象在1--36之间都可以

这个不是C标准库中的函数,而是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:

char str[255];

sprintf(str, "%x", 100); //将100转为16进制表示的字符串。

c语言函数从形式上分为哪两种

一种是用户自定义函数,就是自己根据功能的需要自己编写的函数;另一种是系统自带的函数,如sqrt(x)函数 (就是求x的二次方根),这样的可以直接用,前提是得在头文件中把它们包含进去。

在编程领域中,C语言的运用非常之多,它兼顾了高级语言的汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

扩展资料:

C语言包含有各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且多以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。

参考资料来源:百度百科-c语言

参考资料来源:百度百科--C语言函数

C语言中什么是索引??

1.索引表的类型可定义如下:

struct IndexItem

{

IndexKeyType index;

//IndexKeyType为事先定义的索引值类型

int start;

//子表中第一个元素所在的下标位置

int length;

//子表的长度域

};

2.首先根据给定的索引值K1,在索引表上查找出索引值等于K1的索引项,以确定对应子表在主表中的开始位置和长度,然后再根据给定的关键字K2,在对应的子表中查找出

3。关键字等于K2的元素。

设数组A是具有mainlist类型的一个主表,数组B是具有indexlist类型的在主表A上建立的一个索引表,m为索引表B的实际长度,即所含的索引项的个数,K1和K2分别为给定

带查找的索引值和关键字,并假定每个子表采用顺序存储,则索引查找算法为:

int Indsch(mainlist A, indexlist B, int m, IndexKeyType K1, KeyType K2)

{//利用主表A和大小为 m 的索引表B索引查找索引值为K1,关键字为K2的记录

//返回该记录在主表中的下标位置,若查找失败则返回-1

int i, j;

for (i = 0; i m; i++)

if (K1 == B[i].index)

break;

if (i == m)

return -1; //查找失败

j = B[i].start;

while (j B[i].start + B[i].length)

{

if (K2 == A[j].key)

break;

else

j++;

}

if (j B[i].start + B[i].length)

return j; //查找成功

else

return -1; //查找失败

}


网站栏目:c语言索引函数 查找函数c语言
网页链接:http://cdxtjz.cn/article/hpchoo.html

其他资讯