1. 程式人生 > >C語言練習題(ACM程式設計練習)

C語言練習題(ACM程式設計練習)

主要記錄用C語言做的一些程式設計題

A+B的問題一:在每一行輸入兩個數,用空格隔開,可以一直輸入,結果是兩個數相加的和的輸出。例如:
輸入 1 2
4 6
8 5
1 2
輸出 3
10
13
3

C語言程式碼實現如下 :

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j,a,b,sum[100]={0};
    while(scanf("%d
%d"
,&a,&b)!=EOF){ sum[i]=a+b; i++; } for(j=0;j<i;j++){ printf("%d\n",sum[j]); } return 0; } // while(scanf("%d %d",&a,&b)!=EOF)這條語句表示當輸入ctrl+z表示結束時退出while迴圈!關於scanf函式的返回值問題,網上有很多的講解,其實只要知道簡單的一點就行,該函式的返回值就是你正確輸進去的數的個數。

A+B的問題二:先輸入一個數n表示有n組資料,然後每一行輸入兩個數表示一組資料,結果是輸入兩個數相加的和。例如:
輸入:
3
2 3
5 6
6 9
輸出:
5
11
15
C語言實現程式碼為:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,a,b,i=0,j,sum[100]={0};
    scanf("%d",&n);
    while(i!=n){
        scanf("%d %d",&a,&b);
        sum[i]=a+b;
        i++;
    }
    for(j=0;j<i;j++){
        printf("%d\n",sum[j]);
    }
    return 0;
}

A+B的問題三:輸入多列測試數,每行有一對整數,以輸入0 0作為結束輸入的標誌,結果是輸出每一行的和。例:

輸入: 2 5
3 7
5 8
0 0
輸出: 7
10
13
C語言程式碼示例如下 :

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b,i=0,j,sum[100]={0};
    while(1){
        scanf("%d %d",&a,&b);
        if(a==0&&b==0){
            break;
        }
        sum[i]=a+b;
        i++;
    }
    for(j=0;j<i;j++){
        printf("%d\n",sum[j]);
    }
    return 0;
}

A+B問題四:輸入多個測試用例,輸入的每行測試用例的第一個數表示該行測試的個數,當測試用例的第一個數輸入為0時,則表示輸入結束,然後將每行相加的結果輸出,例:

輸入: 5 1 2 3 4 5
2 5 6
5 12 2 3 6 5
3 5 6 4
0

輸出: 15
11
28
15

C語言程式碼實現如下:

#include<stdio.h>
int main(){
    int t,i=0,j=0,sum[100]={0},a[100]={0};
    int k;
    while(scanf("%d",&t)!=EOF){
        if(t==0){
            break;
        }
        for(i=0;i<t;i++){
            scanf("%d",&a[i]);
            sum[j] += a[i];
        }
        j++;
    }
    for(k=0;k<j;k++){
        printf("%d\n",sum[k]);
    }
    return 0;
}

A+B問題五:先輸入一個數表示一共有幾行輸入,然後每行的第一個數表示該行數的個數,結果輸出每行的和。例:

輸入:2
4 1 2 3 4
5 1 2 3 4 5

輸出:10
15

C語言程式碼實現如下:

#include<stdio.h>
int main(){
    int i=0,j,n,t,d,k=0,a[100]={0},sum[100]={0};
    scanf("%d",&n);
    while(i!=n){
        scanf("%d",&d);
        for(j=0;j<d;j++){
            scanf("%d",&a[j]);
            sum[k] += a[j];
        }
        k++;
        i++;
    }
    for(t=0;t<k;t++){
        printf("%d\n",sum[t]);
    }
    return 0;
}