【C語言刷題】第十天:加量加餐繼續,代碼題訓練,融會貫通IO模式

🔥個人主頁:艾莉絲努力練劍

?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題

🍉學習方向:C/C++方向

??人生格言:為天地立心,為生民立命,為往圣繼絕學,為萬世開太平



前言:上一篇博客又帶大家刷了一些相對來說簡單的代碼題目,本篇文章我們將繼續練習下面的題目。這些題目的難度已經有的挖了大坑,大家做的時候要留意,如果做不出來,看了代碼演示后要自己多敲幾遍,去理解代碼的邏輯。

宇宙安全聲明:鑒于博主能力有限,本專欄適用于代碼小白刷題,大佬們多多包涵(抱拳)!


目錄

正文

一、班級成績輸入輸出

二、矩陣元素定位

三、序列重組矩陣

四、最高身高

五、矩陣相等判定

六、上三角矩陣判定

七、矩陣轉置

八、矩陣交換

九、楊輝三角

十、井字棋

結尾


正文

一、班級成績輸入輸出

BC101 班級成績輸入輸出

這道題沒什么好講的,我們寫一個嵌套循環,先輸入各科成績,再加起來,輸出各科成績和總分即可。注意打印各科成績的時候有一個空格。

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int i = 0;for (i = 0; i < 5; i++){double sum = 0.0;int j = 0;double score = 0.0;for (j = 0; j < 5; j++){scanf("%lf", &score);sum += score;printf("%.1lf ", score);}printf("%.1lf\n", sum);}return 0;
}

也可以這樣寫——

#include <stdio.h>int main()
{int i = 0;double score[5] = { 0 };for (i = 0; i < 5; i++){int j = 0;double sum = 0.0;for (j = 0; j < 5; j++){scanf("%lf", &score[j]);sum += score[j];}for (j = 0; j < 5; j++){printf("%.1lf ", score[j]);}printf("%.1lf\n", sum);}return 0;
}

二、矩陣元素定位

BC102 矩陣元素定位

我們直接看代碼——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int m = 0;int n = 0;int x = 0;int y = 0;scanf("%d %d", &n, &m);//這是c99語法-變長數組,但是數組不能初始化int arr[n][m];//具體給值也行int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d ", &arr[i][j]);}}scanf("%d %d", &x, &y);printf("%d\n", arr[x - 1][y - 1]);return 0;
}

當然,如果我們直接把這組代碼放到VS2022上調試,會報這樣的錯誤——?

大家想想,怎么改就可以了,可以把你想到的答案在評論區展示一下。?

uu們一定要讀題讀仔細,n和m是有范圍的,我們改一下——

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

三、序列重組矩陣

BC103 序列重組矩陣

看完題目,我們直接嘗試寫出代碼——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int i = 0;int tmp = 0;for (i = 1; i <= m * n; i++){scanf("%d", &tmp);printf("%d ", tmp);if (i % m == 0)printf("\n");}return 0;
}

?空格可以在取地址那兒,也可以直接放在兩個%d之間——

#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d %d", &n, &m);int i = 0;int tmp = 0;for (i = 1; i <= m * n; i++){scanf("%d", &tmp);printf("%d ", tmp);if (i % m == 0)printf("\n");}return 0;
}

四、最高身高

BC104 最高身高

思路:先輸入n和m,再創建x和y并賦初值,寫一個for循環嵌套,輸入身高,再比較大小,比出最高的身高就會跳出循環,?輸出打印最高身高——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d %d", &n, &m);int i = 0;int j = 0;int max = 0;int x = 0;int y = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){int height = 0;scanf("%d ", &height);if (height > max){x = i;y = j;max = height;}}}printf("%d %d", x + 1, y + 1);return 0;
}

寫里面也可以——

#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d %d", &n, &m);int max = 0;int x = 0;int y = 0;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){int height = 0;scanf("%d ", &height);if (height > max){x = i;y = j;max = height;}}}printf("%d %d", x + 1, y + 1);return 0;
}

五、矩陣相等判定

BC105 矩陣相等判定

?我們試著把代碼寫出來——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int a1[n][m];int a2[n][m];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a1[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a2[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (a1[i][j] != a2[i][j])break;}}if (i == n && j == m){printf("Yes\n");}else{printf("No\n");}return 0;
}

