成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

在c語言中的遍歷函數(shù) c語言層序遍歷

c語言如何用函數(shù)指針利用循環(huán)結(jié)構(gòu)遍歷多個函數(shù)

#include stdio.h

目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、寶山網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

#define TYPE int

// 下面是加減乘除 4 個函數(shù)

TYPE add(TYPE a, TYPE b){return a+b;}

TYPE sub(TYPE a, TYPE b){return a-b;}

TYPE muti(TYPE a, TYPE b){return a*b;}

TYPE div(TYPE a, TYPE b){return a/b;}

int main(int argc, char *argv[])

{

// 函數(shù)指針數(shù)組,一共有 4 四個元素,分別是:

// 加減乘除 4 個函數(shù)的函數(shù)指針

// 你可以自己再添加其他函數(shù),而不用修改代碼。

TYPE (*functions[])(TYPE, TYPE) = {add,sub,muti,div};

// 函數(shù)指針數(shù)組中的元素個數(shù),這里是 4 個。

unsigned int n = sizeof(functions)/sizeof(functions[0]);

// 要進行運算的數(shù)字

TYPE a = 10, b = 5 , result;

int i=0;

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

{// 調(diào)用函數(shù)指針數(shù)組里面的所有函數(shù)。

result = functions[i](a,b);

printf("%d\n", result);

}

return 0;

}

C語言的遍歷算法

思路1:

寫出所有24種4個數(shù)的排列,存到一個數(shù)組里,假如數(shù)組是P[24][4];

那么可以

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

for (j = 0; j 24; j++)

for (k = 0; k 24; k++)

三層循環(huán),P[i],P[j],P[k]分別是矩陣的三個列

思路2:

利用dfs遞歸枚舉

int used[3][4];/*這個數(shù)組存放三個列中0~3這四個數(shù)是否已在這一列中出現(xiàn)過,需要提前清零*/

int mat[3][4];/*要枚舉的矩陣*/

void dfs(int col, int row)/*col表示現(xiàn)在已經(jīng)搜索到哪一列(從0開始編號),row表示這一列已經(jīng)填了幾行*/

{

int i;

if (col == 2 row == 4)

{

....../*運行到這里的時候,mat就是枚舉到的一個矩陣*/

return;

}

if (row == 4)

{row = 0; col++;}

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

if (!used[col][i])

{

used[col][i] = 1;

mat[col][row] = i;

dfs(col, row + 1);

used[col][i] = 0;

}

return;

}

調(diào)用的時候調(diào)用dfs(0,0)

c語言中,對二維數(shù)組的所有元素遍歷一次,有幾種循環(huán)方式,為什么?

1,行優(yōu)先和列優(yōu)先

有三種循環(huán)方式:for循環(huán),do-while循環(huán)

、while循環(huán),

字符串之間的比較,它有專門的字符串比較函數(shù):strcmp函數(shù).

2,不能用運算關(guān)系符

C語言遍歷所有文件的函數(shù)!

#include stdio.h

#include dos.h

#include errno.h

#include io.h

#include dirent.h

#include dir.h

#include string.h

#include sys\stat.h

#include "pm03a.h"

void main(int argc,char* argv[])

{

//printf("Number %d\n",ConfirmFileAttrib(argv[1]));

GetDirectory(argv[1]);

printf("\nSearch Over.\n");

}

//------------------------------------------------------------------

//pm03a.h

//------------------------------------------------------------------

void GetDirectory(char *DirectoryName);

int ConfirmFileAttrib(char* filename);

char *GetCurrentPath();

char* GetFullFileName(char *filename);

char *WillDeleteFile(char *FileName);

//--------------------------------------------------------

//--------------- 獲得文件屬性 ---------------------------

//--------------------------------------------------------

int ConfirmFileAttrib(char* filename)

{

int temp=0;

int attrib=(_rtl_chmod(filename,0));

if(attrib==-1)

{

switch(errno)

{

case ENOENT:

//printf("%s Path or file not found.\n",filename);

temp=0;

break;

case EACCES:

//printf("Permission denied.\n");

temp=-1;

break;

default:

//printf("Error number: %d", errno);

temp=-2;

break;

}

}

else

{

if(attrib FA_RDONLY)

{

temp=1;

//printf("%s is read-only.\n", filename);

}

if(attrib FA_HIDDEN)

{

temp=2;

//printf("%s is hidden.\n", filename);

}

if(attrib FA_SYSTEM)

{

temp=3;

//printf("%s is a system file.\n", filename);

}

if(attrib FA_DIREC)

{

temp=4;

//printf("%s is a directory.\n", filename);

}

if (attrib FA_ARCH)

{

temp=5;

//printf("%s is an archive file.\n", filename);

}

}

return temp;

}

//--------------------------------------------------------

//--------------------------------------------------------

//--------------- 獲取目錄流 -----------------------------

//--------------------------------------------------------

void GetDirectory(char *DirectoryName)

{

DIR* Directory_Point;

struct dirent *entry;

bool DirControl;

if((Directory_Point=opendir(DirectoryName))==NULL)

{

printf("Error opening directory!\n");

return;

}

else

{

if(strcmp(DirectoryName,"..")==0)

{

return;

}

if(strcmp(DirectoryName,".")==0)

DirControl=true;

else

DirControl=false;

chdir(DirectoryName);

//char *filename=DirectoryName;

//int k=creat(strcat(filename,".txt"),S_IWRITE);

while(bool(entry=readdir(Directory_Point)))

{

if(ConfirmFileAttrib(entry-d_name)==5) // 確定為文件屬性

{

// 文件過濾

WillDeleteFile(entry-d_name);

}

if(ConfirmFileAttrib(entry-d_name)==4) // 確定為目錄屬性

{

if(strcmpi(entry-d_name,"..")==0||strcmpi(entry-d_name,".")==0)

{

continue;

}

else

{

//printf("\n%s is direct\n\n",entry-d_name);

GetDirectory(entry-d_name);

}

}

}

if(!DirControl==true)

chdir("..");

closedir(Directory_Point);

}

}

