C程序需要帮助修复我的代码(数组的概念)

C程序需要帮助修复我的代码(数组的概念),c,C,可能重复: 我已经在这段代码上工作了一周了,还没有取得任何成功。程序应该要求用户输入多个单元格。然后提示用户希望占用哪个单元格。然后,程序会在所示的已占用单元格下方放置一个“?”。我只能做基本的工作,所以没有技巧或任何我不应该知道的复杂的东西 我的程序的问题是,当用户输入5和9要占用时,它只打印“??????????????”。例如,假设我想输入10个单元格,并想占用5和9个单元格,则屏幕应如下所示: 0123456789 ? ? 这是我的全部工作: # include &l

可能重复:

我已经在这段代码上工作了一周了,还没有取得任何成功。程序应该要求用户输入多个单元格。然后提示用户希望占用哪个单元格。然后,程序会在所示的已占用单元格下方放置一个“?”。我只能做基本的工作,所以没有技巧或任何我不应该知道的复杂的东西

我的程序的问题是,当用户输入5和9要占用时,它只打印“??????????????”。例如,假设我想输入10个单元格,并想占用5和9个单元格,则屏幕应如下所示:

0123456789
     ?   ?
这是我的全部工作:

# include <stdio.h>
# define LENGTH 80

void display(int data[], int length);

int main()
{
    int input=0,i;
    int data[80];
    int index = 0;
    char occupied = '?';
    int cells,j,time;

    printf("Enter the number of cells:");
    scanf("%d", &cells);
    printf("Enter the number of cells you want occupied. The maximum number is 80. Type -1 to stop.:");
    scanf("%d", &input);
    printf("The original index is: %d",index);
    printf("\n");
    data[index] = input;
    index++;
    printf("The new index is: %d", index);
    printf("\n");

    for(i = 0; i < cells; i++) {
        printf("%d", i%10);
    }
    display(data, LENGTH);

}

void display(int data[], int length)
{
    int input=0,i;
    int index = 0;
    int cells,time;
    char occupied;


    if(input!=-1 && input <= 80) {
        data[index] = 1;
        occupied = '?';
        (char) data[index] = occupied;
    }
    else {
        data[index] = 0;
        occupied = ' ';
        (char) data[index] = occupied;
    }

    printf("\n");

    for(i = 0; i < length; i++){
        printf("%c", data[index]);
    }
}
#包括
#定义长度80
无效显示(整数数据[],整数长度);
int main()
{
int输入=0,i;
国际数据[80];
int指数=0;
字符占用='?';
int细胞,j,时间;
printf(“输入单元格数:”);
scanf(“%d”单元和单元格);
printf(“输入您希望占用的单元格数量。最大数量为80。键入-1以停止:”;
scanf(“%d”,输入(&I));
printf(“原始索引为:%d”,索引);
printf(“\n”);
数据[索引]=输入;
索引++;
printf(“新索引为:%d”,索引);
printf(“\n”);
对于(i=0;i如果(input!=-1&&input这里有很多错误。首先,您可以在一个实例中扫描数组。使用循环。其次,您错误地调用display()。使用单元格,而不是长度。我这里有一个工作代码

# include <stdio.h>

int main()
{
    int input=0,i;
    char data[80];
    int cells;
    int occupyMax = 0;
    int n = 0;

    printf("Enter the number of cells:");
    scanf("%d", &cells);

    printf("Enter number of cells you want occupied. The maximum number is 80:");
    scanf("%d", &occupyMax);

    // Ensure that # of occupied cells is lesser than max.
    if (occupyMax> cells)
    {
        printf("Error!");
        return;
    }

    // Init data to blank cells.
    for(i=0;i<80;i++)
    {
        data[i]=' ';
    }

    for( n = 0; n < occupyMax; n++) 
    {
        printf("Enter occupy cell number(Numbering starts at 0)\n");
        scanf("%d", &input );
        data[input] = '?';
    }

    // Display
    for(i = 0; i < cells; i++) 
    {
        printf("%d", i%10);
    }
    printf("\n");
    for(i = 0; i < cells; i++) 
    {
        printf("%c", data[i]);
    }
}
#包括
int main()
{
int输入=0,i;
字符数据[80];
int细胞;
int-occupyMax=0;
int n=0;
printf(“输入单元格数:”);
scanf(“%d”单元和单元格);
printf(“输入要占用的单元格数。最大值为80:”;
scanf(“%d”&occupyMax);
//确保占用单元的#小于最大值。
如果(占用最大值>单元格)
{
printf(“错误!”);
回来
}
//初始化数据到空白单元格。

对于(i=0;该线程对我没有任何帮助。在
scanf(“%d”,&input)之后
output
的值是多少我在第二天早上把这个问题告诉了所有的人,直到第二天早上我才醒来。答案与我所寻找的不相关。我只是需要有人指出我在这段代码中的错误。你真的把它分配了吗?<代码>索引<代码>等于0。你永远不会做任何事情。山姆。e代表
输入
。因此,一旦你在最后一个循环中打印80个字符,你所要做的就是输出你放入
数据[0]中的问号
。我建议你用铅笔和纸,一步一步地写下你想做的事情。举一个简单的例子。4个位置为例。然后想象一下需要做什么。然后回到你的代码。另外,你发布的代码和你拥有的完全一样吗?因为我认为这不会编译。代码是用ques编写的函数“display”:函数“display”:函数“display”:函数“display”:函数“display”:函数“display”:函数“display”中的函数“display”中的函数“display”中的函数“display”中的函数“display”中的函数“display”中的函数“display”:函数“display”中的函数“display”:函数“display”中的函数“display”中的函数“display”中的函数“display”中的函数“display”中的函数“display”中的函数“display”中上传和发布工作代码并不是最好的做法。当然,如果它的格式是这样的,你可能只是在拖拉,我没有抓住要点。嗨,这是我的第一篇帖子,我只是想帮你。话虽如此,关于代码格式的观点已经被采纳了。考虑到这是家庭作业代码,我刚刚纠正了请求者的错误t、 指出他/她的一些错误。相信我,我不会在这里浪费时间:)我想这里的政策是停止指出错误,而不是全部修复代码。这一点也被采纳了。我不是故意太苛刻,讽刺在互联网上传播得不好。但从你打字很好的回复中,我可以告诉你,你在这里会做得很好。注意,我也不是这里的老手。