C语言实验报告4

实验目的

  • 掌握函数定义和调用
  • 掌握函数调用时实参与形参的对应关系以及“值传递”的方式
  • 掌握函数的嵌套调用和简单递归调用
  • 掌握数组作为函数参数的用法

实验内容

1、编写函数,实现统计和输出一个正整数中各位数字中零的个数,及各位数字中最大者。

   例如:1080其零的个数是2,各位数字中最大者是8。主函数负责正整数的输入。

2、编写递归函数实现n!

3、自定义函数实现对n个数进行选择法排序,主函数调用。

   要求:共自定义3个函数,分别对数组进行输入,排序和输出。

4、自定义函数实现对一个有序数组进行插入操作,保证插入后的数组依然有序。主函数调用。

     要求:1)共自定义2个函数,分别对数组进行插入和输出。

           2)数组、待插数据在主函数中定义和赋值。

1

#include<iostream>

using namespace std;

int shuling(int n,int *digits,int*max);

int main(){

   int n,lingshu,max;

   cin>>n;

   shuling(n,&lingshu,&max);

   cout<<n<<" "<<"has"<<" "<<lingshu<<" "<<"digits 0,and the max is "<<max<<"."<<endl;

}

int shuling(int n,int *digits,int*max){

   int p,q;

   *digits=0;

   *max=0;

   while(n!=0){

      if(n%10==0){

          (*digits)++;

      }

      p=n%10;

      if(p>*max)

      *max=p;

      n=n/10;

   }

}

2

#include<iostream>

using namespace std;

int di(int n);

int main(){

   int n,c;

   cin>>n;

   c=di(n);

   cout<<c<<endl;

  

}

int di(int n){

   int result=0;

   if(n==1) 

   return 1;

   else

   result=n*di(n-1);

   return result;

}

3

#include<iostream>

#include<stdio.h>

using namespace std;

int shuru(int a[],int n);

int yunsuan(int a[],int n);

int shuchu(int a[],int n);

int main(){

   int a[10];

   shuru(a,10);

    yunsuan(a,10);

    shuchu(a,10);

}

int shuru(int a[],int n){

   for(int i=0;i<n;i++){

      cin>>a[i];

   }

}

int yunsuan(int a[],int n){

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

      int seli=i;

      for(int j=i+1;j<n;j++){

          if(a[seli]>a[j]){

              seli=j;

          }

      }

      if(i!=seli){

          int tmp;

          tmp=a[i];

          a[i]=a[seli];

          a[seli]=tmp;

      }

   }

}

int shuchu(int a[],int n){

   for(int i=0;i<n;i++){

      cout<<a[i]<<" ";

   }

}

#include<iostream>

#include<stdio.h>

using namespace std;

int charu(int a[],int n,int m);

int shuchu(int a[],int n);

int main(){

   int a[9]={3,5,8,45,67,99,128,568};

   int m,n,p,q;

   cin>>m;

   charu(a,9,m);

   shuchu(a,9);

  

}

int charu(int a[],int n,int m){

   for(int i=n-2;i>=0;i--){

      if(a[i]>m){

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

      }else {

          a[i+1]=m;

          break;

      }

   }

}

int shuchu(int a[],int n){

   for(int i=0;i<n;i++){

      cout<<a[i]<<" ";

   }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值