森侃 2022-10-02 12:50 采纳率: 59.3%
浏览 23
已结题

数据结构,从键盘输入的问题


#include <stdio.h>
#include <stdlib.h>
typedef  int ElemType;
typedef struct _seqList
{
    int* data;
    int len;
    int capacity;
}seqList;

void initList(seqList* L)
{
    L->capacity=8;
    L->len=0;
    L->data=(ElemType*)malloc(L->capacity*sizeof(ElemType));
}

void inversionList(seqList* L,int x)
{
    int temp=0;
    for(int i=0;i<x/2;i++)
    {
        temp=L->data[i];
        L->data[i]=L->data[x-i-1];
        L->data[x-i-1]=temp;
        //swap(L->data[i],L->data[n-i]);
    }
    for(int i=0;i<x;i++)
    {
        printf("%d ",L->data[i]);
    }
    printf("\n");

}
int main()
{
    seqList L;
    initList(&L);
    int n;
    scanf("%d",&n);
    int i=0;
    while(i<n)
    {
        scanf("%d ",&L.data[i]);
        i++;
    }
    inversionList(&L,n);
    return 0;
}

为什么当n=5时,只有输入六位数才可以转换前五位数,输入五位数不可以。
inversionList的意思是倒置。

img

  • 写回答

1条回答 默认 最新

  • 叶落花枯 2022-10-02 13:14
    关注

    把scanf("%d ",&L.data[i]);中%d后面的空格去掉,不要在scanf函数的格式中随便加其他字符

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月27日
  • 已采纳回答 10月19日
  • 创建了问题 10月2日