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

思路——
代码实现:
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;
}--题目链接: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;
}--题目链接: 矩阵转换_牛客网



--实现思路:
--看输出示例,需要数组打印;
--定义完需要的变量后,先要进行数组内容输入;一层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");
}
}题目链接:逆序打印_牛客网
--这道题目大家应该都有思路,就不多bb了,直接上代码:
int main()
{
//创建数组,先初始化0
int 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语言刷题集》中,主要分享的是有关分支循环语句、数组题目的练习,难度不一,一定程度上能够有效提升编程能力,喜欢的朋友们,三连后一起来学习吧!!!