freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于自然語(yǔ)言思想的遞進(jìn)c_c教程3ppt-資料下載頁(yè)

2025-01-19 08:41本頁(yè)面
  

【正文】 ]。 for (j=0。 j3。 j++) { printf(\n請(qǐng)輸入整數(shù)編號(hào),回車(chē)結(jié)束: )。 InputStudent(students+j)。 } for (j=0。 j3。 j++) { OutputStudent(students+j)。 } puts(請(qǐng)輸入要查找人員姓名: \n)。 gets(tem)。 p=FindName(students, 3, tem)。 //調(diào)用數(shù)組內(nèi)根據(jù)姓名查找函數(shù) if (p!=NULL) OutputStudent(p)。 else printf(沒(méi)找到! \n)。 } void InputStudent(Student * p) {//結(jié)構(gòu)體輸入函數(shù) int i。 scanf(%d,amp。pid)。 getchar()。 printf(\n請(qǐng)輸入姓名字符串,回車(chē)結(jié)束 )。 gets(pname)。 printf(\n請(qǐng)輸入兩門(mén)課的整數(shù)成績(jī),每門(mén)成績(jī)以回車(chē)結(jié)束 \n)。 for (i=0。 i2。 i++) { scanf(%d,amp。pscore[i])。 getchar()。 } } void OutputStudent(Student *p) {//結(jié)構(gòu)體輸出函數(shù) printf(\n%d %s %d %d \n, pid, pname, \ pscore[0], pscore[1])。 } Student * FindName(Student * p, int n, char *name) { int i。 for (i=0。 in。 i++) { if (!strcmp(pname, name)) { return p。 } else p++。 } return NULL。 } 函數(shù)的嵌套調(diào)用 例 5. 9用弦截法求方程 x35x2+16x80=0的根 [1]。 include include float f(float x) {float y。 y=(()*x+)*。 return (y)。 } float xpoint(float x1, float x2) {float x。 x=(x1*f(x2)x2*f(x1))/(f(x2)f(x1))。 return (x)。 } float root(float x1, float x2) {float x, y, y1。 y1=f(x1)。 do { x=xpoint(x1, x2)。 y=f(x)。 if (y*y10) { y1=y。 x1=x。} else x2=x。 } while (fabs(y)=)。 return x。 } void main() {float x1, x2, f1, f2, x。 do{ printf(請(qǐng)輸入 x1, x2的值 : \n)。 scanf(%f %f, amp。x1, amp。x2)。 f1=f(x1)。 f2=f(x2)。 } while (f1*f2=0)。 x=root(x1, x2)。 printf(方程的一個(gè)根是 %, x)。 } 例 5. 10用遞歸法求 n![1]。 include float fac(int n) //定義遞歸形式的階乘函數(shù) { float f。 if (n0) {printf(n0, 數(shù)據(jù)錯(cuò)誤 !\n)。 return NULL。 } else if (n==0||n==1) f=1。 else f=fac(n1)*n。 //函數(shù) fac內(nèi)調(diào)用了函數(shù) fac return (f)。 } void main() {int n。 float y。 printf(\n請(qǐng)輸入一個(gè)整數(shù) : )。 scanf(%d, amp。n)。 y=fac(n)。 //調(diào)用階乘函數(shù) printf(%d! = %\n, n, y)。 } 圖 5. 12 例 圖 5. 13函數(shù)嵌套(遞歸)調(diào)用分析 ? 函數(shù)是復(fù)合的變量,變量是有指針的,函數(shù)也有指針。 ? 指向函數(shù)的指針變量,是一個(gè)指針變量,它的值是另一個(gè)同類(lèi)型函數(shù)的起始地址,或者說(shuō)成入口地址。 例 5. 11用指向函數(shù)的指針變量,根據(jù)不同輸入調(diào)用不同函數(shù),實(shí)現(xiàn)在一維整型數(shù)組中最大值或最小值的查找 include int FindMax(int * p, int n) 。 int FindMin(int * p, int n)。 int Find(int *p, int n)。 // 查找的框架函數(shù) void main() { int arry[5]={200, 4, 50, 1, 110}。 //定義一維整型數(shù)組 int val。 val=Find(arry, 5)。 //調(diào)用查找框架函數(shù) printf(要查找的值為: %d\n, val)。 } int Find(int *p, int n) { // 查找的框架函數(shù)定義 int tem。 int (*find)(int *p, int n)。 puts(請(qǐng)選擇: 1-查找最大值; 2-查找最小值。 )。 scanf(%d, amp。tem)。 switch (tem) { //將函數(shù)指針變量指向不同的查找函數(shù) case 1: find=FindMax。 //函數(shù)指針變量指向最大值查找函數(shù) break。 case 2: find=FindMin。 //函數(shù)指針變量指向最小值查找函數(shù) break。 } tem=find(p, n)。 //用函數(shù)指針變量調(diào)用它指向的函數(shù) return tem。 //返回查找到的值 } int FindMax(int * p, int n) {//數(shù)組中查找最大值 int i, max。 max =*p++。 for (i=1。 in。 i++) { if ( max*p ) max=*p。 p++。 } return max。 } int FindMin(int * p, int n) {//數(shù)組中查找最小值 int i, min。 min =*p++。 for (i=1。 in。 i++) { if ( min*p ) min=*p。 p++。 } return min。 } 例 5. 12用指向函數(shù)的指針變量做查找函數(shù)的形式參數(shù),通過(guò)傳遞不同的函數(shù),實(shí)現(xiàn)一維數(shù)組內(nèi)的最大值或最小值查找 include int FindMax(int * p, int n) 。 // 在數(shù)組中查找最大值 int FindMin(int * p, int n)。 // 在數(shù)組中查找最小值 int Find(int *p, int n, int (*pf)(int *, int))。//以指向函數(shù)的指針變量為形式參數(shù)的查找框架函數(shù) void main() { int arry[5]={200, 4, 50, 1, 110}。 //定義整型一維數(shù)組 int val。 int tem。 int (*find)(int *p, int n)。 //聲明函數(shù)的指針變量 puts(請(qǐng)選擇: 1-查找最大值; 2-查找最小值。 )。 scanf(%d, amp。tem)。 switch (tem) {//將不同函數(shù)做實(shí)際參數(shù) case 1: val=Find(arry, 5, FindMax)。 break。 case 2: val=Find(arry, 5, FindMin)。 break。 } printf(要查找的值為: %d\n, val)。 //輸出查找到的值 } int Find(int *p, int n, int (*pf)(int *, int)) {//查找框架函數(shù) int tem。 tem=pf(p, n)。 //用函數(shù)指針變量動(dòng)態(tài)調(diào)用不同的函數(shù) return tem。 //返回查找到的值 } int FindMax(int * p, int n) {//查找最大值函數(shù)的定義 int i, max。 max =*p++。 for (i=1。 in。 i++) { if ( max*p ) max=*p。 p++。 } return max。 } int FindMin(int * p, int n) {//查找最小值函數(shù)的定義 int i, min。 min =*p++。 for (i=1。 in。 i++) { if ( min*p ) min=*p。 p++。 } return min。 } main函數(shù)的參數(shù) 帶有參數(shù)的 main函數(shù)形式如下: void main(int argc, char *argv[] ) { } 例 5. 13用 main函數(shù)參數(shù)接收鍵盤(pán)輸入字符串,實(shí)現(xiàn)多個(gè)字符串的鏈接 include include void main(int argc, char * argv[]) { char str[50]。 //字符數(shù)組 str用于存放連接字符串 strcpy(str, argv[0])。 while (argc1){//如果后面還有字符串 ++argv。 //指針移動(dòng),指向下一個(gè)字符串 printf(%s\n, *argv)。 //輸出當(dāng)前指向的字符串 strcat(str, *argv)。 argc。 //計(jì)算剩余字符串?dāng)?shù) } putchar(39。\n39。)。 //換行 puts(str)。 //輸出連接后的字符串 } 動(dòng)態(tài)內(nèi)存管理函數(shù) ? 函數(shù) malloc()和 free()的聲明在頭文件 ? 函數(shù)的調(diào)用格式: – malloc(size)。 //size表示內(nèi)存字節(jié)數(shù) – free(pointer)。 //pointer是指向 malloc分配的內(nèi)存區(qū)的指針變量 例 5. 14圖 5. 16 例 基于指針數(shù)組的動(dòng)態(tài)內(nèi)存分配和釋放 define N 3 include include void release(int **p) //回收內(nèi)存函數(shù)定義 { int i,j。 for (i=0。 iN。 i++){ printf(\n)。 for (j=0。 ji+1。 j++) printf(\t%d, p[i][j])。 free(p[i])。 //釋放內(nèi)存 putchar(39。\n39。)。 } } void main() { int i, j。 int *p[N]。 //定義長(zhǎng)度 3的指針數(shù)組 for (i=0。 iN。 i++){ p[i]=(int *)malloc((i+1)*sizeof(int))。 //讓每個(gè)指針變量指向動(dòng)態(tài)分配的內(nèi)存區(qū) for (j=0。 ji+1。 j++) p[i][j]=j+1。 //給分配的內(nèi)存區(qū)賦值 } release(p)。 //回收內(nèi)存函數(shù) } 圖 5. 例
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1