C:如何在此星号平方打印程序中再次添加尝试函数

  • 本文关键字:程序 打印 函数 添加 方打印 c
  • 更新时间 :
  • 英文 :


我需要一个程序,该程序要求一个基于输入号的整数打印出Emtpy星号正方形。如果输入无效,那么我需要尝试再次询问。这是我到目前为止的目标(它已经可以根据变量号制作一个正方形),我只需要增强它,所以它再次询问用户是否太愚蠢而无法输入整数

#include <stdio.h>
int Loops() {
    int s, e, z; 
    printf("Input number n");
    scanf("%d", &s);
    for(e = 0; e < s; e++) {
        for(z = 0; z < s; z++) {   
            if(e==0 || e==s-1 || z==0 || z==s-1)
                printf("*");
            else
                printf(" ");
        }
        printf("n");
    }
}
int main() { 
   Loops();
}

我认为老师提到了添加开关案例...?

我提出了这个解决方案,用几个词来检查用户输入的数字类型,如果是> 0,则不必担心它是float,因为您是因为您已经定义了一个整数类型,并且零件不整数被自动进行。

#include <stdio.h>
int Loops() {
    int s, e, z;
    printf("Input number n");
    scanf("%d", &s);
    if (s > 0 ) {
        for (e = 0; e < s; e++) {
            for (z = 0; z < s; z++) {
                if(e == 0 || e == s - 1 || z == 0 || z == s - 1)
                    printf("*");
                else
                    printf(" ");
            }
            printf("n");
        }
    } 
    else
        Loops();
}
int main() {
   Loops();
   return 0;
}

您可以简单地使用无限循环,即while(1)循环,条件为break。假设您希望用户输入正整数并丢弃负数和字母,您可以以以下方式执行此操作:

int Loops() {
int s, e, z;
while(1)
{
    printf("Input number n");
    e = scanf("%d", &s);
    if((s <= 0) || (e != 1))
    {
        printf("Please Enter Non-negaitve Numbern");
        getchar(); //This is to consume the 'n'
    }
    else
    {
        break;
    }
}
for(e = 0; e < s; e++) {
    for(z = 0; z < s; z++) {
        if(e==0 || e==s-1 || z==0 || z==s-1)
            printf("*");
        else
            printf(" ");
    }
    printf("n");
  }
}

最新更新