冒泡排序

学习C++中的冒泡排序,让我感受到了编程的逻辑之美。冒泡排序通过多次遍历数组,逐个比较并交换相邻元素,最终将最大值“冒泡”到数组末尾。其实现简单,适合初学者理解。过程中,我学会了处理边界条件和优化循环,提升了调试和解决问题的能力。这次学习让我对算法有了更深的认识,也为进一步探索奠定了基础。
全部评论

相关推荐

代码部分:#include #include #include // 定义长整型别名typedef long long ll;// 素数判断函数ll pan(ll x) {    if (x == 1) return 1; // 1不是素数    if (x == 2) return 0; // 2是素数    for (ll i = 2; i         if (x % i == 0) return 1; // 如果找到因子,则不是素数    }    return 0; // 没有找到因子,是素数}// 全局变量,用于存储数字的逆序long long o = 0;// 计算数字的逆序long long hui(long long a) {    long long t[9];     memset(t, 0, sizeof(t)); // 初始化数组    t[0] = 1;    for (int i = 1; i         t[i] = 10 * t[i - 1]; // 计算10的幂    }    for (int i = 0; i  if (a / t[i] > 0 && a / t[i]             o = a * t[i]; for (int j = i - 1; j >= 0; j--) {                a /= 10;                o += a % 10 * t[j];            }        }    }    return o;}int main() {    ll t;    scanf("%lld", &t); // 读取数字    if (pan(hui(t))) {        printf("noprime\n"); // 如果逆序数不是素数,则输出noprime    } else {        printf("prime\n"); // 如果逆序数是素数,则输出prime    }    return 0;}知识点:1. **类型定义**:使用 `typedef` 定义 `ll` 作为 `long long` 的别名。2. **数学函数**:使用 `math.h` 中的 `sqrt` 函数计算平方根。3. **内存操作**:使用 `memset` 函数初始化数组。4. **数组操作**:计算10的幂并存储在数组中。5. **循环控制**:使用 `for` 循环遍历数组和计算逆序数。6. **条件判断**:使用 `if` 语句判断数字是否为素数。7. **输入输出**:使用 `scanf` 和 `printf` 函数进行输入输出操作。难点:1. **素数判断**:理解如何高效地判断一个数是否为素数。2. **逆序数计算**:实现一个函数来计算数字的逆序。3. **数组初始化**:使用 `memset` 函数正确初始化数组。4. **逻辑处理**:在计算逆序数时,需要正确处理不同位数的数字。5. **代码调试**:如果程序输出不正确,需要能够调试并找到逻辑错误。通过理解和掌握这些知识点和难点,可以更好地编写和理解涉及素数判断和逆序数计算的C语言程序。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务