XJTU大计基11周编程题

  1. 编写函数,寻找具有n个元素的一维数组中的最大值和最小值,并返回数组元素的平均值,函数原形如下:
    double fun(int a[],int n,int *max,int *min);
    如输入:
    5
    2 4 5 3 1
    则输出为:
    5
    1
    3.000000
#define _CRT_SECURE_NO_WARNINGS//这个是vs2017特有的,不是 vs2017的小伙伴请忽略
#include<stdio.h>
#include<stdlib.h>//涉及动态内存管理
double fun(int a[], int n,int *max, int*min);//函数定义
int main()//主函数负责输入和调用
{
	int n ;
	int mimi, maxmax;
	int *a;
	scanf("%d", &n);//n个整数
	a = (int*)malloc(n * sizeof(int));//动态内存管理,用到malloc
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	int *max =&maxmax;
	int* min = &mimi;
	fun( a, n,max, min);
	free(a);//释放内存
}

double fun(int a[], int n, int * max, int * min)
{
	{//这里还不负责输入
		int  i = 0;//初始化
		double sum = 0;//记得要是double
		*max = a[0];
		*min= a[0];
		for (i = 0; i < n; i++)//选择最大值和最小值
		{
			if (a[i] >= *max)
				*max =a[i];
			if (a[i] <=* min)
				*min =a[i];
		}
        for (int i = 0; i < n; i++)//计算元素个数
			{
				sum += a[i];
			}
		double aver = (double)sum / n;//求平均值
		printf("%d\n%d\n%.6f\n",*max, *min, aver);
	}
	return 0;
}

结果
在这里插入图片描述


希望自己有时间出一个关于动态内存管理以及函数的笔记


  1. 编写函数,将一个二进制数(以字符串形式表示)转换为十进制数。函数原型如下:
    double binTodec(char *str);
    其中str为接收的二进制数,函数的返回值为对应的十进制数。
    如输入:
    1010
    则输出为:
    10
    又如输入:
    100
    则输出为:
    4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>//涉及动态内存管理
#include<string.h>
#include<math.h>
int main()
{
	char a[100];
	int number = 0;
	gets(a);
	int n = strlen(a);
	for (int i = n-1; i >=0; i--)//这里有几个点要注意
	//1.就是要从后往前计算,认真想想二进制转十进制怎么转的
	//2.还有关于判断这里的if (a[n-1-i] == '1') 也是一个易错点
	{
		if (a[n-1-i] == '1') 
		number += pow(2, (int)(i));
	}
	printf("%d", number);
}

有机会把老师上课的笔记也发出来
自己千万不要偷懒鸭!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值