<sdut-ACM> 1175C语言实验——分割整数

本文介绍了一个简单的C语言程序,该程序能够接收一个不超过10位的长整数作为输入,并从高位到低位逐位分割这个整数,然后输出分割后的整数序列。

C语言实验——分割整数

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

从键盘输入一个长整数(不超过10位),从高位开始逐位分割并输出。

输入

正整数n,不含前导零。

输出

分割的整数序列,各整数之间用空格格开。
注意,最后一个数字后面没有空格!

示例输入

654321

示例输出

6 5 4 3 2 1





#include
   
    
int main()
{
    int b[10];
    int k = 0, n, i;
    scanf("%d",&n);
    while(n)                   //对输入的数进行分割
    {
        b[k++] = n%10;         //取余
        n = n/10;
    }
    for(i = k-1; i >= 0; i--)
    {
        if(i == k-1)           //输出注意空格
            printf("%d",b[i]);
        else
            printf(" %d",b[i]);
    }
    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 提交规范意识(无多余输出) 虽然简单,但它是后续学习分支、循环、函数的基础。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值