c语言练习12周(11~15)

编写double fun(int a\[\],int n)函数,计算返回评分数组a中,n个评委打分,去掉一个最高分去掉一个最低分之后的平均分

|----|---|---|---|
| 题干 | 编写double fun(int a\[\],int n)函数,计算返回评分数组a中,n个评委打分,去掉一个最高分去掉一个最低分之后的平均分。 |||

cpp 复制代码
double  fun(int  a[], int  n) {
	int max=0, min=0,i,j,t;
	double s = 0,c;
	for (i = 0; i < n-1; i++) {
		for (j = 0; j < n - 1 - i; j++) {
			if (a[j] > a[j + 1]) {
				t = a[j + 1];
				a[j + 1] = a[j];
				a[j] = t;
			}
		}
	}
	//min = a[0];
	//max = a[n - 1];
	for (i = 1; i < n-1; i++) {
		s += a[i];
	}
	//c =(double)(s*1.0 / (n-2));
   c =(s*1.0 / (n-2)); 
	return c;
}

编写int fun(int a\[\]4,int n)函数,返回n行4列二维数组a中的最大值。

|----|---|---|---|
| 题干 | 编写int fun(int a\[\]4,int n)函数,返回n行4列二维数组a中的最大值。 若a数组如下,返回最大值9 1 2 3 6 4 5 6 3 7 8 9 5 |||

cpp 复制代码
//只填写要求的函数
int fun(int  a[][4], int  n) {
	int i, j,max=0;
	for (i = 0; i < n; i++) {
		for (j = 0; j < 4; j++) {
			if (a[i][j] > max) {
				max = a[i][j];
			}
		}
	}
	return max;
}

编写void fun(int aMM)函数,将数组a中右上三角的所有元素乘以2,M为定义好的符号常量

|----|---|---|---|
| 题干 | 编写void fun(int aMM)函数,将数组a中右上三角的所有元素乘以2,M为定义好的符号常量。 若M为3,a原数组为 1 2 3 4 5 6 7 8 9 调用函数后,a数组变为 2 4 6 4 10 12 7 8 18 |||

cpp 复制代码
//只填写要求的函数
void fun(int a[M][M]) {
	for (int i = 0; i < M; i++) {
		for (int j = 0; j < M; j++) {
			if (i <= j)
				a[i][j] *= 2;
		}
	}
	return;
}

编写int fun(char s\[\])函数,返回数字串对应的整数,也可能是负数,参数串保证是合法正负整数串

|----|---|---|---|
| 题干 | 编写int fun(char s\[\])函数,返回数字串对应的整数,也可能是负数,参数串保证是合法正负整数串。 如:传入串"134"返回整数134;传入串"1967"返回整数1967;传入串"-1967"返回整数-1967 |||

cpp 复制代码
//只填写要求的函数
int  fun(char  s[]) {
	int a;
	sscanf(s, "%d", &a);
	return a;
}

输入整数 N(1≤N≤9),输出如下 N 阶方阵

|------|---|---|---|
| 题干 | 输入整数 N(1≤N≤9),输出如下 N 阶方阵。 若输入5显示如下方阵: * 1** 2** 3** 4** 5* *16**17**18**19** 6* *15**24**25**20** 7* *14**23**22**21** 8* *13**12**11**10** 9* |||
| 输入样例 | 3 |||
| 输出样例 | * 1** 2** 3* * 8** 9** 4* * 7** 6** 5* |||

cpp 复制代码
#define M 9
#include<stdio.h>
void Print(int a[M][M],int n) {
	int i,j;
	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			printf("*%2d*", a[i][j]);
		}
		printf("\n");
	}
}
void fz(int a[M][M], int n) {
	int k, hang = 0, lie = 0, hangt, liet, fx=0, wy[4][2] = { {0,1},{1,0},{0,-1},{-1,0} };
	for (k = 1; k <= n*n; k++) {
		a[hang][lie] = k;
		hangt = hang + wy[fx][0];
		liet = lie + wy[fx][1];
		if (hangt >= n || liet >= n || hangt < 0 || liet < 0 || a[hangt][liet] != 0) {
			fx = (fx + 1) % 4;
			hangt = hang + wy[fx][0];
			liet = lie + wy[fx][1];
		}
		hang = hangt;
		lie = liet;
	}
}
int main() {
	int a[M][M] = { 0 },n;
	scanf("%d", &n);
	fz(a, n);
	Print(a, n);
	return 0;
}
相关推荐
逝水无殇1 小时前
C# 异常处理详解
开发语言·后端·c#
玖玥拾3 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
铅笔侠_小龙虾3 小时前
Rust 学习目录
开发语言·学习·rust
云泽8083 小时前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范
灯澜忆梦3 小时前
GO---可见性规则
开发语言·golang
逝水无殇4 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
这是个栗子5 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
凤凰院凶涛QAQ5 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
研☆香5 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript
右耳朵猫AI5 小时前
PHP周刊2026W28 | 安全更新、Laravel 13.18、Twig 3.28
开发语言·php·laravel