十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
以經(jīng)給予解答,程序如下。歡迎加QQ群:218691837
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出牟定免費(fèi)做網(wǎng)站回饋大家。
#include stdio.h
#include stdlib.h
struct nn
{ int no;
int num;
};
typedef struct nn DATA;
int number( char * , DATA []);
int main( )
{
DATA b[100];
char sa[500];
int i, n;
gets( sa );
n = number( sa, b );
for ( i=0; in; i++ )
printf("%d %d\n", b[i].num, b[i].no );
system("pause");
}
//
#includestring.h
int number( char * str, DATA a[] )
{ int i,j,n,min=0,tag=0;
char *p;
int *t,temp;
p = strtok( str , " ");
for ( i = 0 ; p != NULL ; i++)
{ a[i].num = atoi(p);
p = strtok( NULL , " ");}
n = i;
t=(int *)malloc(n*4);
for(i=0;in;i++)
{*(t+i)=a[i].num;}
for(i=0;in-1;i++)
for(j=i+1;jn;j++)
{
if(*(t+i)*(t+j))
{
temp=*(t+i);
*(t+i)=*(t+j);
*(t+j)=temp;
}
}
//t_temp=(int *)malloc(n*4);
for(i=0;in;i++)
{
for(j=0;jn;j++)
{if(a[i].num==*(t+j))
{
a[i].no=j+1;
//continue;
}
}
}
for(i=0;in-1;i++)
{tag=0;
for(j=i+1;jn;j++)
{
if(a[i].no==a[j].no)
{
tag++;
// a[i].no = (a[i].no)-1;
//printf("tag=%d,no=%d",tag,a[i].no);
}
}
a[i].no=a[i].no-tag;
}
return n;
}
顧名思義,數(shù)據(jù)庫就是用來儲(chǔ)存數(shù)據(jù)的倉庫,比如你在百度知道上看到的這些海量的問題和解答,它們?cè)诰W(wǎng)絡(luò)上肯定要有個(gè)存放的地方啊,這個(gè)地方就是數(shù)據(jù)庫。
而函數(shù)庫的標(biāo)準(zhǔn)說法則是“動(dòng)態(tài)鏈接庫”(Dynamic Link Library),它們一般是以DLL文件的形式出現(xiàn)的,用來存放程序中需要重復(fù)調(diào)用或者需要與其他程序共享的一些公共函數(shù),C語言等編程語言所調(diào)用的函數(shù)就是從這里來的。數(shù)據(jù)庫與函數(shù)庫是兩碼事。
數(shù)據(jù)庫與C語言(或其他任何程序設(shè)計(jì)語言)之間是相互獨(dú)立的,本身并沒有直接關(guān)系,當(dāng)程序需要調(diào)用數(shù)據(jù)庫中的數(shù)據(jù)時(shí),它們就有關(guān)系了。比方說,你跟街上的超市之間本來是沒有啥關(guān)系的,但當(dāng)你需要到超市買東西時(shí),你們之間就發(fā)生關(guān)系了,明白沒有?
1、配置ODBC數(shù)據(jù)源。
2、使用SQL函數(shù)進(jìn)行連接。
對(duì)于1、配置數(shù)據(jù)源,配置完以后就可以編程操作數(shù)據(jù)庫了。
對(duì)于2、使用SQL函數(shù)進(jìn)行連接,參考代碼如下:
#includewindows.h
#includesql.h
#includesqlext.h
void?main()
{
HENV?henv;?//環(huán)境句柄
HDBC?hdbc;?//數(shù)據(jù)源句柄
HSTMT?hstmt;?//執(zhí)行語句句柄
unsigned?char?datasource[]="數(shù)據(jù)源名稱";?//即源中設(shè)置的源名稱
unsigned?char?user[]=?"用戶名";?//數(shù)據(jù)庫的帳戶名
unsigned?char?pwd[]=?"密碼";?//數(shù)據(jù)庫的密碼
unsigned?char?search[]="select?xm?from?stu?where?xh=0";
SQLRETURN?retcode;?//記錄各SQL函數(shù)的返回情況
//?分配環(huán)境句柄
retcode=?SQLAllocEnv(henv);?//?等介于?SQLAllocHandle(SQL_HANDLE_ENV,?SQL_NULL
,?henv);
//?設(shè)置ODBC環(huán)境版本號(hào)為3.0
retcode=?SQLSetEnvAttr(henv,?SQL_ATTR_ODBC_VERSION,?(void*)SQL_OV_ODBC3,?0);
//?分配連接句柄
retcode=?SQLAllocConnect(henv,hdbc);?//?等介于?SQLAllocHandle(SQL_HANDLE_DBC,?henv,?hdbc);
//設(shè)置連接屬性,登錄超時(shí)為*rgbValue秒(可以沒有)
//?SQLSetConnectAttr(hdbc,?SQL_LOGIN_TIMEOUT,?(SQLPOINTER)(rgbValue),?0);
//直接連接數(shù)據(jù)源
//?如果是windows身份驗(yàn)證,第二、三參數(shù)可以是
,也可以是任何字串
//SQL_NTS?即?"
retcode=?SQLConnect(hdbc,datasource,?SQL_NTS,?user,?SQL_NTS?,?pwd,?SQL_NTS?);
//分配語句句柄
retcode=?SQLAllocStmt(hdbc,hstmt);?//?等介于?SQLAllocHandle(SQL_HANDLE_STMT,?hdbc,?hstmt);
//直接執(zhí)行查詢語句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//將數(shù)據(jù)緩沖區(qū)綁定數(shù)據(jù)庫中的相應(yīng)字段(i是查詢結(jié)果集列號(hào),queryData是綁定緩沖區(qū),BUFF_LENGTH是緩沖區(qū)長(zhǎng)度)
SQLBindCol(hstmt,?i,?SQL_C_CHAR,?queryData[i-1],?BUFF_LENGTH,?0);
//遍歷結(jié)果集到相應(yīng)緩沖區(qū)?queryData
SQLFetch(hstmt);
/*
*對(duì)遍歷結(jié)果的相關(guān)操作,如顯示等
*/
//注意釋放順序,否則會(huì)造成未知錯(cuò)誤!
SQLFreeHandle(SQL_HANDLE_STMT,?hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,?hdbc);
SQLFreeHandle(SQL_HANDLE_ENV,?henv);
}
C語言的庫函數(shù)在LIB目錄里面。
庫函數(shù)是將函數(shù)封裝入庫,供用戶使用的一種方式。方法是把一些常用到的函數(shù)編完放到一個(gè)文件里,供不同的人進(jìn)行調(diào)用。調(diào)用的時(shí)候把它所在的文件名用#include加到里面就可以了。一般是放到lib文件里的。
擴(kuò)展資料:
C語言的語句十分簡(jiǎn)單,如果要使用C語言的語句直接計(jì)算sin或cos函數(shù),就需要編寫頗為復(fù)雜的程序。因?yàn)镃語言的語句中沒有提供直接計(jì)算sin或cos函數(shù)的語句。又如為了顯示一段文字,我們?cè)贑語言中也找不到顯示語句,只能使用庫函數(shù)printf。
C語言的庫函數(shù)并不是C語言本身的一部分,它是由編譯程序根據(jù)一般用戶的需要編制并提供用戶使用的一組程序。C的庫函數(shù)極大地方便了用戶,同時(shí)也補(bǔ)充了C語言本身的不足。事實(shí)上,在編寫C語言程序時(shí),應(yīng)當(dāng)盡可能多地使用庫函數(shù),這樣既可以提高程序的運(yùn)行效率,又可以提高編程的質(zhì)量。
數(shù)據(jù)庫是用來存入數(shù)據(jù)的倉庫。用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、查詢、更新、刪除等操作。但是C語言和數(shù)據(jù)庫是兩個(gè)東西,他們之間的關(guān)系就是C語言可以用來開發(fā)數(shù)據(jù)庫管理軟件,也可以通過C語言借助于SQL語句來操作數(shù)據(jù)庫。
C語言普適性最強(qiáng)的一種計(jì)算機(jī)程序編輯語言,它不僅可以發(fā)揮出高級(jí)編程語言的功用,還具有匯編語言的優(yōu)點(diǎn),因此相對(duì)于其它編程語言,它具有自己獨(dú)特的特點(diǎn)。具體體現(xiàn)在以下三個(gè)方面:
其一,廣泛性。C 語言的運(yùn)算范圍的大小直接決定了其優(yōu)劣性。C 語言中包含了34種運(yùn)算符,因此運(yùn)算范圍要超出許多其它語言,此外其運(yùn)算結(jié)果的表達(dá)形式也十分豐富。此外,C 語言包含了字符型、指針型等多種數(shù)據(jù)結(jié)構(gòu)形式,因此,更為龐大的數(shù)據(jù)結(jié)構(gòu)運(yùn)算它也可以應(yīng)付。
其二,簡(jiǎn)潔性。9 類控制語句和32個(gè)KEYWORDS是C語言所具有的基礎(chǔ)特性,使得其在計(jì)算機(jī)應(yīng)用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同 時(shí)還能夠支持高級(jí)編程,避免了語言切換的繁瑣。
擴(kuò)展資料
數(shù)據(jù)庫架構(gòu)
1、內(nèi)層:最接近實(shí)際存儲(chǔ)體,亦即有關(guān)數(shù)據(jù)的實(shí)際存儲(chǔ)方式。
2、外層:最接近用戶,即有關(guān)個(gè)別用戶觀看數(shù)據(jù)的方式。
3、概念層:介于兩者之間的間接層。
參考資料來源:百度百科--數(shù)據(jù)庫