美文网首页
C语言一些简单的编程

C语言一些简单的编程

作者: Mr_Gao | 来源:发表于2015-01-24 18:59 被阅读2129次

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

    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语言一些简单的编程

          本文链接:https://www.haomeiwen.com/subject/reqkxttx.html