微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

打印最大大小为 20 的反向数组

如何解决打印最大大小为 20 的反向数组

#include <stdio.h>

void ArrayReverese(int a[],int Start,int End);
void printArray(int a[],int Size);
int main()
{
    int a[20],i,Size;
    int max_size = 20;

    printf("\nPlease Enter the size of an array: ");
    scanf_s("%d",&Size);
    while (Size <= 20)
    {
        //Inserting elements into the Declared Array
        for (i = 0; i < Size; i++)
        {
            scanf_s("%d",&a[i]);
        }

        ArrayReverese(a,Size - 1); //Array Reverse
        printf("Result of an Reverse array is: \n");
        printArray(a,Size); //Printing Array
        return 0;
    }
    printf("Max size of array is 20");
}
/* Function to Reverse the Given Array */
void ArrayReverese(int a[],int End)
{
    int Temp;
    while (Start < End)
    {
        Temp = a[Start];
        a[Start] = a[End];
        a[End] = Temp;
        Start++;
        End--;
    }
}
/* Function to print the Array Output */
void printArray(int a[],int Size)
{
    int i;
    for (i = 0; i < Size; i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
}

我正在编写代码来打印反向数组的输出。数组的最大大小只能是20。我放了一个max_size = 20的while循环。

这是不让数组大于 20 的最好方法吗?

a[20] 有什么帮助?是否符合最大尺寸?

解决方法

这是不让数组大于 20 的最好方法吗?

我相信最好的选择是确保输入的大小在所需的间隔内。你需要类似的东西(评论中的解释):

int main(){
    
    int a[20],Size = 0;
    int max_size = 20;

    printf("\nPlease Enter the size of an array: ");

    // loop keeps asking for a size if it's not in the interval
    do
    {
        int ret = scanf_s("%d",&Size);

        if(ret != 1){   // if the input is not parsed correctly...
            printf("Bad input. "); 
            int c;
            while((c = getchar()) != '\n' && c != EOF ) {} // clear the buffer...
        }
    // size must be more than 0 and less than 20,if not ask again
    } while (Size >= max_size &&  Size < 1 && printf("Max size of array is 20,try again: "));

    // Size is guaranteed to be [1,20[ no further checks needed here
    for (int i = 0; i < Size; i++)
    {
        scanf_s("%d",&a[i]); // check the return of this scanf also
    }

    ArrayReverese(a,Size - 1); //Array Reverse
    printf("Result of an Reverse array is: \n");
    printArray(a,Size); //Printing Array
}

a[20] 有什么帮助?它可以达到最大尺寸吗?

一个数组必须有一个大小,在这种情况下是 20,这是它的最大大小,但这并不能阻止它被溢出,程序员可以防止这种情况发生,如代码所示

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。