溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C語言中全正整數(shù)后再計(jì)算的示例分析

發(fā)布時(shí)間:2021-08-12 10:53:48 來源:億速云 閱讀:124 作者:小新 欄目:編程語言

這篇文章主要介紹C語言中全正整數(shù)后再計(jì)算的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

【項(xiàng)目-全正整數(shù)后再計(jì)算】

輸入3個(gè)正整數(shù),其中任一數(shù)不是正整數(shù),程序輸出Invalid number!,然后結(jié)束運(yùn)行。當(dāng)?shù)?個(gè)數(shù)為奇數(shù)時(shí),計(jì)算后兩數(shù)之和,當(dāng)?shù)?個(gè)數(shù)為偶數(shù)時(shí),計(jì)算第2數(shù)減去第3數(shù)的差。無論哪種情形,當(dāng)結(jié)果超過10時(shí)按如下示例輸出,否則什么也不輸出。

示例 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:嚴(yán)格按題目描述來,先輸入、再計(jì)算、最后輸出,直觀、清晰

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int x,y,z,a;
  printf("Enter number 1:");
  scanf("%d",&x);

  if(x<=0)//第一個(gè)數(shù)字符號(hào)驗(yàn)證
  {
    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)//第一個(gè)數(shù)字是奇數(shù)的情況
  {
    a=y+z;
  }
  else//第一個(gè)數(shù)字是偶數(shù)情況
  {
    a=y-z;
  }
  if(a>10)
  {
    printf("Paul is the monkey king,He can lift %d jin!",a);
  }
  return 0;
}

解法2:三級(jí)選擇結(jié)構(gòu)的嵌套,優(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)//第一個(gè)數(shù)字符號(hào)驗(yàn)證
  {
    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:用了一個(gè)技巧——變量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,必定是某一個(gè)數(shù)非正整數(shù)了
    printf("Invalid number.\n");
  return 0;
}

以上是“C語言中全正整數(shù)后再計(jì)算的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI