个人学习编程(2-28) oj记录

给出一组数据,输出改组整数最大值。

出现错误需要改正:

  1. 数组输入:在 scanf("%d", &a) 这行,你应该传入数组的元素下标,如 &a[i],而不是 &a,否则会导致错误。
  2. 循环问题:在 for (int i = 1; i < n; i++)for (int j = 1; j < n; j++) 中,i++j++ 应该移除,因为你已经在 for 循环头部更新了 ij,再进行自增会导致逻辑错误。
  3. 冒泡排序的比较和交换问题:在 if (a[i++] > a[j++]) 这里,i++j++ 会导致索引问题,应直接使用 ij。同时,if 后面不应该有多余的分号 ;,它会导致逻辑错误。正确的应该是 if (a[i] > a[j])
#include <stdio.h>

int main() {
    printf("请输入数组的大小和元素,用空格隔开:");
    int a[100];  // 假设最多输入100个数
    int n;

    // 读取数组的大小
    scanf("%d", &n);

    // 读取数组的元素
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    // 使用冒泡排序来排序数组
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            if (a[j] > a[j + 1]) {
                // 交换a[j]和a[j+1]
                int temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }

    // 输出最大的元素,排序后最大值在数组的最后
    printf("最大值是:%d\n", a[n - 1]);

    return 0;
}

 判断正整数位数:

提示:

使用函数log10(n),求出n的以10为底的对数,这个对数的整数部分,就是n的科学计数法中的指数,这个整数加1就是n的位数。

 

#include <stdio.h>
#include <math.h>

int main() {
    int n;
    
    // 输入不多于5位的正整数
    printf("请输入一个不多于5位的正整数:");
    scanf("%d", &n);
    
    // 确保输入的数字是正数且不超过5位
    if (n <= 0 || n > 99999) {
        printf("输入无效,请确保输入的是一个不多于5位的正整数。\n");
        return 1;
    }
    
    // 使用log10函数计算位数
    int digits = (int)log10(n) + 1;

    // 输出位数
    printf("%d\n", digits);
    
    return 0;
}

比较3个ASCII数*    (直接用ascii来比较)

#include <stdio.h>

int main() {
    // 定义三个字符变量
    char ch1, ch2, ch3;

    // 读取输入的三个字符
    scanf("%c %c %c", &ch1, &ch2, &ch3);

    // 比较字符的ASCII值,找出最大值
    if (ch1 >= ch2 && ch1 >= ch3) {
        printf("%c\n", ch1);
    } else if (ch2 >= ch1 && ch2 >= ch3) {
        printf("%c\n", ch2);
    } else {
        printf("%c\n", ch3);
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值