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

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

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日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?