C 图形打印程序中的错误答案

C 图形打印程序中的错误答案,c,string,C,String,我已经编写了用C语言打印模式的代码。我预期的答案与我得到的答案非常不同。我对C语言非常陌生。我已经调试了代码,但找不到错误。请帮我找出错误。我的代码如下 #include <stdio.h> int main() { //code int T,i,j; scanf("%d",&T); while(T--) { char str[5]; for(i=0;i<5;i++) {

我已经编写了用C语言打印模式的代码。我预期的答案与我得到的答案非常不同。我对C语言非常陌生。我已经调试了代码,但找不到错误。请帮我找出错误。我的代码如下

#include <stdio.h>

int main() 
{
    //code
    int T,i,j;

    scanf("%d",&T);

    while(T--)
    {
        char str[5];
        for(i=0;i<5;i++)
        {
            scanf("%c",&str[i]);
        }
        printf("\n");

        for(j=1;j<=5;j++)
        {
            for(i=0;i<5-j;i++)
            {
                printf(".");
            }
            for(i=0;i<j;i++)
            {
                printf("%c",str[i]);
            }
        }
        printf("\n");
    }
    return 0;
}
该程序的预期输出如下:
预期产出:

....g
...ge
..gee
.geek
geeks
程序的实际输出如下:
实际产量:

....
...
g..
ge.
gee

更正错误代码

#include <stdio.h>

int main()
{
    //code
    int T,i,j;

    scanf("%d",&T);

    while(T--)
    {
        char str[5];
        for(i=0;i<5;i++)
        {
            scanf(" %c",&str[i]);
        }
        printf("\n");

        for(j=1;j<=5;j++)
        {
            for(i=0;i<5-j;i++)
            {
                printf(".");
            }
            for(i=0;i<j;i++)
            {
                printf("%c",str[i]);
            }
            printf("\n");
        }
    }
    return 0;
}
输出

....g
...ge
..gee
.geek
geeks
....1
...12
..123
.1234
12345

....6
...67
..678
.6789
67890
其他测试

输入

输出

....g
...ge
..gee
.geek
geeks
....1
...12
..123
.1234
12345

....6
...67
..678
.6789
67890

这可以解决您的问题:

int main()
{
//code
int T,i,j;
scanf("%d",&T);
while(T--)
{
    char str[5];
    for(i=0; i<5; i++)
    {
        scanf(" %c",&str[i]);  //first modification
    }
    printf("\n");

    for(j=1; j<=5; j++)  //second modification
    {
        for(i=0; i<=5-j; i++)
        {
            printf(".");
        }
        for(i=0; i<j; i++)
        {
            printf("%c",str[i]);
        }
    }
    printf("\n");
}
return 0;
}
intmain()
{
//代码
int T,i,j;
scanf(“%d”、&T);
而(T--)
{
char-str[5];

例如(i=0;注意,当你开始读“极客”这个词时,你实际上是从空格(“”)开始读“极客”。这就是为什么你的第一组句点不是“…g”
for(j=1;j
for(j=1;j…)和
scanf(“%c”、&str[i]);
-->
scanf(“%c”、&str i]);
对充满不稳定和可疑代码的问题的非常正确的回答。
int main()
{
//code
int T,i,j;
scanf("%d",&T);
while(T--)
{
    char str[5];
    for(i=0; i<5; i++)
    {
        scanf(" %c",&str[i]);  //first modification
    }
    printf("\n");

    for(j=1; j<=5; j++)  //second modification
    {
        for(i=0; i<=5-j; i++)
        {
            printf(".");
        }
        for(i=0; i<j; i++)
        {
            printf("%c",str[i]);
        }
    }
    printf("\n");
}
return 0;
}