Tiyuuki 2022-11-17 20:10 采纳率: 60%
浏览 25
已结题

如何将数值赋给一个新的数组?

img

img


想问一下这个程序中如何将运算得到的数值赋给一个新数组,我这样写显示输出为空,而且感觉数组表示得也不太合适😭
谢谢大家🙏

  • 写回答

1条回答 默认 最新

  • 码上就疯 2022-11-17 20:56
    关注

    ①、i!='\0',这里应该是 s[i]!='\0' 吧
    ②、if语句或者for循环语句,如果省略了大括号,会默认后面第一行代码,也就是第一个分号前的代码为执行语句,也就说你写的if语句后面的count++,是if语句大括号外的了,每次for循环都会执行的,和你写的if语句没关系了,所以大括号除了只有一行代码,希望不要省略,养成良好习惯
    ③、你a[10]数组你定义的是char类型,最后printf()打印得是%s,应该打印%c

    #include <stdio.h>
    #include <math.h>
    int main() {
        char a[10], s[10];
        int i, j = 0, r = 0, count = 0;
        gets(s);
        for (i = 0; i < 10; i++) {
            if (s[i] >= 'a' && s[i] <= 'f') {
                a[j] = s[i];
                j++;
                continue;
            }
            if (s[i] >= 'A' && s[i] <= 'F') {
                a[j] = s[i];
                j++;
                continue;
            }
            if (s[i] >= '0' && s[i] <= '9') {
                a[j] = s[i];
                j++;
                continue;
            }
        }
        count = j;
        printf("筛选结果:%s\n", a); //输出十六进制的字符
        for (i = 0; i < count; i++) {
            j--;
            int num;
            if (a[i] >= 'a' && a[i] <= 'f') { //统一转为大写
                a[i] -= 'a' - 'A';
            }
            if (a[i] >= 'A' && a[i] <= 'F') {//获取对应10进制数字
                num = a[i] - 'A' + 10;
            } else {
                num = a[i] - '0';
            }
            r += num * pow(16, j);//转为获取十进制数值
        }
        printf("number:%d\n", r); //输出十进制
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日
  • 创建了问题 11月17日

悬赏问题

  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算