C語言項目全正整數(shù)后再計算的三種參考解答方法
【項目-全正整數(shù)后再計算】
輸入3個正整數(shù),其中任一數(shù)不是正整數(shù),程序輸出Invalid number!,然后結(jié)束運行。當?shù)?個數(shù)為奇數(shù)時,計算后兩數(shù)之和,當?shù)?個數(shù)為偶數(shù)時,計算第2數(shù)減去第3數(shù)的差。無論哪種情形,當結(jié)果超過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
解法1:嚴格按題目描述來,先輸入、再計算、最后輸出,直觀、清晰
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,y,z,a;
printf("Enter number 1:");
scanf("%d",&x);
if(x<=0)//第一個數(shù)字符號驗證
{
printf("Invalid number.");
return 0;
}
printf("Enter number 2: ");
scanf("%d",&y);
if(y<=0)
{
printf("Invalid number.\n");
return 0;
}
printf("Enter the number 3: ");
scanf("%d",&z);
if(z<=0)
{
printf("Invalid number!\n");
return 0;
}
if(x%2!=0)//第一個數(shù)字是奇數(shù)的情況
{
a=y+z;
}
else//第一個數(shù)字是偶數(shù)情況
{
a=y-z;
}
if(a>10)
{
printf("Paul is the monkey king,He can lift %d jin!",a);
}
return 0;
}
解法2:三級選擇結(jié)構的嵌套,優(yōu)先處理為正整數(shù)的情形
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,y,z,a;
printf("Enter number 1:");
scanf("%d",&x);
if(x>0)//第一個數(shù)字符號驗證
{
printf("Enter number 2: ");
scanf("%d",&y);
if(y>0)
{
printf("Enter the number 3: ");
scanf("%d",&z);
if(z>0)
{
if(x%2!=0)
a=y+z;
else
a=y-z;
if(a>10)
printf("Result: %d\n",a);
}
else
printf("Invalid number.\n");
}
else
printf("Invalid number.\n");
}
else
printf("Invalid number.\n");
return 0;
}
解法3:用了一個技巧——變量ok初值為0,代表輸入數(shù)字為非正整數(shù),只有三數(shù)均為正整數(shù)后才賦值為1,這樣,在程序結(jié)束之前,可以依據(jù)ok判定是否三數(shù)全是正整數(shù)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,y,z,a,ok=0;
printf("Enter number 1:");
scanf("%d",&x);
if(x>0)
{
printf("Enter number 2: ");
scanf("%d",&y);
if(y>0)
{
printf("Enter the number 3: ");
scanf("%d",&z);
if(z>0)
{
ok=1;
if(x%2!=0)
a=y+z;
else
a=y-z;
if(a>10)
printf("Result: %d\n",a);
}
}
}
if(ok==0) //若到此ok仍然為初值0,必定是某一個數(shù)非正整數(shù)了
printf("Invalid number.\n");
return 0;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
VS2019創(chuàng)建c++動態(tài)鏈接庫dll與調(diào)用方法實踐
動態(tài)鏈接庫是一個包含可由多個程序同時使用的代碼和數(shù)據(jù)的庫,本文主要介紹了VS2019創(chuàng)建c++動態(tài)鏈接庫dll與調(diào)用方法,具有一定的參考價值,感興趣的可以了解一下2024-06-06

