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;
}