C语言经典例题(11) --- 序列中整数去重、班级成绩输入输出、序列重组矩阵、矩阵相等判断、矩阵转置

本文主要是介绍C语言经典例题(11) --- 序列中整数去重、班级成绩输入输出、序列重组矩阵、矩阵相等判断、矩阵转置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

        • 1.序列中整数去重
        • 2.班级成绩输入输出
        • 3.序列重组矩阵
        • 4.矩阵相等判断
        • 5.矩阵转置

1.序列中整数去重

题目描述:

输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。

输入描述:

输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。

输出描述:

输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。

输入:

5

10 12 93 12 75

输出:

10 12 93 75

参考代码:

#include <stdio.h>int main()
{int n = 0;scanf("%d", &n);int i = 0;int j = 0;int arr[5000] = { 0 };for (i = 0; i < n; i++){scanf("%d", &arr[i]);}for (i = 0; i < n; i++){for (j = i + 1; j < n; j++){if (arr[i] == arr[j]){int k = 0;for (k = j; k < n - 1; k++){arr[k] = arr[k + 1];}n--;j--;}}}for (i = 0; i < n; i++){printf("%d ", arr[i]);}return 0;
}
2.班级成绩输入输出

题目描述:

输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。

输入描述:

五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。

输出描述:

五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。

输入:

98.5 96.0 100 99 88

60.5 77 88.5 99 60

80 80.5 89 91 92

93 94 95.5 96 97.5

100 98 88.5 88 78.5

输出:

98.5 96.0 100.0 99.0 88.0 481.5

60.5 77.0 88.5 99.0 60.0 385.0

80.0 80.5 89.0 91.0 92.0 432.5

93.0 94.0 95.5 96.0 97.5 476.0

100.0 98.0 88.5 88.0 78.5 453.0

参考代码:

#include <stdio.h>int main()
{int i = 0;int j = 0;for (i = 0; i < 5; i++){double sum = 0.0;double score = 0.0;for (j = 0; j < 5; j++){scanf("%lf", &score);sum += score;printf("%.1lf ", score);}printf("%.1lf\n", sum);}return 0;
}
3.序列重组矩阵

题目描述:

KK现在得到一个包含nm个数的整数序列,现在他需要把这nm个数按顺序规划成一个n行m列的矩阵并输出,请你帮他完成这个任务。

输入描述:

一行,输入两个整数n和m,用空格分隔,第二行包含n*m个整数(范围-231~231-1)。(1≤n≤10,1≤m≤10)

输出描述:

输出规划后n行m列的矩阵,每个数的后面有一个空格。

输入:

2 3

1 2 3 4 5 6

输出:

1 2 3

4 5 6

参考代码:

#include <stdio.h>int main()
{int n = 0;int m = 0;int num = 0;scanf("%d%d", &n, &m);int i = 0;int j = 0;for (i = 1; i <= n*m; i++){scanf("%d", &num);printf("%d ", num);if (i % m == 0){printf("\n");}}return 0;
}
4.矩阵相等判断

题目描述:

KK得到了两个n行m列的矩阵,他想知道两个矩阵是否相等,请你回答他。(当两个矩阵对应数组元素都相等时两个矩阵相等)。

输入描述:

第一行包含两个整数n和m,表示两个矩阵包含n行m列,用空格分隔。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

从n+2行到2n+1,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第二个矩阵中的元素。

1 < n,m < 10

输出描述:

一行,如果两个矩阵相等输出"Yes"并换行,否则输出"No"并换行。

输入:

2 2

1 2

3 4

1 2

3 4

输出:

Yes

参考代码:

#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int i = 0;int j = 0;int arr1[10][10] = { 0 };int arr2[10][10] = { 0 };for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr1[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr2[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (arr1[i][j] != arr2[i][j]){printf("No\n");return 0;}}}printf("Yes\n");return 0;
}
5.矩阵转置

题目描述:

KK有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。

输入描述:

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

输出描述:

输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。

输入:

2 3

1 2 3

4 5 6

输出:

1 4

2 5

3 6

参考代码:

#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int i = 0;int j = 0;int arr[10][10] = { 0 };for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);}}for (i = 0; i < m; i++){for (j = 0; j < n; j++){printf("%d ",arr[j][i] );}printf("\n");}return 0;
}

这篇关于C语言经典例题(11) --- 序列中整数去重、班级成绩输入输出、序列重组矩阵、矩阵相等判断、矩阵转置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/856354

相关文章

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块