新生迷茫了,求指导。

img


说是n的位置,应该是个常量数。说ne大小未知啊,不能分配常量大小为0的数组,还有应输入常量表达式,表达式含有常量值。

VC++不支持定义变量大小的数组,这是GCC特有的。
你可以定义一个更大的常数的数组,或者用malloc/new动态分配代替

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7525567
  • 这篇博客你也可以参考下:输入n个正整数,将它们从小到大排序后输出,要求使用冒泡排序法。
  • 除此之外, 这篇博客: 第11届蓝桥杯大学C组中的 5,小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。请问在整数 1 至 n 中,洁净数有多少个? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 【输入格式】
    输入的第一行包含一个整数 n。
    【输出格式】
    输出一行包含一个整数,表示答案。
    【样例输入】
    30
    【样例输出】
    18

    【评测用例规模与约定】
    对于 40% 的评测用例,1 <= n <= 10000。
    对于 80% 的评测用例,1 <= n <= 100000。
    对于所有评测用例,1 <= n <= 1000000。

    
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int n=sc.nextInt();
      
      //判断是否符合要求
      if(n<1||n>1000000){
       return;
      }
      //存储总的纯净数
      int sum=0;
      
      //把输入的数字转换为String 类型的值
      for (int i = 1; i <=n; i++) {
       String str=String.valueOf(i);
       for (int j = 0; j <str.length(); j++) {
        int number=Integer.valueOf(String.valueOf(str.charAt(j)));
        if(number==2){
         break;
        }
        if(j==str.length()-1){
         sum++;
        }
       }
      }
      System.out.println(sum);
      }
     }
  • 您还可以看一下 耿职老师的2019最全微信小程序开发,零基础学习到实战,登录,收藏,搜索,留言课程中的 小程序简介及课程成果展示小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    针对该问题,可以使用动态分配数组的方式来解决。以下是具体步骤:

    1. 读取ne的大小,可以使用scanf_s函数进行读取。
    2. 使用动态分配数组的方式来创建数组。因为数组大小未知,可以使用malloc函数根据ne的大小来动态地分配内存空间。例如:
    int* arr = (int*)malloc(ne * sizeof(int));
    

    这行代码创建了一个大小为ne的整型数组,其指针被存储在arr变量中。 3. 对于无法创建大小为0的数组的情况,可以在读取ne之前增加一个判断语句,比如:

    if(ne <= 0){
        printf("Invalid size.\n");
        return 0;
    }
    

    这个语句在当前ne小于等于0时会直接输出错误信息并结束程序。 4. 对于第ne个元素赋值,可以直接使用数组下标的方式,例如:

    arr[ne-1] = 10;
    

    这行代码将数组的第ne个元素赋值为10。

    综上所述,完整代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
        int ne;
        printf("Enter the size of the array: ");
        scanf_s("%d", &ne);
        if(ne <= 0){
            printf("Invalid size.\n");
            return 0;
        }
        int* arr = (int*)malloc(ne * sizeof(int));
        arr[ne-1] = 10;
        printf("The array's %dth element is now %d.\n", ne, arr[ne-1]);
        free(arr); //释放内存
        return 0;
    }