計算矩陣邊緣元素之和
題目描述
輸入一個整數矩陣,計算位于矩陣邊緣的元素之和。
所謂矩陣邊緣的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
輸入格式
第一行分別為矩陣的行數n和列數m,兩者之間以一個空格分開。
接下來輸入的n行數據中,每行包含m個整數,整數之間以一個空格分開。
輸出格式
輸出對應矩陣的邊緣元素和。
樣例
樣例輸入
3 3
3 4 1
3 7 1
2 0 1
樣例輸出
15
#include <iostream>
#include<string.h>
using namespace std;
int main()
{int a[110][110];int n,m;for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){cin>>a[i][j];}}int sum = 0;for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){if( i == 1 || i == m || j == 1 || j == n ){sum = sum + a[i][j];}}}cout<<sum;return 0;
}
最長最短單詞
題目描述
輸入1行句子(不多于200個單詞,每個單詞長度不超過100),只包含字母、空格和逗號。單詞由至少一個連續的字母構成,空格和逗號都是單詞間的間隔。
試輸出第1個最長的單詞和第1個最短單詞。
輸入格式
一行句子。
輸出格式
第1行,第一個最長的單詞。
第2行,第一個最短的單詞。
樣例
樣例輸入
I am studying Programming language C in Peking University
樣例輸出
Programming
I
#include <iostream>
#include<string.h>
using namespace std;
int main()
{char str[30000],c;int sum = 0;int max = -1;int max1;int min = 1000;int min1;int i,j,k;i=0;while((c=getchar())!=EOF){str[i++]=c;}str[i]='\0'; for(j=0;j<i;j++){if(str[j]==' '||str[j]==','||str[j]=='.'){if(sum>max){max=sum;max1=j;}if(sum<min&&sum>0){min=sum;min1=j;}sum=0;}else{sum++;}}for(k=max1-max;k<max1;k++){printf("%c",str[k]);}printf("\n");for(k=min1-min;k<min1;k++){printf("%c",str[k]);}printf("\n");return 0;}