2301_76663372 2023-04-08 21:14 采纳率: 0%
浏览 43

C语言变量型报错:表达式必须具有整数或未区分范围的枚举类型,是用未初始化的内存“z”和小标不是整型


#include <iostream>
#include <math.h>
using namespace std;
int main() {
    double lat1, lon1, lat2, lon2, x, y;
    cout << "请输入纬度1(单位:度):" << endl;
    cin >> lat1;
    cout << "请输入经度1(单位:度):" << endl;
    cin >> lon1;
    cout << "请输入纬度2(单位:分):" << endl;
    cin >> lat2;
    cout << "请输入经度2(单位:分):" << endl;
    cin >> lon2;
    char arr[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','I','S','T','U','V'};
    x = (lat1 + 5) / 6;
    y = (lon1 + 5) / 6;
    int z = arr[x];
    cout << "1:100万图幅编号" << z << "—— " << y << endl;
    return 0;
}


有三个错误:表达式必须具有整数或未区分范围的枚举类型,是用未初始化的内存“z”和小标不是整型

  • 写回答

2条回答 默认 最新

  • 独处东汉 2023-04-08 21:29
    关注
    #include <iostream>
    #include <math.h>
    using namespace std;
    int main() {
        double lat1, lon1, lat2, lon2;
        cout << "请输入纬度1(单位:度):" << endl;
        cin >> lat1;
        cout << "请输入经度1(单位:度):" << endl;
        cin >> lon1;
        cout << "请输入纬度2(单位:分):" << endl;
        cin >> lat2;
        cout << "请输入经度2(单位:分):" << endl;
        cin >> lon2;
        char arr[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','I','S','T','U','V'};
        int x = (int)((lat1 + 5) / 6); // 修改
        int y = (int)((lon1 + 5) / 6); // 修改
        if (x >= 0 && x < sizeof(arr)/sizeof(arr[0])) { // 新增
            cout << "1:100万图幅编号" << arr[x] << "—— " << y << endl; // 修改
        } else {
            cout << "x值超出范围" << endl; // 新增
        }
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月8日

悬赏问题

  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住