題目有范圍要求:1 < m,n < 10——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int a1[10][10];int a2[10][10];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a1[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a2[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (a1[i][j] != a2[i][j])break;}}if (i == n && j == m){printf("Yes\n");}else{printf("No\n");}return 0;
}

?

六、上三角矩陣判定

BC106 上三角矩陣判定

?我們把代碼敲一下——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int a[n][n];int i = 0;int j = 0;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 (i > j){if (a[i][j] != 0){//下三角有不是0的就不滿足printf("NO");return 0;}}}}printf("YES");return 0;
}

?同樣的道理——

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int a[10][10];int i = 0;int j = 0;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 (i > j){if (a[i][j] != 0){//下三角有不是0的就不滿足printf("NO");return 0;}}}}printf("YES");return 0;
}

?

七、矩陣轉置

BC107 矩陣轉置

我們直接寫——?

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int a[n][m];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a[i][j]);}}//轉置for (i = 0; i < m; i++)//3{for (j = 0; j < n; j++)//2{printf("%d ", a[j][i]);}printf("\n");}return 0;
}

?

八、矩陣交換

BC108 矩陣交換

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int m = 0;//列int n = 0;//行int arr[10][10] = { 0 };int cnt = 0;//操作的次數char op = 0;//代表操作的字符int a = 0;int b = 0;//讀取數據scanf("%d%d", &n, &m);int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);}}scanf("%d", &cnt);for (i = 0; i < cnt; i++){//讀取操作指令//注釋解釋://scanf("%d", &a);//scanf(" %c", &c); // 消耗 %d 后的所有后繼空白符,然后讀一個 charscanf(" %c %d %d", &op, &a, &b);//執行操作if (op == 'r'){//交換a和b行for (j = 0; j < m; j++){int tmp = arr[a - 1][j];arr[a - 1][j] = arr[b - 1][j];arr[b - 1][j] = tmp;}}else if (op == 'c'){//交換a和b列for (j = 0; j < n; j++){int tmp = arr[j][a - 1];arr[j][a - 1] = arr[j][b - 1];arr[j][b - 1] = tmp;}}}//輸出for (i = 0; i < n; i++){for (j = 0; j < m; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

1、如果是%c讀取字符,一定要清理前面輸入時留下的空白字符;

2、注意二維數組的下標。

?

九、楊輝三角

BC109 楊輝三角

我們之前寫過楊輝三角的題目,但是比這個簡單,我們先看看這道題的代碼——?

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

?這道題就要這樣寫了——

#define  _CRT_SECURE_NO_WARNINGS  1#include<stdio.h>int YangHuiTriAngle(int arr[][4],int n)
{for (int i = 0; i < n; i++){for (int j = 0; j <= i; j++){if (i == 0 || i == j){arr[i][j] = 1;}else{arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}}
}int main()
{int arr[4][4] = { 0 };YangHuiTriAngle(arr, 4);for (int i = 0; i < 4; i++){for (int j = 0; j <= i; j++){printf("%d ", arr[i][j]);}}printf("\n");return 0;
}

?

十、井字棋

BC110 井字棋

這道題我們寫出來是這樣的——?

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{char arr[3][3] = { 0 };int i = 0;int j = 0;char flag = 'c';for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){scanf("%c", &arr[i][j]);getchar();}}for (i = 0; i < 3; i++){if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2]){flag = arr[i][1];break;}if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i]){flag = arr[1][i];break;}}if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2]){flag = arr[1][1];}if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0]){flag = arr[1][1];}if (flag == 'K')printf("KiKi wins!");else if (flag == 'B')printf("BoBo wins!");elseprintf("No winner!");return 0;
}

結尾

往期回顧:

【C語言刷題】第九天:加量加餐繼續,代碼題訓練,融會貫通IO模式

【C語言刷題】第八天:加量加餐繼續,代碼題訓練,熟練IO模式

【C語言刷題】第七天:加量加餐繼續,代碼題訓練,熟練IO模式

【C語言刷題】第六天:繼續加量加餐,代碼題訓練,熟練IO模式

【C語言刷題】第五天:繼續加量加餐,代碼題訓練,熟練IO模式

【C語言刷題】第四天:繼續加量加餐,代碼題入門,熟練IO模式

【C語言刷題】第三天:繼續加量加餐,代碼題入門,熟練IO模式

