本次作业重点学会使用函数,以更好的设计代码结构
1、插入#include2、二分查找int main() { int insert( char a[], int n, int m, char value); void insertSort( char a[], int i); char a[100],value; int n,i,k; printf("输入一个升序字符数组:n"); for(i=0;;i++) { scanf("%c",&a[i]); if(a[i]=='n') { break; } } printf("输入要插入的数:n"); scanf("%c",&value); k=insert(a,100,i,value); if(k==-1) { printf("无法插入"); return 0; } insertSort(a,i); printf("n插入数组中位置为%d",k); } int insert( char a[], int n, int m, char value) { int i,x; for(i=0;i =x;i--) { a[i+1]=a[i]; a[i]=value; } if(i+1>n) { return -1; } return x; } void insertSort( char a[], int i) { int j; for(j=0;j<=i;j++) printf("%c",a[j]); }
#include3、二进制#define M 10 int main() { // void diedai(int a[],int i,int n); int digui(int a[],int n,int max,int min); int a[1000],i,n,k,j=0; printf("输入一个正序数组n"); for(i=0;i n) { i=(i+j)/2-1; return digui(a,n,j,i); } else { j=(i+j)/2+1; return digui(a,n,j,i); } }
//编写函数将一个不大于1000的十进制整数转换成二进制数,并在主函数中输出该二进制字符串。 #include4、哥德巴赫int main() { int n; char ch[1000]; printf("输入一个不大于1000的十进制整数:n"); scanf("%d",&n); printf("转换为二进制数为:n"); erjinzhi(n,ch); return 0; } int erjinzhi(int n,char ch[1000]) { int a[1000],i=0,j=0; while(n!=0) { a[i++]=n%2; n=n/2; j++; } for(i=j-1;i>=0;i--) { ch[i]=a[i]+'0'; printf("%c",ch[i]); } // return ch; }
#include5、最大数int sushu(int n) { int i,j; for(i=2;i =n) return 1; } int main() { int j,x; printf("请输入一个大于等于6的偶数n"); scanf("%d",&x); if(x<6||x%2!=0) { printf("输入错误,请重新输入n"); return 0; } else { for(j=2;j<=x;j++) { if(sushu(j)&&sushu(x-j)) { printf("%d=%d+%dn",x,j,x-j); break; } } } return 0; }
//设计函数查找一维数组中最大元素,在主函数中输出该数组中最大元素的值和位置(可能存在多个最大值)。 #includeint zuida(int a[],int i) { int m,max=a[0]; for(m=1;mmax) { max=a[m]; } } return max; } int weizhi(int b[],int i,int max) { int k; for(k=0;k 6、指数幂 #include7、完数int main() { double diedai(double n,double m); double digui(double n,double m); double result,n,m; printf("输入底数与指数n"); scanf("%lf%lf",&n,&m); printf("%lf",diedai(n,m)); printf("n"); printf("%lf",digui(n,m)); } double diedai(double n,double m) { int i; double result=1; if(m>=0) { for(i=0;i =1) return n*digui(n,m-1); else return (1/n)*digui(n,m+1); } #includeint isPerfectnum(int i,int n) { int sum=0; for(i=1;i 8、矩阵 //设计相关函数,实现矩阵的基本操作:N*N的矩阵转置操作 ; 两个矩阵的加法运算 ;两个矩阵的乘法运算。 #include#define N 3 int main() { int zhuanzhi(int d[N][N]); int jiafa(int d[N][N],int t[N][N]); int chengfa(int d[N][N],int t[N][N]); int d[N][N],i,j,t[N][N],a[N][N]; //矩阵转置 //矩阵加法 printf("矩阵1:n"); for(i=0;i 9、日期计算器 //设计一个日期计算器,功能至少包括:判断日期的有效性;计算该日期为当年的第几天;计算两个日期的差。 #include//日期的有效性 int nianyueri(int year,int month,int day) { if(year<=0) { printf("输入年错误n"); return 0; } else { printf("输入年有效"); printf("%dn",year); } if(month<=0||month>12) { printf("输入月错误n"); return 0; } else { printf("输入月有效"); printf("%dn",month); } if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { if(day<=0||day>31) { printf("输入日错误n"); return 0; } else { printf("输入日有效"); printf("%dn",day); } } else if(month==4||month==6||month==9||month==11) { if(day<=0||day>30) { printf("输入日错误n"); return 0; } else { printf("输入日有效"); printf("%dn",day); } } else if(month==2) { if(year%4==0&&year%100!=0||year%400==0) { if(day<=0||day>29) { printf("输入日错误n"); return 0; } else { printf("输入日有效",day); printf("%dn",day); } } else { if(day<=0||day>28) { printf("输入日错误n"); return 0; } else { printf("输入日有效",day); printf("%dn",day); } } } } //该日期是该年的第几天 int count(int a[12],int b[12],int year,int mounth,int day)//定义一个baicount函数,用来计算是哪一天,a[12],b[12],year,day,day 分别du是形参 { int i,sum=0; if(year%4==0&&year%100!=0||year%400==0)//判断是否是闰年,是就作如下语句 for(i=0;i 希望小白可以好好学习函数及之后的知识,也希望大佬们指正



