慕课C语言程序设计基础(大连理工大学)第十周课后编程作业

这篇博客涵盖了C语言编程的三个练习,包括使用递归实现求x的n次方,读取10个整数并找出最大最小值,以及将整数格式化为千分位形式。每个练习都提供了输入输出样例,并强调了关键的函数实现和数据处理技巧。

1求x的n次方(10分)

题目内容:编写求x的n次方的递归函数,在主函数调用并输出。(x为double型,n为整型,函数类型为double型)

输入格式:

%lf%d

输出格式:

%f

输入样例:

4 3

输出样例:

64.000000

#include <stdio.h>
double display(double x,int n)
{
	double z=1.000000;
	if(n==0)
		z=z;
	else z=x*display(x,n-1);
	return z;
}
int main()
{
	double x,sum;
	int n;
	scanf("%lf%d",&x,&n);
	sum=display(x,n);
	printf("%f",sum);
	return 0;
}


输入: 4 3
输出 :64.000000

2输出最大、最小数(10分)

题目内容:编写函数,通过键盘输入10个整数,找出其中最大的数和最小的数,返回到主调函数中输出。

输入格式:

%d

输出格式:

max=%d,min=%d

输入样例:

2 3 4 1 7 6 8 9 26 35

输出样例:

max=35,min=1

#include <stdio.h>
#define N 10
int find1(int a[],int n)
{
	int j,max;
	for(j=1,max=0;j<N;j++)
	{
		if(a[max]<a[j])
			max=j;
	}
	return a[max];
}
int find2(int a[],int n)
{
	int i,min;
	for(i=1,min=0;i<N;i++)
	{
		if(a[min]>a[i])
			min=i;
	}
		return a[min];
}
int main()
{
	int i;
	int a[N];
	for(i=0;i<N;i++)
		scanf("%d",&a[i]);
	printf("max=%d,min=%d",find1(a,N),find2(a,N));
	return 0;
}

在这里插入图片描述
输入:2 3 4 1 7 6 8 9 26 35
输出:max=35,min=1

3任意整数转换为千分位分隔的字符形式。(10分)

题目内容:

编写函数,对于任意输入的一个整数,转换为千分位分隔的字符形式,在主函数中调用并输出。

输入格式:

%d

输出格式:

%c 或 putchar()

输入样例:

123456

输出样例:

123,456

#include <stdio.h>
#define N 100
void ten(int n)
{
     char c=',';
	 int i,j,tag;
	 int a[N]={0};
	 for(i=0;n;i++)
	 {
		 a[i]=n%10;
		 n/=10;
	 }
	 for(tag=i-1;tag>=0;--tag)
	 {
		 printf("%d",a[tag]);
		 if(tag%3==0&&tag!=0)
		 printf("%c",c);
	 }
}
int main()
{
	int n;
	int a[N]={0};
	scanf("%d",&n);
    ten(n);
	return 0;
}

在这里插入图片描述
输出:123456
输出:123,456

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值