首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取输入并使用它初始化数组工作,但根据C语言,它不应该

问获取输入并使用它初始化数组工作,但根据C语言,它不应该
EN

Stack Overflow用户
提问于 2020-10-23 07:04:10
回答 1查看 35关注 0票数 0

该代码从字面上从用户获得输入和分配是数组,它在在线gdb和极客健忘问题提交中工作?

代码语言:javascript
复制
int n;
int [n];

这是可行的!,而在我搜索过的地方,n的内部数组应该是一个常量。

这是我朋友写的问题和代码的链接。

问题

代码

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int t,n;
    int rear;
    int front;
    scanf("%d",&t);
    while(t--)
    {

        scanf("%d",&n);
        int a[n],s[n];
        int temp;
        for(int i=0;i<n;i++)
            a[i]=i+1;
        front=0;
        rear=n-1;
        
        //rotation
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=i;j++)
            {
                temp=a[front];
                if(front == rear)
                {
                front = -1;
                rear = -1;
                }
                else
                {
                front = (front+1) % n;
                }

                //dequeue
                if(front == -1)
                {
                front = 0;
                }
                rear = (rear + 1) % n;

                a[rear] = temp;
                //enqueue
            }
            temp=a[front];
            if(front == rear)
            {
                front = -1;
                rear = -1;
            }
            else
            {
                front = (front+1) % n;
            }
            s[temp-1]=i;
            //dequeue

        }
        for(int i=0;i<n;i++)
        printf("%d\t",s[i]);
        printf("\n");
       

    }
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 07:07:57

这是一个VLA,它是在C99中添加的,但是C11继续,它是一个可选的特性。

引用标准:

如果不存在大小,则数组类型是不完整类型。如果大小不是表达式,而是*,则数组类型是未指定大小的可变长度数组类型,只能在具有函数原型作用域的声明或类型名称中使用;然而,这些数组是完整的类型。如果大小是整数常量表达式,且元素类型具有已知的常量大小,则数组类型不是可变长度数组类型;否则,类型是可变长度数组类型。(可变长度数组是实现不需要支持的条件特性;请参见6.10.8.3)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64495406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档