【C語言刷題】第二天:加量加餐,代碼入門,熟悉IO模式

【C語言刷題】第一天:簡單代碼入門,熟悉IO模式

結語:本篇文章帶大家刷了十道題目,大家認真思考一下,結合知識點就能想出來,大家一定要及時回顧前面刷過的題目。本文到這里就結束了,希望對友友們有所幫助。本文的代碼相比起之前的題目,難度上已經有了加深,大家要上手操作,后面的代碼題難度上整體是逐漸遞增的,博主控制了難度,這樣友友們能比較絲滑地上手敲下去。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89698.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89698.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89698.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【WEB】Polar靶場 6-10題 詳細筆記

六.jwt 這題我又不會寫 先來了解下jwt **JWT&#xff08;JSON Web Token&#xff09;**是一種基于JSON的開放標準&#xff08;RFC 7519&#xff09;&#xff0c;主要用于在網絡應用環境間傳遞聲明信息。JWT通常用于身份驗證和信息交換&#xff0c;確保在各方之間安全地傳輸信…

高階亞馬遜運營秘籍:關鍵詞矩陣打法深度解析與應用

當競爭對手還在為單個大詞競價廝殺時&#xff0c;頭部賣家已悄然構建了一張覆蓋數千長尾關鍵詞的隱形網絡&#xff0c;精準觸達每一個細分需求&#xff0c;以更低的成本撬動更高的轉化率在亞馬遜流量紅利消退、廣告成本高企的2025年&#xff0c;傳統“爆款關鍵詞”打法已顯疲態…

【問題解決】org.springframework.web.util.NestedServletException Handler dispatch failed;

詳細異常信息&#xff1a; org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at org.springframework.web.servlet.DispatcherServlet.doDispatch(Disp…

【已解決】mac 聚焦搜索設置了edge 的地址欄搜索為google,還是跳轉到百度

問題詳情&#xff1a;在macbook的聚焦搜索中點擊edge搜索的時候&#xff0c;跳轉到了百度&#xff0c;即使已經將地址欄的搜索引擎設置為了goole&#xff0c;但是還是會跳轉到百度。解決方案&#xff1a;1、打開safari瀏覽器。&#xff08;看清了&#xff0c;是打開Safari&…

MimicMotion 讓你的圖片動起來

MimicMotion 是由騰訊公司推出的一款人工智能人像動態視頻生成框架。可以模仿視頻動作再讓圖片模仿動作姿態&#xff0c;最后生成視頻。 MimicMotion 的核心在于其置信度感知的姿態引導技術&#xff0c;確保視頻幀的高質量和時間上的平滑過渡。 以前咱們也手搭過Animate-X讓圖…

云計算考核 - 分析電子銀行需求采用微服務架構對系統進行設計

二、使用的技術以及分析 微服務&#xff08;Microservices&#xff09;是一種架構風格&#xff0c;一個大型復雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署&#xff0c;各個微服務之間是松耦合的。每個微服務僅關注于完成一件任務并很好地完成該任務。在…

Ionic 安裝使用教程

一、Ionic 簡介 Ionic 是一個基于 Web 技術&#xff08;HTML、CSS、JavaScript&#xff09;的跨平臺移動應用開發框架&#xff0c;結合 Angular、React 或 Vue 可快速構建 iOS 和 Android 應用。Ionic 提供豐富的 UI 組件、命令行工具及原生插件封裝&#xff0c;廣泛用于混合應…

滲透測試 - 簡介

Web滲透測試簡介 Web滲透測試&#xff08;Penetration Testing&#xff09;是一種模擬黑客攻擊的安全評估方法&#xff0c;旨在發現Web應用程序中的漏洞&#xff0c;幫助開發者修復問題并提升系統安全性。它涉及主動測試目標系統&#xff08;如網站或API&#xff09;的弱點&am…

云原生AI研發體系建設路徑

當AI遇上云原生&#xff0c;就像咖啡遇上牛奶&#xff0c;總能擦出不一樣的火花 ?? &#x1f4cb; 文章目錄 引言&#xff1a;為什么要建設云原生AI研發體系整體架構設計&#xff1a;搭建AI研發的"樂高積木"技術棧選擇&#xff1a;選擇合適的"武器裝備"…

