C語言一些簡單的編程

(這些編程是大一時(shí)候作業(yè)里面的,興許對(duì)大一計(jì)算機(jī)專業(yè)的同學(xué)有一定的幫助)

1、輸入10個(gè)實(shí)數(shù)到一維數(shù)組中,將數(shù)組中的最大值和最小值交換位置。(用數(shù)組實(shí)現(xiàn))

#include

void main()

{

int a[10],i,j,amax,amin,t,x,y;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

amax=a[0];

for(i=1;i<10;i++)

if(a[i]>amax) {amax=a[i]; x=i;}

amin=a[0];

for(j=1;j<10;j++)

if(a[j]

t=amin;amin=amax;amax=t;

a[x]=amax;a[y]=amin;

for(i=0;i<10;i++)

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

}

2、輸入5個(gè)數(shù)后,輸出其中絕對(duì)值最小的數(shù)。要求定義帶參數(shù)的宏,計(jì)算兩個(gè)數(shù)中絕對(duì)值最小的數(shù)

#include

#include

#define min(a,b) (fabs((a))

void main()

{

int a[5],i,m;

scanf("%d",&a[0]);

m=a[0];

for(i=1;i<5;i++)

{?scanf("%d",&a[i]);

m=min(m,a[i]);

}

printf("%d",m);

}

3、輸入10個(gè)數(shù),按絕對(duì)值從小到大排序后輸出。要求定義一個(gè)函數(shù)sort,完成絕對(duì)值從小到大排序(用指針實(shí)現(xiàn),可以參考教材P188例子)

#include

#include

void sort(int *a,int n)

{

int i,j,k,t;

for(i=0;i

for(j=0;j

if(fabs(*(a+j))>fabs(*(a+j+1))){

t=*(a+j);

*(a+j)=*(a+j+1);

*(a+j+1)=t;

}

}

}

void main()

{

int b[10],i,n;

for(i=0;i<10;i++)

scanf("%d",&b[i]);

sort(b,10);

for(n=0;n<10;n++)

printf("%4d",b[n]);

}

4、輸入n和x,n和x分別表示對(duì)數(shù)組前n個(gè)元素賦初值為x。要求定義一個(gè)函數(shù)value,完成對(duì)一維整型數(shù)組的n個(gè)元素進(jìn)行賦值,具體賦值x

#include

void value(int *a,int n)

{

int i,x;

scanf("%d",&x);

for(i=0;i

*(a+i)=x;

}

void main(){

int b[10],n,i;

scanf("%d",&n);

value(b,n);

for(i=0;i

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

}

5、編寫函數(shù)void reverse(char* s);

將形參s所指向的字符串反轉(zhuǎn)(如s指向字符串為”hello world”,反轉(zhuǎn)后為”dlrow olleh”)。編寫main函數(shù),在main中調(diào)用reverse函數(shù),并輸出反轉(zhuǎn)后的字符串。(去年期末考題)

#include

#include

void RevStr(char *str)

{

int len;

char *ptr;

len = strlen(str);

ptr = str + len - 1;

while(str != ptr)

{

char ch;

ch = *str;

*str = *ptr;

*ptr = ch;

str++;

if(str == ptr)

break;

else

ptr--;

}

}

int main()

{

char str[80];

gets(str);

RevStr(str);

printf("%s",str);

return 0;

}

6、定義一個(gè)函數(shù),將一個(gè)字符串中的所有小寫字母轉(zhuǎn)換為相應(yīng)的大寫字母,其余字符不變

#include

void daxie(char *s)

{while(*s!='\0')

{

if(*s>='a'&&*s<='z')

*s-=32;

s++;

}

}

void main()

{

char str[80];

gets(str);

daxie(str);

puts(str);

}

7、定義一個(gè)函數(shù),計(jì)算兩個(gè)數(shù)的和與乘積(要求用指針實(shí)現(xiàn))

#include

double he(double p,double q)

{?return q+p;

}

double ji(double p,double q)

{?return q*p;

}

void main()

{double x,y;

scanf("%lf%lf",&x,&y);

printf("%.1lf %.1lf",he(x,y),ji(x,y));

}

8、定義函數(shù)total(n)計(jì)算1+2+……+n,定義函數(shù)fact(n)計(jì)算n!( n!=1*2*……*n),函數(shù)total的返回值類型為int,函數(shù)fact的返回值類型為double;在main()中輸入正整數(shù)n,計(jì)算并輸出下列算式的值。該算式中,每一項(xiàng)的分子是累加和,分母是階乘,要求調(diào)用函數(shù)total(n)計(jì)算1+2+……+n,調(diào)用函數(shù)fact(n)計(jì)算n!。

y=1+(1+2)/2!+(1+2+3)/3!+...+(1+2+...+n)/n!

#include

int total(int n)

{

int i;

int t=0;

for(i=1;i<=n;i++)

t+=i;

return t;

}

double fact(int n)

{

int i;

double s=1;

for(i=1;i<=n;i++)

s*=i;

return s;

}

void main()

{

int i,n;

double y=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

y+=total(i)/fact(i);

printf("%.3f",y);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容