首页 > 解决方案 > 在 c 中插入数组时出错,因为它显示插入的八进制值

问题描述

如何将值 09 添加到数组中,因为它无法插入,因为它显示该值是八进制值并且无法插入,那么我们如何将它插入到数组中是否有任何方法..

#include<stdio.h>
#include<stdlib.h>

void prin(int day, int year) {
    int data[3];
    data[0] = day;
    data[1] = 09;
    data[2] = year;
    printf("%d.%d.%d",data[0],data[1], data[2]);
}
void check(int year) {
    int day;
    if (1700 <= year && year <= 1917) {
        if (year % 4 == 0) {
            //printf("The year is leap year");
            day = 12;
            prin(day, year);
        }
        else {
            day = 13;
            prin(day, year);
        }
    }
    else {
    //printf("REached");
        if(year % 400 == 0 || (year % 4 == 0 && year % 100 == 0)) {
            //printf("Year is not leap");
            day = 13;
            prin(day, year);
        }
         else {
            day = 12;
            prin(day, year);
        }
    }
}
int main(void) {
    int year;
    //printf("Enter the value of the year");
    scanf("%d",&year);
    check(year);
    return 0;
}

错误如下:

Day_of_programmer.c: In function 'prin':
Day_of_programmer.c:7:15: error: invalid digit "9" in octal constant
    7 |     data[1] = 09;
      |               ^~

标签: c

解决方案


这是问题所在:

data[1] = 09;

前导0告诉编译器它应该期望一个八进制常量,它只包含0通过7. 只需摆脱领先0

data[1] = 9;

然后编译器会将其视为普通的十进制值。


推荐阅读