欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

包含c語言doit函數(shù)的詞條

有關(guān)數(shù)組的c語言編程題

第一題:doit()函數(shù)即可完成前移工作和輸出工作

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),武勝企業(yè)網(wǎng)站建設(shè),武勝品牌網(wǎng)站建設(shè),網(wǎng)站定制,武勝網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,武勝網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

#include stdio.h

const L=10;

void doit(int *a, int pos)

{

int i;

if(pos0 || posL-1)

{

printf("a[%d]不存在!\n", pos);

return;

}

else for (i=pos; iL-1; i++)

a[i] = a[i+1];

for(i=0; iL-1; i++) printf("%d ", a[i]);

printf("\n");

}

void main()

{

int a[L] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};

int n, i;

printf("數(shù)組原來的數(shù)據(jù): \n");

for(i=0; iL; i++) printf("%d ", a[i]);

printf("\n");

printf("從a[n]開始向前移位,其中n=");

scanf("%d", n);

doit(a, n-1);

}

第二題: doit()函數(shù)即可完成將數(shù)組a中所有質(zhì)數(shù)放入數(shù)組b中的任務(wù),最后返回值為b中質(zhì)數(shù)的個數(shù)

#include stdio.h

#include malloc.h

const N=26;

int doit(int *a, int *b)

{

int i, j=-1;

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

if (a[i]%2!=0)

{

j++;

b[j] = a[i];

}

return(j+1);

}

void main()

{

int a[N]={0,2,3,4,5,

7,8,11,23,

24,22,211,

45,8,7,14,

16,21,101,

-2,-1,0,9,

100,101,1};

int b[N];

int i, tot;

tot = doit(a, b);

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

printf("%d ",b[i]);

printf("\n");

}

用C語言的函數(shù)做冒泡法排序

太簡單,懶得答,抄來的:

Bubble Sort(冒泡法)

最簡單的排序方法是冒泡排序方法。這種方法的基本思想是,將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮。在冒泡排序算法中我們要對這個“氣泡”序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,并時刻注意兩個相鄰的元素的順序是否正確。如果發(fā)現(xiàn)兩個相鄰元素的順序不對,即“輕”的元素在下面,就交換它們的位置。顯然,處理一遍之后,“最輕”的元素就浮到了最高位置;處理二遍之后,“次輕”的元素就浮到了次高位置。在作第二遍處理時,由于最高位置上的元素已是“最輕”元素,所以不必檢查。一般地,第i遍處理時,不必檢查第i高位置以上的元素,因為經(jīng)過前面i-1遍的處理,它們已正確地排好序。這個算法可實現(xiàn)如下。

Bubble Sort程序:

STL C++程序:(VC++6.0通過)

#include "stdafx.h"

#include "iostream.h"

templateclass T

