C语言一些简单的编程

(这些编程是大一时候作业里面的,兴许对大一计算机专业的同学有一定的帮助)

1、输入10个实数到一维数组中,将数组中的最大值和最小值交换位置。(用数组实现)

#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个数后,输出其中绝对值最小的数。要求定义带参数的宏,计算两个数中绝对值最小的数

#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个数,按绝对值从小到大排序后输出。要求定义一个函数sort,完成绝对值从小到大排序(用指针实现,可以参考教材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分别表示对数组前n个元素赋初值为x。要求定义一个函数value,完成对一维整型数组的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、编写函数void reverse(char* s);

将形参s所指向的字符串反转(如s指向字符串为”hello world”,反转后为”dlrow olleh”)。编写main函数,在main中调用reverse函数,并输出反转后的字符串。(去年期末考题)

#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、定义一个函数,将一个字符串中的所有小写字母转换为相应的大写字母,其余字符不变

#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、定义一个函数,计算两个数的和与乘积(要求用指针实现)

#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、定义函数total(n)计算1+2+……+n,定义函数fact(n)计算n!( n!=1*2*……*n),函数total的返回值类型为int,函数fact的返回值类型为double;在main()中输入正整数n,计算并输出下列算式的值。该算式中,每一项的分子是累加和,分母是阶乘,要求调用函数total(n)计算1+2+……+n,调用函数fact(n)计算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);

}

你可能感兴趣的:(C语言一些简单的编程)