#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");
}
C語言中index并沒有什么特別的含義啊。
那段話的意思:
從“prevEnd”開始,返回“str”數組中下個單詞的第一個字符的索引。
“prevEnd”是字符數組“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) /*符號優先級比較*/
{
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;
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進制表示的字符串。
一種是用戶自定義函數,就是自己根據功能的需要自己編寫的函數;另一種是系統自帶的函數,如sqrt(x)函數 (就是求x的二次方根),這樣的可以直接用,前提是得在頭文件中把它們包含進去。
在編程領域中,C語言的運用非常之多,它兼顧了高級語言的匯編語言的優點,相較于其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。
擴展資料:
C語言包含有各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構成與硬件有關聯的較少,且C語言本身不提供與硬件相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
如果一個變量名后面跟著一個有數字的中括號,這個聲明就是數組聲明。字符串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
參考資料來源:百度百科-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://m.2m8n56k.cn/article0/hpchoo.html
成都網站建設公司_創新互聯,為您提供商城網站、動態網站、標簽優化、網站制作、外貿建站、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