class doit{

private:

int x,y;

T temp;

public:

doit(T* in,int count)

{

for(y=0;ycount-1;y++)

{

for(x=1;xcount-y;x++)

{

if((*(in+x))(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

};

int main()

{

double a[4]={1.1,1.3,1.9,2.2};

doitdouble d(a,4);

for(int i=0;i4;i++)

{

couta[i]endl;

}

return 0;

}

C語言程序:(TC 2.0通過)

void doit(float* in,int count)

{

int x;

int y;

float temp;

for(y=0;ycount-1;y++)

{

for(x=1;xcount-y;x++)

{

if((*(in+x))(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

C語言 如何在一個函數(shù)中先后實行不同的功能

int doit(int x, int y,int (*fun)(int ,int ))

{

......................

a=(*fun)(x,y);

..................調(diào)用一個函數(shù);

return(a);

}

int max(int x,int y)

{

............

}

int min...................

...........連續(xù)四個函數(shù);

void mian()

{

.................

將tingcase=max ,min, .,............其中一個;就可以實現(xiàn)你要的功能了;

result=doit(x,y,tingcase);

}

主干部分就是這樣了,函數(shù)的實現(xiàn)部分。應(yīng)該知道了吧,望采納哦。嘻嘻

C語言中,宏替換的替換規(guī)則

簡單來說:宏定義又稱為宏代換、宏替換,簡稱“宏”。宏替換是C/C++的預(yù)處理中的一部分,在C++標(biāo)準(zhǔn)中有4條規(guī)則來定義替換。

規(guī)則1:實參替換。

本條規(guī)則描述帶參數(shù)的宏的替換過程。

對于宏定義中的形參,在替換列表中,如果不是作為#或##的操作數(shù),那么將對應(yīng)實參完全

展開(相當(dāng)于對實參進行求值),然后將替換列表中的形參替換掉.如果是#或##的操作數(shù),

那么不進行替換。

規(guī)則2:多次掃描。

在所有的形參替換為實參后,對結(jié)果進行再次掃描,如果發(fā)現(xiàn)還有可替換的宏,則進行替換,

否則中止。

規(guī)則3:遞歸替換抑制。

如果在替換列表中發(fā)現(xiàn)當(dāng)前正在展開的宏的名字,那么這里不進行替換.更進一步,在嵌套

的替換過程中發(fā)現(xiàn)已經(jīng)替換過的宏的名字,則不進行替換。

規(guī)則4:遞歸預(yù)處理抑制。

如果替換后的結(jié)果形成預(yù)處理指令,則不執(zhí)行這條預(yù)處理指令。

看幾個C++標(biāo)準(zhǔn)中的例子:

#define x 3

#define f(a) f(x * (a))

#undef x

#define x 2

#define g f

#define z z[0]

#define h g(~

#define m(a) a(w)

#define w 0,1

#define t(a) a

f(y+1) + f(f(z)) % t(t(g)(0) + t)(1);

g(x+(3,4)-w) | h 5) m(f)^m(m);

其結(jié)果分別是

f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t(1);

f(2 * (2+(3,4)-0,1)) | f(2 * ( ~ 5)) f(2 * (0,1))^m(0,1);

對于第一個,主要在于t(t(g)(0) + t)(1)的展開。

容易計算出最外層的t的實參是f(2 * (0)) + t,而作為t的參數(shù)傳入時其中的t是

正在被展開的宏,所以根據(jù)規(guī)則3,不對這個t進行處理,保持不變,得到f(2 * (0)) + t(1)。

對于第二個,h 5)被替換為g(~5),應(yīng)用規(guī)則2,被替換為f(2 * ( ~ 5))。

而m(m)首先被替換為m(w),然后應(yīng)用規(guī)則2再次進行替換,但是m已經(jīng)是替換過的了,所以保持

不變,只對w進行替換。

#define str(s) # s

#define xstr(s) str(s)

#define debug(s, t) printf("x" # s "= %d, x" # t "= %s", \

x ## s, x ## t)

#define INCFILE(n) vers ## n /* from previous #include example */

#define glue(a, b) a ## b

#define xglue(a, b) glue(a, b)

#define HIGHLOW "hello"

#define LOW LOW ", world"

debug(1, 2);

fputs(str(strncmp("abc\0d", "abc", ’\4’) /* this goes away */

== 0) str(: @\n), s);

#include xstr(INCFILE(2).h)

glue(HIGH, LOW);

xglue(HIGH, LOW)

其結(jié)果分別是

printf("x" "1" "= %d, x" "2" "= %s", x1, x2);

fputs("strncmp(\"abc\\0d\", \"abc\", ’\\4’) = = 0" ": @\n", s);

#include "vers2.h"

"hello";

"hello" ", world"

關(guān)鍵是glue和xglue.

對于glue(HIGH, LOW),首先有一個規(guī)則1的抑制,得到HIGHLOW;的結(jié)果,然后二次掃描,得到

"hello";

對于xglue(HIGH, LOW)沒有抑制效果,所以對參數(shù)求值,分別得到HIGH和LOW ", world",即

glue(HIGH, LOW ", world")。

然后進行連接操作得到HIGHLOW ", world",最后再掃描一次得到"hello" ", world"

如果考慮字符串的自然的連接,就可以得到"hello, world"了。

擴展資料

宏語言是一類編程語言,其全部或多數(shù)計算是由擴展宏完成的。宏語言并未在通用編程中廣泛使用,但在文本處理程序中應(yīng)用普遍。例如, C preprocessor C預(yù)處理器Internet Macros(iOpus) M4(如前所述,源于ATT,捆綁于Unix)

宏定義

c程序提供的預(yù)處理功能之一。包括帶參數(shù)的宏定義和不帶參數(shù)的宏定義。具體是指用一個指定的標(biāo)志符來進行簡單的字符串替換或者進行闡述替換。形式為:

#define標(biāo)志符[(參數(shù)表)] 字符串

宏名

在上定義中的標(biāo)志符被稱為“宏名”。

宏展開

在c程序編譯時將宏名替換成字符串的過程稱為“宏展開”。

宏語言是一類編程語言,其全部或多數(shù)計算是由擴展宏完成的。宏語言并未在通用編程中廣泛使用, 但在文本處理程序中應(yīng)用普遍。例如,

C preprocessorC 預(yù)處理器

Internet Macros(iOpus)

M4(如前所述,源于ATT,捆綁于Unix)

參考資料來源:百度百科-宏

一個關(guān)于C語言編程的問題。好的答案我在2+分。急~~~

//此程序可計算四則混合運算,輸入時直接輸入數(shù)學(xué)表達式,如2+9*5/3-1.......

//應(yīng)注意的是,若有除法則只能取整。

#includemath.h

#includestdio.h

#includestring.h

#includestdlib.h

#includealloc.h

#define N 30

char *qkh(char *p);

char *ccf(char *p);

char *jjf(char *p);

char *zkh(char *p);

void hy(char *temp,char *p,int n);

int i=0;

void main()

{

char *s2,*p1=NULL,*temp;s2=(char *)malloc(N);clrscr();

gets(s2);

for(;*(s2+i)!='\0';i++)

{

p1=zkh(s2);

if(p1!=NULL)

{

i=1;

while(*(p1+i)!=')')

i++;

temp=qkh(p1);

hy(temp,p1-1,i+2);

i=0;

}

else

{

s2=ccf(s2);

s2=jjf(s2);

}

}

printf("\nthe value is %s",s2); getch();

}

char *qkh(char *p)

{

char *p1;

*(p+i)='\0';

p1=(char *)malloc(strlen(p));

strcpy(p1,p);

p1=ccf(p1);

p=jjf(p1);

return p;

}

void hy(char *sum,char *s2,int n)

{

strcat (sum,s2+n);

strcpy(s2,sum);

}

char *ccf(char *s2)

{

int i;

char *a,*b,*sum,*temp,*a1,*b1;

for (i=1;*(s2+i)!='*'*(s2+i)!='/'*(s2+i);i++);

if(*(s2+i)=='\0')

return s2;

else

{

char f1=*(s2+i),f2;

int x=1;

for (;(i-x)(*(s2+i-x)!='+'*(s2+i-x)!='-');x++);

*(s2+i)='\0';

if(i-x) a1=s2+i-x+1;

else

a1=s2+i-x;

a=(char *)malloc(strlen(a1));

strcpy(a,a1);

*(s2+i)=f1;

for(x=2;*(s2+i+x)!='+'*(s2+i+x)!='-'*(s2+i+x)!='*'*(s2+i+x)!='/'*(s2+i+x);x++);

f2=*(s2+i+x);

*(s2+i+x)='\0';

b1=s2+i+1;

b=(char *)malloc(strlen(b1));

strcpy(b,b1);

*(s2+i+x)=f2;

{

int a1,b1;

sum=(char *)malloc(strlen(a)+strlen(b));

a1=atoi(a);b1=atoi(b);

if(f1=='*')

itoa(a1*b1,sum,10);

else

itoa(a1/b1,sum,10);

}

{

int m=i;while(*(s2+m)!='+'*(s2+m)!='-'m)m--;

if(m)hy(sum,s2+m+1,i-1-m+x);

else

hy(sum,s2,i+x);}

for(i=1;(*(s2+i)!='*'*(s2+i)!='/')*(s2+i);i++);

if(*(s2+i)=='\0')

return s2;

else

ccf(s2);

}

}

char *zkh(char *p)

{

int i;

for (i=0;*(p+i)!=')'*(p+i);i++);

if(!(*(p+i))) return NULL;

else

{

int a;

for (a=i-1;*(p+a)!='(';a--);

return p+a+1;

}

}

char *jjf(char *s2)

{

int i;

char *a,*b,*sum,*temp,*a1,*b1;

for (i=1;*(s2+i)!='+'*(s2+i)!='-'*(s2+i);i++);

if(*(s2+i)=='\0')

return s2;

else

{

char f1=*(s2+i),f2;

int x=1;

*(s2+i)='\0';

a1=s2;

a=(char *)malloc(strlen(a1));

strcpy(a,a1);

*(s2+i)=f1;

for(x=2;*(s2+i+x)!='+'*(s2+i+x)!='-'*(s2+i+x);x++);

f2=*(s2+i+x);

*(s2+i+x)='\0';

b1=s2+i+1;

b=(char *)malloc(strlen(b1));

strcpy(b,b1);

*(s2+i+x)=f2;

{

int a1,b1,m;

sum=(char *)malloc(strlen(a)+strlen(b));

a1=atoi(a); b1=atoi(b);

if(f1=='+')

{m=a1+b1; itoa(m,sum,10); }

else

{m=a1-b1; itoa(m,sum,10);}

}

hy(sum,s2,i+x);

for(i=1;(*(s2+i)!='+'*(s2+i)!='-')*(s2+i);i++);

if(*(s2+i)=='\0')

return s2;

else

jjf(s2);

}

}

轉(zhuǎn)了我同學(xué)的 貌似還要改下才能符合要求

c語言中的“宏”是指什么?

宏是一種預(yù)處理指令,它提供了一種機制,可以用來替換源代碼中的字符串。

1、條件編譯:

C語言中,預(yù)處理過程讀入源代碼,檢查包含預(yù)處理指令的語句和宏定義,并對源代碼進行相應(yīng)的轉(zhuǎn)換,預(yù)處理過程還會刪除程序中的注釋和多余的空白符號。

預(yù)處理指令是以#開頭的代碼行,#必須是該行除了空白字符外的第一個字符。#后是指令關(guān)鍵字,在#和指令關(guān)鍵字之間允許存在若干空白字符。

使用宏進行條件編譯的用法與使用宏防止多重引用類似。示例如下:

使用條件編譯,方便程序員在調(diào)試程序的過程中,執(zhí)行一些在程序發(fā)布后并不需要執(zhí)行的指令。只要在需要調(diào)試的代碼前加上_DEBUG的定義,就可以在調(diào)試程序的過程中輸出調(diào)試信息。

這樣方便查看程序在運行過程中有沒有出現(xiàn)錯誤,定位錯誤出現(xiàn)的地方。而在程序發(fā)布之前,取消_DEBUG的定義就可以不再執(zhí)行調(diào)試代碼。

2、宏函數(shù):

函數(shù)的調(diào)用是需要一定的時間和空間代價的。因為系統(tǒng)在調(diào)用函數(shù)時,需要保留"現(xiàn)場",即將程序要執(zhí)行的指令的下一條指令的位置壓入棧,然后轉(zhuǎn)入調(diào)用函數(shù)去執(zhí)行,調(diào)用完函數(shù)后再返回主調(diào)函數(shù),恢復(fù)"現(xiàn)場",返回到棧里保存的的下一條指令的位置繼續(xù)執(zhí)行。

所以函數(shù)的調(diào)用需要額外的時間和空間代價。

而宏函數(shù)則不存在上述問題,宏函數(shù)在預(yù)編譯時,同函數(shù)定義的代碼來替換函數(shù)名,將函數(shù)代碼段嵌入到當(dāng)前程序,不會產(chǎn)生函數(shù)調(diào)用。

所以會省去普通函數(shù)保留現(xiàn)場恢復(fù)現(xiàn)場的時間,但因為要將定義的函數(shù)體嵌入到當(dāng)前程序,所以不可避免的會占用額外的存儲空間。

在頻繁調(diào)用同一個宏的時候,該現(xiàn)象尤其明顯。宏函數(shù)的示例定義如下:

#define MAX(a,b) ((a)(b)?(b):(a))

宏函數(shù)的優(yōu)點在于避免函數(shù)調(diào)用,提高程序效率。

同時需要注意的是inline標(biāo)識符。inline也將函數(shù)定義為內(nèi)聯(lián)的。但是使用內(nèi)聯(lián)函數(shù)需要注意的是:函數(shù)體必須十分簡單,不能含有循環(huán)、條件、選擇等復(fù)雜結(jié)構(gòu),否則就不能作為內(nèi)聯(lián)函數(shù)了。

事實上,有時候即便你沒有將函數(shù)指定為內(nèi)聯(lián)函數(shù),編譯器也會將一些簡單的函數(shù)作為內(nèi)聯(lián)函數(shù)處理,而對于一些復(fù)雜的函數(shù),即使聲明為內(nèi)聯(lián)函數(shù),編譯器也不會理會的。

inline函數(shù)的瓶頸就在于此,使用inline標(biāo)識符將函數(shù)聲明為內(nèi)聯(lián)的,但這只是一種提示,到底編譯器有沒有優(yōu)化還依賴于編譯器的實現(xiàn),而使用宏函數(shù)則完全由代碼本身控制。

但在使用宏函數(shù)的時候,需要明確的是宏函數(shù)只是簡單的替換,需要注意括號的使用。

擴展資料:

宏的更多規(guī)則特性:

(1)宏名一般用大寫。

(2)使用宏可提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤和便于修改。例如:數(shù)組大小常用宏定義。

(3)預(yù)處理是在編譯之前的處理,而編譯工作的任務(wù)之一就是語法檢查,預(yù)處理不做語法檢查。

(4)宏定義末尾不加分號。

(5)宏定義寫在函數(shù)的花括號外邊,作用域為其后的程序,通常在文件的最開頭。

(6)可以用#undef命令終止宏定義的作用域。

(7)宏定義不可以嵌套。

(8)字符串" "中永遠(yuǎn)不包含宏。

(9)宏定義不分配內(nèi)存,變量定義分配內(nèi)存。

(10)宏定義不存在類型問題,它的參數(shù)也是無類型的。

參考資料:

百度百科--宏定義

名稱欄目:包含c語言doit函數(shù)的詞條
文章來源:http://chinadenli.net/article29/dseicch.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)網(wǎng)站設(shè)計公司小程序開發(fā)網(wǎng)站策劃微信小程序商城網(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)

商城網(wǎng)站建設(shè)