日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SDUT OJ 2977

發布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SDUT OJ 2977 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面:
最近有小學弟問了,剛來的小學弟正在打基礎的階段
于是po出了老同學寫的答案^^
希望小學弟們能在c/c++的世界打出一片天地,算法的大門時刻為你們打開oooooo
A
Problem Description
輸入NN的矩陣,輸出它的轉置矩陣。
Input
第一行為整數N(1≤N≤100)。
接著是一個NN的矩陣。
Output
轉置矩陣。
Example Input
2
1 2
1 2
Example Output
1 1
2 2

#include <stdio.h> #define h 100 int main() {int a[h][h], n, i, j;scanf("%d", &n);for (i = 0; i < n; i++){for (j = 0; j < n; j++){scanf("%d", &a[i][j]);}}for(i = 0; i < n; i++){for(j = 0; j < n; j++){if (j == n - 1)printf("%d", a[j][i]);elseprintf("%d ", a[j][i]);}printf("\n");} return 0; }

B

Problem Description
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
上面的圖形熟悉嗎?它就是我們中學時候學過的楊輝三角。

Input
輸入數據包含多組測試數據。
每組測試數據的輸入只有一個正整數n(1≤n≤30),表示將要輸出的楊輝三角的層數。
輸入以0結束。

Output
對應于每一個輸入,請輸出相應層數的楊輝三角,每一層的整數之間用一個空格隔開,每一個楊輝三角后面加一個空行。

Example Input
2
3
0
Example Output
1
1 1

1
1 1
1 2 1

#include <stdio.h> int main() {int i, j, n, a[100][100];while(~scanf("%d", &n) && n){for(i = 1; i <= n; i++){for(j = 1; j <= i; j++){a[i][j] = 1;}}for(i = 1; i <= n; i++){for(j = 2; j <= i - 1; j++){a[i][j] = a[i - 1][j - 1] + a[i - 1][j];}}for(i = 1; i <= n; i++){for(j = 1; j <= i; j++){if(j == i)printf("%d", a[i][j]);elseprintf("%d ", a[i][j]);}printf("\n");}printf("\n");} return 0; }

C

Problem Description
輸入矩陣的行數,再依次輸入矩陣的每行元素,判斷該矩陣是否為對稱矩陣,若矩陣對稱輸出“yes",不對稱輸出”no“。

Input
輸入有多組,每一組第一行輸入一個正整數N(N<=20),表示矩陣的行數(若N=0,表示輸入結束)。
下面依次輸入N行數據。

Output
若矩陣對稱輸出“yes",不對稱輸出”no”。

Example Input
3
6 3 12
3 18 8
12 8 7
3
6 9 12
3 5 8
12 6 3
0
Example Output
yes
no

#include <stdio.h> int main() {int i, j, n, a[100][100], flag;while(~scanf("%d", &n) && n){flag = 1;for(i = 1; i <= n; i++){for(j = 1; j <= n; j++){scanf("%d", &a[i][j]);}}for(i = 2; i<= n; i++){for (j = 1; j <= i - 1; j++){if(a[i][j] != a[j][i])flag = 0;break;}}if(flag)printf("yes\n");elseprintf("no\n");}return 0; }

D

Problem Description
給定一個33的矩陣,請你求出對角線元素之和。
Input
按照行優先順序輸入一個33矩陣,每個矩陣元素均為整數。
Output
從左下角到右上角這條對角線上的元素之和
Example Input
1 2 3
1 2 3
1 2 3
Example Output
6

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

E
Problem Description
矩陣是非常美妙的東西,可以用來解方程,以及解決一些圖論的問題等,應用很廣泛。即使沒有學過線性代數,大家也一定接觸過矩陣,在編程中可以理解為二維的表。

矩陣有很多操作就像舞蹈一樣,如行列的置換,矩陣的轉置等。今天我們只看矩陣的旋轉,希望得到當前矩陣順時針旋轉90度以后得到的矩陣。

