日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ACM新手之八大输入输出格式

發布時間:2025/6/15 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ACM新手之八大输入输出格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在ACM題庫中,不管是文件輸出(輸入)還是標準輸出(輸入),都有著一定的格式,下面我就以杭電1089——1096為例子,簡單的介紹一下。 第一種:A+B for Input-Output Practice (I)?

【輸入】有多組輸入數據,但沒有具體的告訴你有多少組,只是讓你對應每組輸入,應該怎樣輸出。

【輸出】有多組輸出,對應著每組輸入,每組輸出占一行。

【代碼】對于上述常見的情況,我們可以用下面的代碼來解決。

沒有告訴我們有多少組,我們只需要等待即可:

  • while (scanf (“%d”,&n) != EOF)
  • 【完整代碼?】

  • #include
  • int main()
  • {
  • int m,n;
  • while(scanf("%d%d",&m,&n)!=EOF)
  • {
  • m+=n;
  • printf("%d\n",m);
  • }
  • return 0;
  • }
  • 相對應輸入,輸出只需要在while中輸出。

    第二種:A+B for Input-Output Practice (II)?

    【輸入】先輸入一個整數,告訴我們接下來有多少組數據,然后在輸入每組數據的具體值。

    【輸出】有多組輸出,對應著每組輸入,每組輸出占一行。

    【代碼】這也是一種常見的輸入形式,簡單的代碼,我們可以先用scanf函數輸入第一個整數來確定有多少行,然后在用for循環一組一組的輸入。

    【完整代碼】

  • #include
  • int main()
  • {
  • int n,x,y,i;
  • scanf("%d",&n);
  • for(i=1;i<=n;i++)
  • {
  • scanf("%d%d",&x,&y);
  • x+=y;
  • printf("%d\n",x);
  • }
  • return 0;
  • }
  • 第三種:A+B for Input-Output Practice (III)???

    【輸入】有多組輸入數據,沒有具體的告訴你有多少組,但是題目卻告訴你遇見什么結束。

    【輸出】有多組輸出,沒對應一組輸入都有相應的輸出,結束標記不用管!

    【代碼】這種類型的題目和第一種差不多,但是有一點值得注意,就是要加上結束條件。對于這道題我們可以這樣

  • while(scanf(“%d%d”, &a, &b) && (!(a==0 && b==0)))
  • 當然你也可以將條件寫在while循環的內部,條件滿足時break即可。

    【完整代碼】

  • #include
  • int main() {
  • int a,b;
  • while(scanf("%d%d",&a,&b)&&(!(a==0&&b==0))){
  • printf("%d\n",a+b);
  • }
  • return 0;
  • }
  • 第四種:A+B for Input-Output Practice (IV)

    【輸入】輸入有多組,并且題目告訴你每組輸入遇見什么結束,與第三種不同之處在于,每組輸入都有相應的細化。

    【輸出】沒有什么變化,只需要對應輸出即可。

    【代碼】這類題目的代碼是在第三種代碼的基礎之上,對于每種輸入都進行第二種的精確輸入。代碼二者結合即可!

    【完整代碼】

  • #include
  • int main()
  • {
  • int n,i,s,m;
  • while(scanf("%d",&n)!=EOF&&n!=0)
  • {
  • s=0;
  • for(i=1;i<=n;i++)
  • {
  • scanf("%d",&m);
  • s+=m;
  • }
  • printf("%d\n",s);
  • }
  • return 0;
  • }
  • 第五種:A+B for Input-Output Practice (V)

    【輸入】這次的輸入實現輸入一個整數,告訴我們有多少行,在輸入每一行。對于每一行的輸入,有劃分為第一個數和其他的數,第一個數代表那一組數據一共有多少輸入。

    【輸出】沒有變化,只需按照提議即可!

    【代碼】代碼沒有什么,只是在第二種代碼的框架上,在進行第二種輸入的細化,對于每組輸入都運行第二種的代碼框架!

    【完整代碼】

  • #include
  • int main()
  • {
  • int m,n,i,x,s,j;
  • scanf("%d",&n);
  • for(i=1;i<=n;i++)
  • {
  • s=0;
  • scanf("%d",&m);
  • for(j=1;j<=m;j++)
  • {
  • scanf("%d",&x);
  • s+=x;
  • }
  • printf("%d\n",s);
  • }
  • ?
  • return 0;
  • }
  • 第六種:A+B for Input-Output Practice (VI)?

    【輸入】有多種輸入數據,對于每組輸入數據的第一個數代表該組數據接下來要輸入數據量。 【輸出】同上!

    【代碼】這種類型的代碼,就是再套上第一種代碼的框架上,進行第三種代碼的細化,沒有什么特殊性。

    【完整代碼】

  • #include
  • int main()
  • {
  • int n,i,x,s;
  • while(scanf("%d",&n)!=EOF)
  • {
  • s=0;
  • for(i=1;i<=n;i++)
  • {
  • scanf("%d",&x);
  • s+=x;
  • }
  • printf("%d\n",s);
  • }
  • return 0;
  • }
  • ?
  • 第七種:A+B for Input-Output Practice (VII)

    【輸入】同第一種一樣

    【輸出】這道題的輸出只是簡單的在每組輸出后邊多加一個換行而已!

    【代碼】在每組輸出的后邊多加一個換行符’\n’

    【完整代碼】

  • #include
  • main()
  • {
  • int a,b;
  • while(scanf("%d%d",&a,&b)!=EOF)
  • {
  • printf("%d\n\n",a+b);
  • }
  • }
  • ?
  • 第八種:A+B for Input-Output Practice (VIII)

    【輸入】類似于第三種

    【輸出】這種類型的輸出注意的就是換行,這類題目說在輸出樣例中,每組樣例之間有什么什么,所以我們在對應輸出的同時要判斷一下是否是最后一組輸出,如果不是,就 將題目所說的東西輸出(一般是換行或空格),如果是,就直接結束。

    【代碼】沒有什么說的,你在判斷是否結束不方便的時候可以判斷是否開始,類似于判斷結束的代碼。如用for輸入,一般判斷結束,如用while輸入一般判斷初始。

    【完整代碼】

  • #include
  • int main()
  • {
  • int a,b,c,d,e;
  • while(scanf("%d",&a)!=EOF)
  • {
  • while(a--)
  • {
  • scanf("%d",&c);
  • d=0;
  • while(c--)
  • {
  • scanf("%d",&e);
  • d=d+e;
  • }
  • if(a!=0)
  • printf("%d\n\n",d);
  • else printf("%d\n",d);
  • }
  • }
  • return 0;
  • ?
  • 【綜上所述】

    根據上邊介紹的八種輸入輸出,我們可以歸納出如下內容:

    對于輸入,如果沒有告訴你有多少組,我們常用while。如果告訴你有多少組,我們用for。

    對于輸出,輸入用while,我們常常判斷是否為第一個輸出樣例,來指定特殊的輸出格式。輸入用for,我們常常判斷是否為最后的輸出樣例,來指定特殊的輸出格式。

    當然輸入輸出的格式遠遠不止上邊的八種,但它們卻是最常見的,特別是前三種是一定要掌握的。

    ?

    總結

    以上是生活随笔為你收集整理的ACM新手之八大输入输出格式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。