1. 程式人生 > >杭電acm的第1000題c語言解法

杭電acm的第1000題c語言解法

首先我選擇的是c語言的解法,開始是輸入如下的答案:

#include "stdio.h"
int main(void)
{
long long a,b;
scanf("%d", &a);
scanf("%d", &b);
printf("%d\n", a+b);

}

該程式只能輸入一次資料,而杭電acm1000題問題描述是:

Each line will contain two integers A and B. Process to end of file.
意思是每一行包含A和B這兩個int型的整數,

Process to end of file 就是處理到檔案的結束。

把每一行的兩個數字加起來,然後打印出來,直到檔案末尾。

所以代表可以輸入多組資料,直到你的輸入EOF為止。

正確的程式應該是:

#include "stdio.h"
int main(void)
{
int a, b;
while (scanf("%d %d", &a, &b) != EOF)
printf("%d\n", a + b);

}

對於

while (scanf("%d %d", &a, &b) != EOF)的解釋如下;

1、eof在c中定義為-1,vs2013的原話為

#define EOF -1;

2、只要scanf()讀取一個整數,就會返回1.

3、所以它等價於while (scanf("%d %d", &a, &b) != -1),即scanf仍在持續接受鍵盤輸入區內的整數資料進入到標準輸入區。

windows中ctrl+Z 會產生 一個 EOF 碼,拍入 鍵盤緩衝區,因為沒有單個EOF 鍵,只能用組合鍵拍入。Linux的又不一樣的

相關推薦

acm1000c語言解法

首先我選擇的是c語言的解法,開始是輸入如下的答案:#include "stdio.h"int main(void){ long long a,b; scanf("%d", &a); scanf("%d", &b); printf("%d\n", a+b);}該

ACM1002(A + B Problem II)答案 java版

方法一: package hduacm; import java.util.Scanner; public class Main{ public static void main(String[] args) throws Exception{

ACM1008——Elevator

#include <stdio.h> #include <stdlib.h> int main() { int n,i,flag; while(scanf("%d",&n)&&n) { int *a=(int *)m

ACM1005——Number Sequence

#include <stdio.h> #include <stdlib.h> int main(){ int a,b,n,i; while(scanf("%d %d %d",&a,&b,&n)&&(a

acm1003Max Sum ( 動態規劃)

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 169492    Accepted Submi

ACM1003——Max Sum

#include <stdio.h> #include <stdlib.h> int main() { int T,sum,start,end,i,j,k,r,num,s; scanf("%d",&T); for(r=1;r<

ACM1007——Quoit Design

#include <iostream> #include <algorithm> #include <cmath> using namespace std; const int SIZE = 100005; typedef struct { double x; dou

OJ11頁2000-2009道C語言

月的天數 3.1 clu else 要求 max 本質 轉換 err 1. ASCII碼排序 問題描述 輸入三個字符後,按各字符的ASCII碼從小到大的順序輸出這三個字符 Input: 輸入數據有多組,每組占一行,有三個字符組成,之間無空格 Output: 對於每組輸入

ACM2001-------C語言

計算兩點間的距離 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 181355    Accepted Subm

C語言 ACM 1276 士兵佇列訓練問題

#include<stdio.h> #include<string.h> int main() {  int n,a,i,j,str1[5050],str2[5050],b;  scanf("%d",&n);  while(n--){   b=0;   memset(str1,

acm公選課作業解題報告——三章 貪心演算法。

課堂筆記: 在對問題求解時,總是作出在當前看來是最好的選擇。也就是說,不從整體上加以考慮,它所作出的僅僅是在某種意義上的區域性最優解(是否是全域性最優,需要證明)。很多貪心型別的題目都不是最樸素的貪心,而是需要做一些變化,對於我們,關鍵是找到貪心的本質! 求解基本步驟:

實驗樓樓賽4期C語言專案挑戰 -遠端 Shell

這道題實際上考察的是 Linux 上的 C 語言網路程式設計。並且只給出了客戶端的原始碼和服務端的二進位制檔案。需要根據客戶端程式碼編譯和執行的狀態來找 bug,必要的時候需要進行除錯跟蹤。 在客戶端程式碼檔案中包含了多個 socket 程式設計中容易犯的錯誤:

2018省賽九屆藍橋杯真C語言B組題解 全球變暖

標題:全球變暖你有一張某海域NxN畫素的照片,"."表示海洋、"#"表示陸地,如下所示:........##.....##........##...####....###........其中"上下左右"四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。  由於全

七屆藍橋杯大賽個人賽省賽(軟體類)真 C語言B組 3

B組2題和A組的是重複的,so,跳過~ 題目:湊算式      B      DEF A + --- + ------- = 10      C      GHI      (如果顯示有問題,可以參見【圖1.jpg】)    這個算式中A~I代表1~9的數字,不同的字

acm 1000

import java.util.*; /**  * 求a+b的值  * @author cwx  *  */ public class Main{     public static void ma

2018 藍橋杯 省賽 B組 原 C語言B組 第二 九屆藍橋杯真+答案+解析

這段資訊是(一共10個漢字):4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 1

acm 1084 What Is Your Grade? 比較考人的簡單

#include <iostream> #include <cstdio> #include <algorithm> #include <cstring>

2018省賽九屆藍橋杯真C語言B組題解 日誌統計

標題:日誌統計小明維護著一個程式設計師論壇。現在他收集了一份"點贊"日誌,日誌共有N行。其中每一行的格式是:ts id  表示在ts時刻編號id的帖子收到一個"贊"。  現在小明想統計有哪些帖子曾經是"熱帖"。如果一個帖子曾在任意一個長度為D的時間段內收到不少於K個贊,小明就

七屆藍橋杯大賽個人賽省賽(軟體類)真 C語言B組 1

本來想繼續擼a組第三道的,然而一小時還沒弄會。。。so決定改天再弄。先做做b組的。畢竟報的b哈哈。 題目:煤球數目 有一堆煤球,堆成三角稜錐形。具體: 第一層放1個, 第二層3個(排列成三角形),

ACM 2005 幾天?

第幾天? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 44916    Accepted Submissio