栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 DLUT 作业七

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 DLUT 作业七

C语言 DLUT 作业七

本次作业重点学会使用函数,以更好的设计代码结构

1、插入
#include
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]);
}
2、二分查找
#include
#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;in)
    {
    	i=(i+j)/2-1;
        return digui(a,n,j,i);
	}
    else
    {
    	j=(i+j)/2+1;
        return digui(a,n,j,i);
	}
}
3、二进制
//编写函数将一个不大于1000的十进制整数转换成二进制数,并在主函数中输出该二进制字符串。
#include
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;
}
4、哥德巴赫
#include
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;
}
5、最大数
//设计函数查找一维数组中最大元素,在主函数中输出该数组中最大元素的值和位置(可能存在多个最大值)。
#include
int 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、指数幂 
#include
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);
}


7、完数
#include
int 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 
希望小白可以好好学习函数及之后的知识,也希望大佬们指正
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号