#includestdio.h
目前累計服務客戶上千家,積累了豐富的產(chǎn)品開發(fā)及服務經(jīng)驗。以網(wǎng)站設計水平和技術(shù)實力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站建設、網(wǎng)站建設、網(wǎng)站策劃、網(wǎng)頁設計、網(wǎng)絡營銷、VI設計、網(wǎng)站改版、漏洞修補等服務。創(chuàng)新互聯(lián)公司始終以務實、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設計的研究、對客戶形象的視覺傳遞、對應用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。
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");
}
C語言中index并沒有什么特別的含義啊。
那段話的意思:
從“prevEnd”開始,返回“str”數(shù)組中下個單詞的第一個字符的索引。
“prevEnd”是字符數(shù)組“str”中的一個索引。
#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) /*符號優(yōu)先級比較*/
{
switch(n)
{case '#': return 0;
case '+': return 1;
case '-': return 1;
case '*': return 2;
case '/': return 2;
}
}
int shujujinzhan(shuju *s,float x) /*數(shù)據(jù)進棧*/
{
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) /*數(shù)據(jù)出棧*/
{
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) /*數(shù)據(jù)組成*/
{ 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) /*判斷運算符還是數(shù)據(jù)*/
{
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]); /*判斷是運算符還是數(shù)據(jù)*/
if (j==1)
{ a=i++;
n=youxianji(strink[i]);
m=youxianji(p.b[p.futop]);
if (n-m0) /*比較運算符的優(yōu)先級*/
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); /*將計算的值回進數(shù)據(jù)棧中*/
}
}
else
{
z=suzi(strink[i]); /*對數(shù)據(jù)進行計算,*/
if (a!=i)
{ z=0;
shujujinzhan(q,z); } /*把得到相應的數(shù)據(jù)進棧*/
a=i++;
}
}
}
printf("%d",q.a[0]); /*輸出數(shù)據(jù)棧的最后一個元素,就是公式對應的值*/
}
百度文庫VIP已幫您省0元現(xiàn)在恢復最低僅需0.3元/天
立即續(xù)費
c語言數(shù)學計算公式
#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) /*符號優(yōu)先級比較*/
{
switch(n)
{case '#': return 0;
itoa是廣泛應用的非標準C語言擴展函數(shù)。由于它不是標準C語言函數(shù),所以不能在所有的編譯器中使 用。但是,大多數(shù)的編譯器(如Windows上的)通常在stdlib.h頭文件中包含這個函數(shù)。在stdlib.h中與之有相反功能的函數(shù)是atoi。功能:把一整數(shù)轉(zhuǎn)換為字符串。
用法
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;
}
/* 實現(xiàn)itoa函數(shù)的源代碼 */
char *myitoa(int num,char *str,int radix)
{
/* 索引表 */
char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned unum; /* 中間變量 *
int i=0,j,k;
/* 確定unum的值 */
if(radix==10num0) /* 十進制負數(shù) */
{
unum=(unsigned)-num;
str[i++]='-';
}
else unum=(unsigned)num; /* 其他情況 */
/* 逆序 */
do {
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
/* 轉(zhuǎn)換 */
if(str[0]=='-') k=1; /* 十進制負數(shù) */
else k=0;
/* 將原來的“/2”改為“/2.0”,保證當num在16~255之間,radix等于16時,也能得到正確結(jié)果 */
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的第三個參數(shù)用于將數(shù)字轉(zhuǎn)換成不同的進制。舉個例子:
#include stdlib.h
#include stdio.h
int main(void)
{
int number = 12345;
char string[25];
itoa(number, string, 10); //按十進制轉(zhuǎn)換
printf("integer = %d string = %s\n", number, string);
itoa(number, string, 16); //按16進制轉(zhuǎn)換
printf("integer = %d string = %s\n", number, string);
return 0;
}
輸出結(jié)果:
integer = 12345 string = 12345 --說明12345的十進制表示就是12345
integer = 12345 string = 3039 ——說明12345的十六進制表示是0x3039
但是要注意,itoa并不是一個標準的C函數(shù),它是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
指定要轉(zhuǎn)換的進制的基數(shù),其值好象在1--36之間都可以
這個不是C標準庫中的函數(shù),而是Windows平臺下擴展的,標準庫中有sprintf,功能比這個更強,用法跟printf類似:
char str[255];
sprintf(str, "%x", 100); //將100轉(zhuǎn)為16進制表示的字符串。
一種是用戶自定義函數(shù),就是自己根據(jù)功能的需要自己編寫的函數(shù);另一種是系統(tǒng)自帶的函數(shù),如sqrt(x)函數(shù) (就是求x的二次方根),這樣的可以直接用,前提是得在頭文件中把它們包含進去。
在編程領(lǐng)域中,C語言的運用非常之多,它兼顧了高級語言的匯編語言的優(yōu)點,相較于其它編程語言具有較大優(yōu)勢。計算機系統(tǒng)設計以及應用程序編寫是C語言應用的兩大領(lǐng)域。同時,C語言的普適較強,在許多計算機操作系統(tǒng)中都能夠得到適用,且效率顯著。
擴展資料:
C語言包含有各種控制語句僅有9種,關(guān)鍵字也只有32 個,程序的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構(gòu)成與硬件有關(guān)聯(lián)的較少,且C語言本身不提供與硬件相關(guān)的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統(tǒng)所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統(tǒng)。
如果一個變量名后面跟著一個有數(shù)字的中括號,這個聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,方括內(nèi)的索引值是從0算起的。
參考資料來源:百度百科-c語言
參考資料來源:百度百科--C語言函數(shù)
1.索引表的類型可定義如下:
struct IndexItem
{
IndexKeyType index;
//IndexKeyType為事先定義的索引值類型
int start;
//子表中第一個元素所在的下標位置
int length;
//子表的長度域
};
2.首先根據(jù)給定的索引值K1,在索引表上查找出索引值等于K1的索引項,以確定對應子表在主表中的開始位置和長度,然后再根據(jù)給定的關(guān)鍵字K2,在對應的子表中查找出
3。關(guān)鍵字等于K2的元素。
設數(shù)組A是具有mainlist類型的一個主表,數(shù)組B是具有indexlist類型的在主表A上建立的一個索引表,m為索引表B的實際長度,即所含的索引項的個數(shù),K1和K2分別為給定
帶查找的索引值和關(guān)鍵字,并假定每個子表采用順序存儲,則索引查找算法為:
int Indsch(mainlist A, indexlist B, int m, IndexKeyType K1, KeyType K2)
{//利用主表A和大小為 m 的索引表B索引查找索引值為K1,關(guān)鍵字為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語言索引函數(shù) 查找函數(shù)c語言
文章鏈接:http://jinyejixie.com/article0/hpchoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、動態(tài)網(wǎng)站、標簽優(yōu)化、網(wǎng)站制作、外貿(mào)建站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)