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语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

Python中的输入输出与注释教程

《Python中的输入输出与注释教程》:本文主要介绍Python中的输入输出与注释教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、print 输出功能1. 基础用法2. 多参数输出3. 格式化输出4. 换行控制二、input 输入功能1. 基础用法2. 类

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、