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

【牛客网C语言刷题合集】(三)

🌟菜鸟主页:@晨非辰的主页

👀学习专栏:《C语言刷题集》

💪学习阶段:C语言方向初学者

名言欣赏:"任何足够先进的bug都与魔法无异。"


前言:刷题博客主要记录在学习编程语言时,练习的一系列题目,比较适合C语言的初学者用来巩固提高编程能力,其余可见专栏。

1. 三角形判断

--题目链接:三角形判断_牛客网


 思路——

  •  首先根据三角形判断条件进行筛选输入数值,符合则继续判断,不符则判断下一组输入;
  • 选择语句设置特殊三角形判断条件
  • 注意:循环条件中,判断scanf返回数值(!=EOF)十分重要

代码实现:

int main() {int a, b, c = 0;while (scanf("%d %d %d", &a, &b, &c) != EOF){ // 注意 while 处理多个 case// 64 位输出请用 printf("%lld") to //判断是满足两边之和大于第三边if ((a + b <= c) || (a + c <= b) || (b + c <= a)){printf("Not a triangle!\n");}//等边三角形判断else if (a == b && b == c){printf("Equilateral triangle!\n");}//等腰三角形判断else if ((a == b) || (a == c)  || (c == b)){printf("Isosceles triangle!\n");}else{printf("Ordinary triangle!\n");}}return 0;
}

2. X 型图案

--题目链接:X型图案_牛客网


 实现思路——

         --第一眼看输出示例,感觉和多维数组的打印类似,那么就可以想到因该会有循环嵌套;

  • 大体结构

        --最外层循环判断输入(2~20),条件单一,使用while循环;

        --中间嵌套一层for循环,观察输出(在 a×a 矩阵打印两条对角线(*),其余位置填空格)

        --关键发现

                --主对角线:行号 b == 列号 c(如 (0,0)(1,1)

                --副对角线:列号 c == a - b - 1(如 a=3 时,(0,2)(1,1)(2,0))。

        -- 实现:用双重循环遍历每个位置 (b,c),满足上述任意条件时打印 *,否则打印空格。

每行结束换行。


int main() 
{int a;while(scanf("%d", &a)!=-1){for(int b = 0;b < a;b++){for(int c = 0;c < a;c++){if(b == c){printf("*");}else if(c == a-b-1){printf("*");}else {printf(" ");}}printf("\n");}}return 0;
}

  

3.矩阵转换

--题目链接: 矩阵转换_牛客网

   


--实现思路:

        --看输出示例,需要数组打印;

  • 大体结构

        --定义完需要的变量后,先要进行数组内容输入;一层for循环设置行数,嵌套第二层for循环设置列数,内部行、列输入;

        --对于转置输出,需要将行、列颠倒,根据数组下标进行输出; 一列一列的输出;


// 矩阵转置
int main()
{int n,m = 0;//行、列scanf("%d%d", &n, &m);//输入确定行列int num[10][10];//行输入数字int i, j = 0;for (i = 0; i < n; i++){//列输入数值for (j = 0; j < m; j++){scanf("%d", &num[i][j]);}}//转置for (i = 0;i < m; i++){for (j = 0; j < n;j++){printf("%d", num[j][i]);}printf("\n");}}

4. 逆序打印

题目链接:逆序打印_牛客网

 --这道题目大家应该都有思路,就不多bb了,直接上代码:

int main()
{//创建数组,先初始化0int arr[10] = {0};//循环输入for (int i = 0; i < 10; i++){scanf("%d", &arr[i]);}//循环打印for (int j = 9; j >= 0; j--){printf("%d ", arr[j]);}return 0;
}

结语:本篇内容收录在《C语言刷题集》中,主要分享的是有关分支循环语句、数组题目的练习,难度不一,一定程度上能够有效提升编程能力,喜欢的朋友们,三连后一起来学习吧!!!

http://www.dtcms.com/a/298056.html

相关文章:

  • 2025年-ClickHouse 高性能实时分析数据库(大纲版)
  • 【开发杂谈】用AI玩AI聊天游戏:使用 Electron 和 Python 开发大模型语音聊天软件
  • 如何搭建Linux环境下的flink本地集群
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-26,(知识点:硬件电路的调试方法:信号追踪,替换,分段调试)
  • 飞算 JavaAI “撤回接口信息” 功能:误删接口不用慌,一键恢复更省心
  • Linux 设备驱动模型
  • WINDOWS10系统重装软件篇
  • QML图形效果之阴影效果(DropShadow与InnerShadow)
  • Cacti命令执行漏洞分析(CVE-2022-46169)
  • compileSdkVersion和targetSdkVersion可以不一样的版本吗
  • 图论:并查集
  • 深入解析JVM垃圾回收调优:性能优化实践指南
  • Python 数据可视化之 Matplotlib 库
  • Java常用命令、JVM常用命令
  • RAG面试内容整理-3. 向量检索原理与常用库(ANN、FAISS、Milvus 等)
  • blender基本操作
  • flutter TextField 失去焦点事件
  • Qt:qRegisterMetaType函数使用介绍
  • 安全风险监测平台:被动应对向主动预防的转变
  • Ethereum:告别 personal API,拥抱 Geth 的独立签名器 Clef
  • [HarmonyOS] Harmony LiteOS-A 驱动框架深度解析:HDF 让万物互联更简单
  • EC 技术赋能:福佑防爆风扇如何平衡安全与节能?
  • JVM相关面试八股
  • Mysql实现高可用(主从、集群)
  • Unity GC 系列教程第五篇:高级 GC 内核
  • Python(32)Python内置函数全解析:30个核心函数的语法、案例与最佳实践
  • IPv6网络排障详细步骤指南(附工具命令+配置检查点+典型案例)
  • 【MAC的VSCode使用】
  • Python 爬虫实战指南:按关键字搜索淘宝商品
  • 使用Redis实现MySQL的数据缓存