C语言程序学习笔记四

一、输出下面内容,用函数调用实现。

######

hello world!

######

#include <stdio.h>

int main()                                                        //主函数

        {

        void print_star();                                      //声明函数

        void print_message();                              //声明函数

        print_star();  

        print_message();      

        print_star();              

        return 0;

        }

        void print_star()                                    //定义函数,该函数实现输出六个#

        {  printf(“######n”); }

        void print_message()                                

        {  printf(“ hello world!n”);  }                //定义函数,该函数实现“hello world!”

二、输入两个整数,要求输出其中值较大者。要求用函数来找到大数。

#include <stdio.h>
 

int main()                                                //在max函数上面,再编写主函数

{       int max(int x,int y);  

        int a,b,c;      

        printf(“two integer numbers: ");      

        scanf(“%d,%d”,&a,&b);    

        c=max(a,b);                                 //这里的a,b为实参,实参可以是常量、变量或表达式

        printf(“max is %d\n”,c);

}

int max(int x,int y)                                //编写max函数

{      int z;      

        z=x>y?x:y;      

        return(z);

}

三、输入两个实数,用一个函数求出它们之和。

#include <stdio.h>

int main()

{

        float add(float x, float y);                                        //对add函数声明,注意要有分号

         float a,b,c;    

        printf("Please enter a and b:");      

        scanf("%f,%f",&a,&b);                  

        c=add(a,b);                                                          //调用add函数

        printf("sum is %f\n",c);      

        return 0;

}

float add(float x,float y)                                        //求两个实数之和,函数值也是实型

{                                                                                //定义add函数

        float z;                              

        z=x+y;    

        return(z);                      

四、输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。

#include <stdio.h>

int main()                                                //主函数

{                                                                        

        int max4(int a,int b,int c,int d);                          //对max4 函数声明

         int a,b,c,d,max;    

        printf(“4 interger numbers:");        

        scanf("%d%d%d%d",&a,&b,&c,&d);                  //输入4个整数

        max=max4(a,b,c,d);                                            //调用max4函数

        printf("max=%d \n",max);      

        return 0;

}

int max4(int a,int b,int c,int d)                               //max函数             

{  

        int max2(int a,int b);                                    //对max2 函数声明

        int m;    

        m=max2(a,b);                       //得出a,b中较大者,

        m=max2(m,c);                        //得出a,b,c中较大者

        m=max2(m,d);                   //得出a,b,c,d中最大者

        return(m);                

}

int max2(int a,int b)                                        //在定义max2函数

{

         if(a>=b)                                                //找a,b中较大者

        return a;                                      //返回a,b中大的那个值

        else        

        return b;      

}

整个函数可简写为:

#include <stdio.h>

int main()                                                //主函数

{                                                                        

        int max4(int a,int b,int c,int d);                          //对max4 函数声明

         int a,b,c,d,max;    

        printf(“4 interger numbers:");        

        scanf("%d%d%d%d",&a,&b,&c,&d);                  //输入4个整数

        max=max4(a,b,c,d);                                            //调用max4函数

        printf("max=%d \n",max);      

        return 0;

}

int max4(int a,int b,int c,int d)                               //max函数             

{  

        int max2(int a,int b);                                    //对max2 函数声明

        int m;    

        ruturn max2(max2(max2(a,b),c),d);        //多次调用max2函数得出四个值中的最大值

}

int max2(int a,int b)                                        //在定义max2函数

{

         if(a>=b)                                                //找a,b中较大者

        return(a>b?a:b);                           //返回a,b中的最大值

}

五、用递归方法求n!。

#include <stdio.h>

int main()  

{

        int fac(int n);  

        int n;  

        int y;  

        printf("input an integer number:");  

        scanf("%d",&n);    

        y=fac(n);  

        printf("%d!=%d\n",n,y);   return 0;

}

int fac(int n)

{      

        int f;      

        if(n<0)               

                printf("n<0,data error!");      

        else if(n==0 | | n==1)           

                f=1;      

        else  

                f=fac(n-1)*n;      

        return(f);  

}

六、利用数组,输入10个数,要求输出其中值最大的元素和该数是第几个数。

#include <stdio.h>

int main() {  

        int max(int x,int y);    

        int a[10],m,n,i;    

        printf(“10 integer numbers:\n");    

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

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

                printf("\n");

        for(i=1,m=a[0],n=0;i<10;i++)                    //循环判断出最大的数,并得出该数是第几个数

        {

                if (max(m,a[i])>m)                       

                        {       m=max(m,a[i]);                   //判断出大的数,并的到相应的序号

                                n=i;       

                         }    

        }    

        printf(“largest number is %d\n",m);    

        printf(“%dth number.\n“,n+1);

}

        int max(int x,int y)                        //定义函数判断两个数的大小

        {  

        return(x>y?x:y);  

        }

七、有一个一维数组score,内放10个学生成绩,求平均成绩。

#include <stdio.h>

int main()

{

        float average(float array[10]);    

        float score[10],aver;                                  // float score[10]定义实参数组

        int i;    

        printf("input 10 scores:\n");  

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

                scanf("%f",&score[i]);  

        printf("\n");    

        aver=average(score);    

        printf("%5.2f\n",aver);    

        return 0;

}

float average(float array[10])                        //float array[10]定义形参数组

{  

        int i;    

        float aver,sum=array[0];                            //此处array[0]相当于score[0]

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

        sum=sum+array[i];                                    //此处array[i]相当于score[i]

        aver=sum/10;    

        return(aver);

}

八、用选择法对数组中10个整数按由小到大排序。

#include <stdio.h>

int main() {

        void sort(int array[],int n);    

        int a[10],i;    

        printf("enter array:\n");    

        for(i=0;i<10;i++)       scanf("%d",&a[i]);    

        sort(a,10);    

        printf("The sorted array:\n");    

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

        printf("\n");    

        return 0;

}

void sort(int array[],int n)  {

        int i,j,k,t;    

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

        {       k=i;        

                for(j=i+1;j<n;j++)                                  //在sort[i]~sort[9]中,最小数与sort[i]对换

                        if(array[j]<array[k])    

                                k=j;         

                t=array[k];        

                array[k]=array[i];        

                array[i]=t;       

        }  

}

九、有一个3×4的矩阵,求所有元素中的最大值。

#include <stdio.h>

int main() {

int max_value(int array[ ][4]);       

//此处第一个中括号里可以省略,第二个不能省略,要与形参数组第二维大小相同

int a[3][4]={{1,3,5,7},{2,4,6,8}, {15,17,34,12}};    

printf(“Max value is %d\n”, max_value(a));    

return 0;

}                

int max_value(int array[][4]) {                          //此处要与实参数组第二维大小相同

        int i,j,max;    

        max = array[0][0];    

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

                for(j=0;j<4;j++)            

                        if (array[i][j]>max)                  

                                max = array[i][j];    

        return (max);

}

十、有两个班级,分别有5名和10名学生,调用一个average函数,分别求这两个班的学生的平均成绩。

#include <stdio.h>

int main()

{

        float average(float array[ ],int n);                            //对average函数进行声明

        float score1[5]={98.5,97,91.5,60,55};                            

        float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};           printf(“%6.2f\n”,average(score1,5));    

        printf(“%6.2f\n”,average(score2,10));    

        return 0;

}

float average(float array[ ],int n)  

{

        int i;    

        float aver,sum=array[0];                           

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

        sum=sum+array[i];                                

        aver=sum/n;    

        return(aver);

}

注:

当调用形式为average(score1,5)时, average函数中的n相当于5,array[0]相当于score1[0],array[i]相当于score1[i]。

当调用形式为average(score2,10)时, average函数中的n相当于10,array[0]相当于score2[0],array[i]相当于score2[i]。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤栖红尘

你的鼓励将是我最大的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值