> 技术文档 > 【牛客网C语言刷题合集】(三)

【牛客网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 = 0; j--){printf(\"%d \", arr[j]);}return 0;}

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