3、if 语句的嵌套-项目5-全正整数后再计算

1. 任务描述

输入3个正整数,其中任一数不是正整数,程序输出Invalid number!,然后结束运行。
当第1个数为奇数时,计算后两数之和,
当第1个数为偶数时,计算第2数减去第3数的差。
无论哪种情形,当结果超过10时按如下示例输出,否则什么也不输出。

       示例 1:
                Enter number 1: 2
                Enter number 2: -7
                Invalid number!
       示例2:
                Enter number 1: 17
                Enter number 2: 3
                Enter number 3: 6
       示例3:
                Enter number 1: 16
                Enter number 2: 3
                Enter number 3: 6
       示例4:
                Enter number 1: 11
                Enter number 2: 4
                Enter number 3: 22
                Result: 26
       示例5:
                Enter number 1: 246
                Enter number 2: 22
                Enter number 3: 4
                Result: 18
       示例6:
                Enter number 1: 246
                Enter number 2: 4
                Enter number 3: 22

2. 程序流程图

在这里插入图片描述

3. 代码实现

/*
*Copyright(c)2019,yafangma@126.com
*All rights reserved.
*文件名称:int_calculation_2.cpp 
*作    者:马娅芳
*完成日期:2019.1.10
*版 本 号: v3.0

*问题描述:输入3个正整数,其中任一数不是正整数,程序输出Invalid number!,然后结束运行。
           当第1个数为奇数时,计算后两数之和,
           当第1个数为偶数时,计算第2数减去第3数的差。
           无论哪种情形,当结果超过10时按如下示例输出,否则什么也不输出。
           示例 1:
                    Enter number 1: 2
                    Enter number 2: -7
                    Invalid number!
           示例2:
                    Enter number 1: 17
                    Enter number 2: 3
                    Enter number 3: 6
           示例3:
                    Enter number 1: 16
                    Enter number 2: 3
                    Enter number 3: 6
           示例4:
                    Enter number 1: 11
                    Enter number 2: 4
                    Enter number 3: 22
                    Result: 26
           示例5:
                    Enter number 1: 246
                    Enter number 2: 22
                    Enter number 3: 4
                    Result: 18
           示例6:
                    Enter number 1: 246
                    Enter number 2: 4
                    Enter number 3: 22

*程序输入:3个正整数 
*程序输出:计算结果 或 输出"Invalid number!" 
*/

#include <stdio.h>

int main(){
	int num_1, num_2, num_3, result;
	
	printf("Enter number 1:");
	scanf("%d", &num_1);
	
	if(num_1 > 0)
	{
		printf("Enter number 2:");
		scanf("%d", &num_2);
		
		if(num_2 > 0)
		{
			printf("Enter number 3:");
			scanf("%d", &num_3);
			
			if(num_3 > 0 )
			{
				//printf("%d\t%d\t%d\n", num_1, num_2, num_3);  // 打印输入的3个整数,方便调试
				
				if(num_1 % 2 != 0)
				{
					result = num_2 + num_3;
				}
				else
				{
					result = num_2 - num_3;
				}
				if(result > 10)
				{
					printf("Result:%d\n", result);
				}
			}
			
			else
			{
				printf("Invalid number!\n");
			}
		}
		
		else
		{
			printf("Invalid number!\n");
		}
	}
	
	else
	{
		printf("Invalid number!\n");
	} 

	return 0;
}

4. 运行结果

①示例1
在这里插入图片描述

②示例2
在这里插入图片描述

③示例3
在这里插入图片描述

④示例4
在这里插入图片描述

⑤示例5
在这里插入图片描述

⑥示例6
在这里插入图片描述

5. 版本1.0

除示例①外,其他示例均可以按要求输出。在v1.0中,需要三个整数都输入完毕后再进行计算是否可以进行的判断,不满足示例①中对三个数进行逐一排除,然后再进行计算的功能。

/*
*Copyright(c)2019,yafangma@126.com
*All rights reserved.
*文件名称:int_calculation.cpp
*作    者:马娅芳
*完成日期:2019.1.10
*版 本 号: v1.0

*问题描述:输入3个正整数,其中任一数不是正整数,程序输出Invalid number!,然后结束运行。
           当第1个数为奇数时,计算后两数之和,
           当第1个数为偶数时,计算第2数减去第3数的差。
           无论哪种情形,当结果超过10时按如下示例输出,否则什么也不输出。

*程序输入:3个正整数 
*程序输出:计算结果 或 输出"Invalid number!" 
*/

#include <stdio.h>

int main(){
	int num_1, num_2, num_3, result;
	
	printf("Enter number 1: ");
	scanf("%d", &num_1);

	printf("Enter number 2: ");
	scanf("%d", &num_2);
	   
	printf("Enter number 3: ");
	scanf("%d", &num_3);
	
	    
	
	
	if(num_1 < 0 || num_2 < 0 || num_3 < 0 )
	{
		printf("Invalid number!");
	}

	
    else
    {
		if(num_1 % 2 != 0)
		{
			result = num_2 + num_3;
			if(result > 10)
			{
				printf("Result:%d",result);
			}
			
		}
		else
		{
			result = num_2 - num_3;
			if(result > 10)
			{
				printf("Result:%d",result);
			}
			
		}
    }
	
	return 0;
}

6. 版本2.0

示例都可以按要求输出,但是对3个整数逐一进行正整数检查后,在计算之前又进行了一次3个数是否都为正整数的判断,总觉得哪里不对,有多余的操作。画流程图之后再写,得到了“代码实现”部分的v3.0。下面是v2.0的代码。

/*
*Copyright(c)2019,yafangma@126.com
*All rights reserved.
*文件名称:int_calculation_1.cpp 
*作    者:马娅芳
*完成日期:2019.1.10
*版 本 号: v2.0

*问题描述:输入3个正整数,其中任一数不是正整数,程序输出Invalid number!,然后结束运行。
           当第1个数为奇数时,计算后两数之和,
           当第1个数为偶数时,计算第2数减去第3数的差。
           无论哪种情形,当结果超过10时按如下示例输出,否则什么也不输出。

*程序输入:3个正整数 
*程序输出:计算结果 或 输出"Invalid number!" 
*/

#include <stdio.h>

int main(){
	int num_1, num_2, num_3, result;
	
	printf("Enter number 1: ");
	scanf("%d", &num_1);
		
	if(num_1 <= 0)
	{
		printf("Invalid number!\n");
	}
	
	else
   {
		printf("Enter number 2: ");
	    scanf("%d", &num_2);
	
	    if(num_2 <= 0)
	    {
	         printf("Invalid number!\n");	
	    }
	    else
	    {
	    	 printf("Enter number 3: ");
	         scanf("%d", &num_3);
	
	        if(num_3 <= 0)
         	{
	        	printf("Invalid number!\n");
         	}
		}
	}	

//	printf("%d\t%d\t%d\n", num_1, num_2, num_3);
	
    if(num_1 > 0 && num_2 > 0 || num_3 > 0 )
    {
	
		if(num_1 % 2 != 0)
		{
			result = num_2 + num_3;
			if(result > 10)
			{
				printf("Result:%d",result);
			}
			
		}
		else
		{
			result = num_2 - num_3;
			if(result > 10)
			{
				printf("Result:%d",result);
			}
			
		}
    }
	
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值