Zero-Se 2016-12-02 02:54 采纳率: 91.7%
浏览 1063
已采纳

求教,一个c小程序,请大神帮忙改善一下,只要求输入整数,输入其他的都报错

/*


说明:本程序为测试而用,不考虑四边形的不稳定性(2016.12.01)

*/
#include
#include
#include

int main(int argc,char* argv[])
{
int a, b, c, d;
int T;
int kase = 0;
printf("请输入测试次数:");
scanf("%d", &T);
while(T--)
{
printf("第%d次输入\n",++kase);
printf("请输入A的边长:\n");
scanf("%d", &a);
printf("请输入A条的对边长:\n");
scanf("%d", &c);
printf("请输入A边的左邻边长:\n");
scanf("%d", &b);
printf("请输入A边的右邻边长:\n");
scanf("%d", &d);
if ((a < 1 || a>100) || (b < 1 || b>100) || (c < 1 || c>100) || (d < 1 || d>100))
{
printf("无效输入:请输入1~100的整数\n");
printf("******************************\n");
}
else if ((a + b + c <= d) || (b + c + d <= a) || (c + d + a <= b) || (d + a + b <= c))
{
printf("无效输入:不能形成四边形\n");
printf("******************************\n");
}
else if ((a == c) && (b == d))
{
if (a == b)
{
printf("该四边形是:正方形\n");
printf("******************************\n");
}
else
{
printf("该四边形是:长方形\n");
printf("******************************\n");
}
}
else if (!0)
{
printf("不规则四边形\n");
printf("******************************\n");
}
}
return 0;
}


  • 写回答

7条回答 默认 最新

  • 看得到你的人头 2016-12-02 04:42
    关注

    程序大概是这么个意思,可以按照自己的思路来修改

     /*
    
    ----------------------------------------------------------
    说明:本程序为测试而用,不考虑四边形的不稳定性(2016.12.01)
    ----------------------------------------------------------
    
    */
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    
    bool IsLegalInteger(const char * ch)
    {
        //判断是否大于1小于100
        int temp = atoi(ch);
        if ((temp < 1 || temp > 100))
        {
            printf("无效输入:请输入1~100的整数\n");
            printf("******************************\n");
            return false;
        }
        return true;
    }
    
    int main(int argc,char* argv[])
    {
        const char ouputWords[4][50] = {"请输入A的边长:\n"
                                        ,"请输入A条的对边长:\n"
                                        ,"请输入A边的左邻边长:\n"
                                        ,"请输入A边的右邻边长:\n"};
        int edge[4];
        int i;
        int T;
        int kase = 0;
        char inputChar[20];
        bool flag;
        printf("请输入测试次数:");
        scanf("%d", &T);
        while(T--)
        {
            flag = true;
            printf("第%d次输入\n",++kase);
    
            for (i = 0; i < 4; i++)
            {
                printf(ouputWords[i]);
                scanf("%s",inputChar);
                if(!IsLegalInteger(inputChar))//是否为合法的整数,即大于1小于100
                {
                    flag = false;
                    break;
                }
                else
                {
                    edge[i] = atoi(inputChar);
                }
            }
            if (!flag)//没有出现不符合规则的输入
            {
                if ((edge[0] + edge[1] + edge[2] <= edge[3]) || (edge[1] + edge[2] + edge[3] <= edge[0]) || (edge[2] + edge[3] + edge[0] <= edge[1]) || (edge[3] + edge[0] + edge[1] <= edge[2]))
                {
                    printf("无效输入:不能形成四边形\n");
                    printf("******************************\n");
                }
                else if ((edge[0] == edge[2]) && (edge[1] == edge[3]))
                {
                    if (edge[0] == edge[1])
                    {
                        printf("该四边形是:正方形\n");
                        printf("******************************\n");
                    }
                    else
                    {
                        printf("该四边形是:长方形\n");
                        printf("******************************\n");
                    }
                }
                else if (!0)
                {
                    printf("不规则四边形\n");
                    printf("******************************\n");
                }
            }
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择