//--------------------------------------------------------

//--------------------------------------------------------

//---------- 判斷文件類型以備過濾 ------------------------

//--------------------------------------------------------

char* GetFullFileName(char *filename)

{

char *FullFilename=GetCurrentPath();

if(strlen(FullFilename)=3)

{

strcat(FullFilename,filename);

}

else

{

strcat(FullFilename,"\\");

strcat(FullFilename,filename);

}

return FullFilename;

}

char *GetCurrentPath()

{

char path[1024]="";

strcpy(path, "X:\\"); /* fill string with form of response: X:\ */

path[0] = 'A' + getdisk(); /* replace X with current drive letter */

getcurdir(0, path+3); /* fill rest of string with current directory */

return path;

}

char *WillDeleteFile(char *FileName)

{

int len;

for(len=strlen(FileName);len=0;len--)

{

if(FileName[len]=='.')

break;

}

char* Retname;

int s=-1;

for(int i=len;i=strlen(FileName);i++)

{

Retname[s+=1]=FileName[i];

}

int i=-1;

if(Retname[1]=='~')i=0;

if(strcmpi(Retname,".bak")==0)i=0;

if(strcmpi(Retname,".obj")==0)i=0;

if(strcmpi(Retname,".tds")==0)i=0;

if(strcmpi(Retname,".dcu")==0)i=0;

if(strcmpi(Retname,".tmp")==0)i=0;

if(strcmpi(Retname,".ilk")==0)i=0;

if(strcmpi(Retname,".pch")==0)i=0;

if(strcmpi(Retname,".pdb")==0)i=0;

if(strcmpi(Retname,".tlb")==0)i=0;

if(strcmpi(Retname,".idb")==0)i=0;

if(strcmpi(Retname,".pdb")==0)i=0;

if(strcmpi(Retname,".r$p")==0)i=0;

if(strcmpi(Retname,".OBR")==0)i=0;

if(strcmpi(Retname,".mbt")==0)i=0;

if(strcmpi(Retname,".mrt")==0)i=0;

if(strcmpi(Retname,".csm")==0)i=0;

if(i==0)

{

remove(GetFullFileName(FileName));

printf("%s delete\n",GetFullFileName(FileName));

}

return Retname;

}

C語言中,對二維數(shù)組所有元素遍歷一次,有幾種循環(huán)方式?為什么?

1、行優(yōu)先和列優(yōu)先

有三種循環(huán)方式:FOR循環(huán)、DO-WHILE循環(huán) 、WHILE循環(huán),字符串之間的比較,它有專門的字符串比較函數(shù):strcmp函數(shù)。

2、不能用運算關(guān)系符

擴展資料:

二維數(shù)組A[m][n],這是一個m行,n列的二維數(shù)組。設(shè)a[p][q]為A的第一個元素,即二維數(shù)組的行下標從p到m+p,列下標從q到n+q,按“行優(yōu)先順序”存儲時則元素a[i][j]的地址計算為:

LOC(a[i][j]) = LOC(a[p][q]) + ((i ? p) * n + (j ? q)) * t

按“列優(yōu)先順序”存儲時,地址計算為:

LOC(a[i][j]) = LOC(a[p][q]) + ((j ? q) * m + (i ? p)) * t

存放該數(shù)組至少需要的單元數(shù)為(m-p+1) * (n-q+1) * t 個字節(jié)。

參考資料來源:

百度百科-二維數(shù)組

C語言遍歷目錄中的文件

使用dir.h庫的兩個函數(shù)即可:findfirst和findnext。

首先調(diào)用findfirst函數(shù)查找是否有滿足條件的某目錄文件,如果返回值非0則表示找不到返回。

如果findfirst返回值為0,則循環(huán)調(diào)用findnext函數(shù),根據(jù)返回值,如果為0,結(jié)束循環(huán),遍歷結(jié)束。否則循環(huán)調(diào)用findnext即可遍歷,直到返回非0值即可。

當然,這兩個函數(shù)需要定義一個結(jié)構(gòu)體來存儲函數(shù)返回的數(shù)據(jù)。結(jié)構(gòu)體如下:

struct

ffblk

{

char

ff_reserved[21];

/*DOS保留字*/

char

ff_attrib;

/*文件屬性*/

int

ff_ftime;

/*文件時間*/

int

ff_fdate;

/*文件日期*/

long

ff_fsize;

/*文件長度*/

char

ff_name[13];

/*文件名*/

}

將結(jié)構(gòu)體中的ff_name[13]顯示出來即可。

名稱欄目:在c語言中的遍歷函數(shù) c語言層序遍歷
鏈接分享:http://jinyejixie.com/article30/hehcso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、ChatGPT定制開發(fā)、

廣告

聲明:本網(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)

h5響應(yīng)式網(wǎng)站建設(shè)
长岭县| 淄博市| 民丰县| 镇赉县| 辽阳市| 大城县| 营山县| 上虞市| 将乐县| 东光县| 龙陵县| 山西省| 潜江市| 沙湾县| 海安县| 许昌市| 玉龙| 莱芜市| 图片| 双鸭山市| 靖西县| 密山市| 公主岭市| 芦山县| 黔西县| 九寨沟县| 桃园县| 墨玉县| 昌都县| 宁陵县| 上饶县| 白山市| 汉中市| 稻城县| 调兵山市| 土默特右旗| 惠水县| 新宁县| 山西省| 汝城县| 临夏市|