我输入scanf接收的输入后,程序立即退出

我输入scanf接收的输入后,程序立即退出,c,C,我正在试着做一个钻石形状。我要求用户输入一个数字,然后我制作一个2n+1乘以2n+1的形状。我要的不是星星而是一封信,而是打印出来的。我还打印了句点,而不是空格。 我的程序已停止运行。它要求我输入,然后窗口消失,程序消失。 我真的需要一个提示。是的,这是一个家庭作业问题 #include <stdio.h> void main(){ int number_user_Input; int temp; char letter; int shape_dim

我正在试着做一个钻石形状。我要求用户输入一个数字,然后我制作一个2n+1乘以2n+1的形状。我要的不是星星而是一封信,而是打印出来的。我还打印了句点,而不是空格。
我的程序已停止运行。它要求我输入,然后窗口消失,程序消失。 我真的需要一个提示。是的,这是一个家庭作业问题

#include <stdio.h>

void main(){
    int number_user_Input;
    int temp;
    char letter;
    int shape_dimension;

    printf("Enter a number please: ");
    while((temp=scanf("%d", &number_user_Input))==0)
    {
        scanf("%*[^\n]");
        printf("Please enter an actual number:\n");
    }
    if(temp==EOF)
    {
        printf("Nothing to read, number was not found.\n");
    }
    else
    {
        printf("You typed: %d\n", number_user_Input);
    }
    printf("Please type only one letter: ");
    scanf(" %c", &letter);
    shape_dimension = 2*number_user_Input+1;
    printf("Shape dimensions are: %d \n", shape_dimension);
    for(int i=0; i<shape_dimension; i++)
    {
         for(int j=1; j <shape_dimension-i; j++)
        {
           printf(".");
        }
        for(int j=1; j<2*i-1; j++){
            printf("%c", letter);
        }
        printf("\n");

    }

    for(int i=shape_dimension-1; i>=1; i--)
    {
        for(int j=1;j<=shape_dimension-i;j++){
            printf(".");
        }
        for(int j=1;j<=2*i-1;j++){
            printf("%c", letter);

        }
        printf("\n");
}
}
#包括
void main(){
整数用户输入;
内部温度;
字符字母;
int形_维;
printf(“请输入一个数字:”);
while((temp=scanf(“%d”,&number\u user\u Input))==0)
{
scanf(“%*[^\n]”);
printf(“请输入实际数字:\n”);
}
如果(温度==EOF)
{
printf(“无需读取,找不到编号。\n”);
}
其他的
{
printf(“您键入的:%d\n”,数字\用户\输入);
}
printf(“请只键入一个字母:”);
scanf(“%c”和字母);
形状尺寸=2*数字用户输入+1;
printf(“形状尺寸为:%d\n”,形状尺寸);

对于(inti=0;i我认为将节更改为该节将解决您的问题

for(int i=0; i<shape_dimension; i++){
    for(int j=0; j <shape_dimension-i; j++){
        printf(".");
    }

    for(int j=0; j<2*i-1; j++){
        printf("%c", letter);
    }
    printf("\n");

}

//~ printf("\n");

for(int i=shape_dimension; i>=1; i--){

    for(int j=0;j<shape_dimension-i;j++){
        printf(".");
    }

    for(int j=0;j<2*i-1;j++){
        printf("%c", letter);
    }
    printf("\n");
}

for(int i=0;i我认为将此部分更改为将解决您的问题

for(int i=0; i<shape_dimension; i++){
    for(int j=0; j <shape_dimension-i; j++){
        printf(".");
    }

    for(int j=0; j<2*i-1; j++){
        printf("%c", letter);
    }
    printf("\n");

}

//~ printf("\n");

for(int i=shape_dimension; i>=1; i--){

    for(int j=0;j<shape_dimension-i;j++){
        printf(".");
    }

    for(int j=0;j<2*i-1;j++){
        printf("%c", letter);
    }
    printf("\n");
}

for(int i=0;i“它要求我输入,然后窗口消失,程序终止。”尝试直接从终端运行它,看看它在退出之前实际上没有输出任何东西。这个程序。为什么要使用诸如
scanf(%*[^\n]”之类的黑魔法
当一个人可以使用
fgets
/
sscanf
?@EugeneSh。尤其是在显示错误消息之前。非常感谢大家。我修复了它。很奇怪,但将void main()更改为int main()并返回零“它要求我输入,然后窗口消失,程序死亡。”试着直接从终端运行它,看看它在退出之前实际上没有输出任何东西。这个程序。为什么要使用黑魔法,比如
scanf(“%*[^\n]”)
当一个人可以使用
fgets
/
sscanf
?@EugeneSh。尤其是在显示错误消息之前。非常感谢大家。我修复了它。很奇怪,但是将void main()更改为int main()并返回零