【網絡安全】深入理解 IoC 與 IoA:從“事后識別”到“事前防御”

1. 簡介 在網絡安全領域&#xff0c;IoC&#xff08;Indicators of Compromise&#xff0c;入侵指標&#xff09; 和 IoA&#xff08;Indicators of Attack&#xff0c;攻擊指標&#xff09; 是兩個核心概念。它們是安全分析師識別攻擊行為、調查事件、制定防御策略的重要依據…

貪心專題練習

牛牛學括號題目要求每次操作必須刪除一個左括號和一個右括號&#xff0c;且刪除后序列仍需合法。合法的括號序列要求每個右括號之前必須有對應的左括號。分析輸入的都是合法的括號&#xff0c;即左括號右括號&#xff0c;可利用這一點去解題注意&#xff1a;中間取模是必要的&a…

屏幕分辨率修改工具 SwitchResX(Mac電腦)

蘋果電腦屏幕分辨率修改工具&#xff0c;SwitchResX for Mac&#xff0c;可以為您提供控制顯示器分辨率所需的工具和功能。 原文地址&#xff1a;屏幕分辨率修改工具 SwitchResX&#xff08;Mac電腦&#xff09;

【Java編程動手學】Java中的數組與集合

文章目錄 一、Java數組基礎1.1 數組結構概述1.2 一維數組1.2.1 聲明與初始化1.2.2 訪問與修改元素1.2.3 數組遍歷 1.3 二維數組1.3.1 聲明與初始化1.3.2 訪問與遍歷 1.4 三維數組及更高維數組1.5 數組類(Arrays)1.5.1 常用方法 1.6 復制數組1.6.1 系統復制方法1.6.2 手動復制 二…

Linux在線安裝docker

1.切換阿里云鏡像源 備份原有 repo 文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下載阿里云的 CentOS 7 repo 文件 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 清華 sudo…

第十五節:第四部分:特殊文件:XML的生成、約束(了解即可)

如何使用程序把數據寫出到XML文件中去 什么是約束XML的書寫(了解即可) DTD約束文檔的使用(了解即可) schema約束文檔的使用(了解即可) 代碼&#xff1a;如何使用程序把數據寫出到XML文件中去 package com.itheima.day2_xml;import java.io.BufferedWriter; import java.io.Fil…

cd-agent更換cd模型(自用)

需求&#xff1a;將12服務器上&#xff0c;原有的cd-agent&#xff08;目錄為/home/xgq/agent&#xff09;&#xff0c;復制一份&#xff0c;重命名為/home/xgq/agent_lx。之前的推理流程是A B兩張圖輸進去&#xff0c;通過clip模型進行領域分類&#xff0c;若是遙感領域就用ch…

微信小程序31~40

1.事件綁定和事件對象 小程序中綁定事件沒有on 方式&#xff0c;也沒有click,小程序中可以用bind方法&#xff0c;click事件也需要用tap事件來進行代替。 綁定事件分為兩種&#xff1a; bind:事件名&#xff0c;eg: <view bind:tap"fnName"><view/>bind事…

二叉樹題解——二叉樹的直徑【LeetCode】

543. 二叉樹的直徑 一、算法邏輯&#xff08;逐步通順講解每一步思路&#xff09; &#x1f3af; 問題目標&#xff1a; 求二叉樹中任意兩個節點之間的最長路徑&#xff08;以邊數計算&#xff09;。 ? 1?? 初始化變量 ans 用于記錄目前遍歷過程中的最大直徑&#xff08;…

Android開發 Android10及10+讀取外部存儲問題

前提 &#xff1a; 在做文件遍歷時&#xff0c;有的文件在Android10無法訪問&#xff0c;在注冊清單下添加android:requestLegacyExternalStorage"true"后可正常訪問&#xff0c;但一直不知道具體原因。 使用XXPermissions時讀到Android10分區存儲后才明白這里的邏輯…

IP地理定位技術綜述:理論、方法與應用創新(三)

[1]劉學婷,臺文鑫,周帆,等.IP地理定位技術綜述:理論、方法與應用創新[J].通信學報,2025,46(04):33-48. 2 IP地理定位應用場景 基于 IP 地理定位技術的特性和多樣化應用場景,本文將其主要應用分為地理定位服務、網絡安全與優化、網絡空間測繪3類,如圖7所示。基于IP地理定位…