oj期中测验--C语言实验——for循环打印图形(循环结构)(1954)

本文介绍了一个使用双重for循环打印特定图形的C语言程序实例。该程序由烟台大学计算机学院的马春澎编写,目的是展示如何利用循环结构绘制递增和递减的星号(*)图案。

问题及代码

Description

通过使用双重for循环语句,打印下列图形(N =4):

                                                                                                                             
   *
  ***
 *****
*******
 *****
  ***
   *

Input

N

Output

   *
  ***
 *****
*******
 *****
  ***
   *

Sample Input

4

Sample Output

   *
  ***
 *****
*******
 *****
  ***
   *

/*烟台大学计算机学院 2016
作者: 马春澎
完成日期:2016年12月1日 */

#include<stdio.h>
int main()
{
    int i,j,n;
    scanf("%d",&n);
    for(i=1; i<=n; i++)
    {
        for(j=n-i; j>0; j--)
            printf(" ");
        for(j=0; j<i; j++)
            printf("*",j);
        for(j=1; j<i; j++)
            printf("*",j);
        printf("\n");
    }
    for(i=n-1; i>0; i--)
    {
        for(j=n-i; j>0; j--)
            printf(" ");
        for(j=0; j<i; j++)
            printf("*",j);
        for(j=1; j<i; j++)
            printf("*",j);
        printf("\n");
    }
    return 0;
}
运算结果

知识点总结
循环结构的综合应用
学习心得
先看图形的规律,再编写程序
## ✅ 题目:7-104 sdut-C语言实验——求两个整数之中较大者 这是山东理工大学(SDUT)OJ 系统中的一道基础 C 语言编程题,考察 **输入输出、条件判断和最大值比较**。 --- ### 📌 题目描述(根据 SDUT 常见题型还原) > 输入两个整数,输出其中较大的那个数。 ### 🔍 输入格式: 一行,包含两个整数 `a` 和 `b`,用空格分隔。 ### 🔍 输出格式: 一个整数,表示 `a` 和 `b` 中的较大值。 ### 📌 示例 1: ``` 输入:5 10 输出:10 ``` ### 📌 示例 2: ``` 输入:-3 7 输出:7 ``` ### 📌 示例 3: ``` 输入:8 8 输出:8 ``` > ⚠️ 注意:如果两数相等,输出任意一个即可(即输出该值)。 --- ## ✅ 正确解答代码(C语言) ```c #include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); if (a >= b) { printf("%d\n", a); } else { printf("%d\n", b); } return 0; } ``` --- ## 🔍 代码解释 | 代码片段 | 功能说明 | |--------|---------| | `int a, b;` | 定义两个整型变量存储输入 | | `scanf("%d %d", &a, &b);` | 从标准输入读取两个整数 | | `if (a >= b)` | 判断 a 是否大于等于 b<br>使用 `>=` 可以在相等时优先输出 a | | `printf("%d\n", a);` | 输出较大值,并换行(重要!) | | `else` 分支 | 当 b 更大时输出 b | > ✅ 使用 `>=` 而不是 `>` 是为了处理相等的情况,确保有输出。 --- ## ✅ 其他写法(等价实现) ### 方法一:使用三目运算符(简洁写法) ```c #include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); printf("%d\n", a >= b ? a : b); return 0; } ``` ### 方法二:使用标准库函数(需引入 `fmax`,但对整数不推荐) > 不适用于本题,因为 `fmax` 是浮点函数,且 SDUT OJ 通常要求基础写法。 --- ## ❗ 常见错误与注意事项 | 错误 | 后果 | |------|------| | 忘记 `&` 符号:`scanf("%d %d", a, b);` | 运行时错误(段错误) | | 使用 `cin/cout` | 编译错误(题目要求 C 语言) | | 输出没有 `\n` 换行 | 格式错误(Presentation Error, PE) | | 写成 `if (a > b)` 而不是 `>=` | 当 a == b 时可能漏输出(取决于逻辑) | | 多余提示语句:如 `"请输入两个数:"` | 输出超范围,判为 WA | > ✅ SDUT 的 OJ 系统要求严格匹配输出格式,**不要添加任何额外文字!** --- ## ✅ 测试样例验证 | 输入 | 输出 | 是否通过 | |------|------|----------| | `5 10` | `10` | ✅ | | `-3 7` | `7` | ✅ | | `8 8` | `8` | ✅ | | `100 -50` | `100` | ✅ | --- ## ✅ 总结 这是一道典型的“入门级”程序设计题,目的是训练: - 基本输入输出(`scanf`, `printf`) - 条件控制结构(`if-else`) - 整数比较逻辑 - OJ 提交规范意识(无多余输出) 虽然简单,但它是后续学习分支、循环、函数的基础。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值