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;
}