祈267 2021-09-25 23:36 采纳率: 100%
浏览 44
已结题

如何比对数组内的数字?

今天考国二,有一道程序设计题,比如有个数组a[10]={1996,2007,2259,5486,6067,963,955,103,6809,5797}
统计数组里有相同的数字的数比如1996,955,5979……总共是6个,我想知道咋对比数组里的数字呢?我觉得得用if语句但是表达式要咋写呢?

  • 写回答

3条回答 默认 最新

  • 泡视界 2021-09-26 11:16
    关注

    这…… 用 if 语句恐怕是不太够吧。
    还是需要多写几行的吧
    1.要遍历每一个数
    2.要获取当前数的长度
    3.要对当前数一位一位进行比较

    int main()
    {
        int a[10] = { 1996,2007,2259,5486,6067,963,955,103,6809,5797 };
        int count = 0;
        int length = 0;
    
        for (int index = 0; index < 10; index++) {
            //获取当前数的长度
            for (int i = 1;; i++) {
                if (a[index] / (int)pow(10,i) == 0) {    
                    length = i;
                    break;
                }
            }
            
            
            bool veryGood = false;
            int tmp = 0;
            //然后对当前数一位一位进行比较
            for (int i = 1; i < length; i++) {
                tmp = a[index] / 10;
                for (int j = i; j < length; j++) {
                    if (a[index] % 10 == tmp % 10) {
                        veryGood = true;
                        break;
                    }
                    tmp /= 10;
                }
                //如果有相同数字就计数加1
                if (veryGood) {
                    count++;
                    break;
                }
                a[index] /= 10;
            }
        }
    
        printf("%d\n", count);
        
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 已采纳回答 9月26日
  • 创建了问题 9月25日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加