Input
輸入數據的第一行是一個正整數T,代表有T組測試樣例。接下來T組數據,每組數據第一行是兩個整數M,N (0 < M , N < 100),分別代表矩陣的行數和列數。然后是矩陣本身,共M行,每行N個數據用空格隔開。

Output
對于每組輸入的矩陣,第一行輸出Case #k:(k為該組數據的序號,具體格式見樣例),然后輸出其旋轉后的矩陣。

Example Input
24 41 2 3 45 6 7 86 6 6 68 8 8 82 22 22 2
Example Output
Case #1:8 6 5 18 6 6 28 6 7 38 6 8 4Case #2:2 22 2

#include <stdio.h> int main() {int a[100][100], n, m, i, j, t, k;scanf("%d", &t);for(k = 1; k <= t; k++){scanf("%d %d", &n, &m);for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a[i][j]);}}printf("Case #%d:\n", k);for(i = 0; i < m; i++){for(j = n - 1; j >= 0; j--){if (j == 0)printf("%d", a[j][i]);elseprintf("%d ", a[j][i]);}printf("\n");}}return 0; }

F
Problem Description
找出具有m行n列二維數組Array的“鞍點”,即該位置上的元素在該行上最大,在該列上最小,其中1<=m,n<=10。
Input
輸入數據有多行,第一行有兩個數m和n,下面有m行,每行有n個數。
Output
按下列格式輸出鞍點:

Array[i][j]=x

其中,x代表鞍點,i和j為鞍點所在的數組行和列下標,我們規定數組下標從0開始。

一個二維數組并不一定存在鞍點,此時請輸出None。

我們保證不會出現兩個鞍點的情況,比如:

3 3
1 2 3
1 2 3
3 6 8
Example Input
3 3
1 2 3
4 5 6
7 8 9
Example Output
Array[0][2]=3

#include <stdio.h> int main() {int m, n, i, j, a[10][10], k, l, p, flag;scanf("%d %d", &m, &n);for(i = 0; i < m; i++){for(j = 0; j < n; j++){scanf("%d", &a[i][j]);}}for(i = 0; i < m; i++){k = 0;for(j = 0; j < n; j++){if(a[i][k] < a[i][j])k = j;}flag = 1;for(p = 0; p < m; p++){if(a[i][k] > a[p][k]){flag = 0;break;}}if(flag){l = i;break;}}if(flag)printf("Array[%d][%d]=%d\n", l, k, a[l][k]);elseprintf("None\n");return 0; }

G
Problem Description
LeiQ最近參加了一個登上俱樂部,部長給他了一個n*m地圖,地圖上的每一個格子的值表示一個山的海拔高度,LeiQ現在在(x,y)表示在地圖上的位置,他想要登上地圖上最高的山,所以他想知道他爬上最高的山的山頂還需向上爬多少米。

例如:

x\y 1 2 3 1 100 130 150 2 200 300 100 3 100 150 50

現在LeiQ在(2,1),則他的位置海拔高度為200米,最高的為300米,所以還需爬100米

Input
多組輸入
每組的第一行是兩個整數n,m(1<=n,m<=100),表示地圖的大小

接下來n行,每行m個整數,表示山的海拔高度(0<=Hij<=1000)

最后一行兩個整數x,y表示LeiQ的位置

Output
輸出他還需要向上爬多少米。

Example Input
3 3
100 130 150
200 300 100
100 150 50
2 1
Example Output
100

#include <stdio.h> int main() {int i, j, n, m, a[500][500], x, y, c, p;while(~scanf("%d %d", &n, &m)){for(i = 1; i <= n; i++){for(j = 1; j <= m; j++){scanf("%d", &a[i][j]);}}scanf("%d %d", &x, &y);p = a[1][1];for(i = 1; i <= n; i++){for(j = 1; j <= m; j++){if(p < a[i][j])p = a[i][j];}}c = p - a[x][y];printf("%d\n", c);}return 0; }

————————————————
版權聲明:本文為CSDN博主「清寒飄葉」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/a_madara/article/details/53461839

總結

以上是生活随笔為你收集整理的SDUT OJ 2977的全部內容,希望文章能夠幫你解決所遇到的問題。

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