当前位置: 首页 > news >正文

C语言题目练习

目录

前言

1、转置矩阵

1.1 题目

描述

输入描述:

输出描述:

1.2解题

        分析:

        程序:

2、KiKi判断上三角矩阵

2.1 题目

描述

输入描述:

输出描述:

2.2 解题 

        分析:

        程序:

3、有序序列判断

3.1 题目

描述

输入描述:

输出描述:

3.2解题

        分析:

        程序:

结语


前言

        纸上得来终觉浅,觉知此事要躬行。C语言的学习不仅要了解理论知识,更要不断练习,在练习中成长。下面我将给出几到例题,并分析讲解,帮助我们在实践中了解C语言。

1、转置矩阵

1.1 题目

描述

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

输入描述:

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

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

输出描述:

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

1.2解题

        分析:

        此题就是一个对二维数组的操作,只需要在输入时按照行和列的顺序输入,输出时按照列到行反过来输出即可。

        程序:

int main()
{int a[10][10] = { 0 };int n = 0;int m = 0;scanf("%d%d", &n, &m);for (int i = 0;i < n;i++){for (int j = 0;j < m;j++){scanf("%d", &a[i][j]);}}for (int i = 0;i < m;i++){for (int j = 0;j < n;j++){printf("%d ", a[j][i]);}printf("\n");}return 0;
}

2、KiKi判断上三角矩阵

2.1 题目

描述

KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。

输入描述:

第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)

从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。

输出描述:

一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。

2.2 解题 

        分析:

        此题先输入数据,然后对左下角的数据进行判断,只要出现非0则不为上三角矩阵,输出NO。如果判断完成后未发现问题,则为上三角矩阵,输出YES

        程序:

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int arr[10][10] = { 0 };int i = 0;int j = 0;int p = 1;    //标记,如果是上三角矩阵,则为1,否则为0.for (i = 0;i < n;i++)   //输入{for (j = 0;j < n;j++){scanf("%d", &arr[i][j]);}}for (i = 0;i < n;i++)   //判断{for (j = 0;j < n;j++){if (((i - j) > 0) && (arr[i][j] != 0)){p = 0;goto end;}}}
end:if (p == 1){printf("YES\n");}else{printf("NO\n");}return 0;
}

3、有序序列判断

3.1 题目

描述

输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。

数据范围:3≤n≤50  序列中的值都满足 1≤val≤100 

输入描述:

第一行输入一个整数N(3≤N≤50)。

第二行输入N个整数,用空格分隔N个整数。

输出描述:

输出为一行,如果序列有序输出sorted,否则输出unsorted。

3.2解题

        分析:

        此题需要从两种情况进行分析:升序和降序。

        用一个变量(我用的p)来标记升序和降序以及不升不降,然后看整个数列的升降情况是否统一,也就是在遍历整个数组时p是否改变。这里要注意的是,当前后两个数据相同时,并没有破坏数列的有序性,所以需要特别判断。

        程序:

#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);int arr[50] = { 0 };int i = 0;int p = 0;int f = -1;int k = 1;for (i = 0;i < n;i++){scanf("%d", &arr[i]);}for (i = 1;i < n;i++){if (arr[i] > arr[i - 1]){p = 0;		//降序标记}else if (arr[i] < arr[i - 1]){p = 1;		//升序标记}else{p = -1;		//未改变标记}if ((f != p) && (f != -1)){k = 0;}f = p;}if (k == 1){printf("sorted");}else{printf("unsorted");}return 0;
}

结语

        不要小瞧每一次练习,每天保持练习,持之以恒,我们的C语言技术才会越发熟练。希望大家都能越来越好,不辜负自己的努力。

http://www.lryc.cn/news/312660.html

相关文章:

  • 物联网安全|TrustAsia助力PSWG应对全球物联网产品安全合规挑战
  • 基于单片机的医院输液系统设计
  • 安卓简单登录
  • 【计算机网络】DNS/ICMP协议/NAT技术
  • 2403C++,C++20协程通道
  • C语言从入门到实战——预处理详解
  • 【LabVIEW FPGA】CIC滤波器
  • 砝码称重 蓝桥杯
  • AmzTrends x TiDB Serverless:通过云原生改造实现全局成本降低 80%
  • [最佳实践] Windows上构建一个和Linux类似的Terminal
  • 租赁系统|手机租赁软件|租赁系统功能开发
  • 【设计模式 04】建造者模式
  • Python使用错误总结
  • 【Java EE初阶三十】JVM的简单学习
  • thinkphp5水平分割表partition,以及查询操作
  • docker部署aria2-pro
  • vue中Mixins
  • linux常用指令(定期更新)
  • 【项目】图书管理系统
  • 华为OD机试 - 疫情扩散时间计算 - 矩阵(Java 2024 C卷 200分)
  • [数据集][图像分类]棉花叶子病害分类数据集2293张4类别
  • 《辐射4》是一款什么样的游戏 怎样在mac电脑上玩到《辐射4》辐射4攻略 辐射4开局加点 怎么在Mac电脑玩Steam游戏
  • 视频推拉流EasyDSS平台直播通道重连无法转推的原因排查与解决
  • Javaweb之SpringBootWeb案例之自动配置案例的自定义starter测试的详细解析
  • java包的相关概念
  • window搭建本地mongo数据库并导入数据
  • 如何为Android车载应用开发通知?
  • centos上部署k8s
  • 网络安全: Kali Linux 进行 MSFvenom 程序利用
  • 浅显易懂C语言指针!!!(三)