c語言 結構數組

為什么要使用結構數組?

例如有一種情況,我們需要存儲5名學生的數據。我們可以使用下面給出的結構來存儲它。

示例

#include<stdio.h>  
struct student  
{  char name[20];  int id;  float marks;  
};  
void main()
{struct student s1,s2,s3;int dummy;printf("輸入學生1的姓名,身份證和分數 ");scanf("%s %d %f",s1.name,&s1.id,&s1.marks);scanf("%c",&dummy);printf("輸入學生2的姓名,身份證和分數 ");scanf("%s %d %f",s2.name,&s2.id,&s2.marks);scanf("%c",&dummy);printf("輸入學生3的姓名,身份證和分數 ");scanf("%s %d %f",s3.name,&s3.id,&s3.marks);scanf("%c",&dummy);printf("輸出詳細信息....\n");printf("%s %d %f\n",s1.name,s1.id,s1.marks);printf("%s %d %f\n",s2.name,s2.id,s2.marks);printf("%s %d %f\n",s3.name,s3.id,s3.marks);
}

輸出結果

輸入學生1的姓名,身份證和分數 James 90 90  
輸入學生2的姓名,身份證和分數 Adoms 90 90  
輸入學生3的姓名,身份證和分數 Nick 90 90       
輸出詳細信息....        
James 90 90.000000                          
Adoms 90 90.000000                      
Nick 90 90.000000

在上面的程序中,我們在結構中存儲了3個學生的數據。但是,如果有20名學生,則該程序的復雜性將增加。在這種情況c下,我們將必須聲明20個不同的結構變量,并將其一一存儲。這將一直很困難,因為每次添加學生時都必須聲明一個變量。記住所有變量的名稱也是一項非常棘手的任務。但是,C語言中我們能夠使用聲明結構的數組,從而避免聲明不同的結構變量;相反,我們可以創建一個包含所有存儲不同實體信息的結構的集合。

C語言中的結構數組

C語言中的結構數組可以定義為多個結構變量的集合,其中每個變量都包含有關不同實體的信息。C語言中的結構數組用于存儲有關不同數據類型的多個實體的信息。結構的陣列也稱為結構的集合。

讓我們看一下存儲5個學生的信息并打印出來的結構數組的示例。

示例

#include<stdio.h>  
#include <string.h>    
struct student{    int rollno;    char name[10];    
};   
int main(){  int i;  struct student st[5];  printf("輸入5個學生數據");  for(i=0;i<5;i++){  printf("\n輸入序號:");  scanf("%d",&st[i].rollno);  printf("\n輸入姓名:");  scanf("%s",&st[i].name);  }  printf("\n學生信息列表:");  for(i=0;i<5;i++){  printf("\n序號:%d, 姓名:%s",st[i].rollno,st[i].name);  }  return 0;  
}

輸出:

輸入5個學生數據
輸入序號:1
輸入姓名:Sonoo
輸入序號:2
輸入姓名:Ratan
輸入序號:3
輸入姓名:Vimal
輸入序號:4
輸入姓名:James
輸入序號:5
輸入姓名:Sarfraz學生信息列表:
序號:1, 姓名:Sonoo
序號:2, 姓名:Ratan
序號:3, 姓名:Vimal
序號:4, 姓名:James
序號:5, 姓名:Sarfraz

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

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

相關文章

前端Date對象的使用錦集

Date 對象用于處理日期與時間。 創造對象 var d new Date(); var d new Date(milliseconds); // 參數為毫秒 var d new Date(dateString); var d new Date(year, month, day, hours, minutes, seconds, milliseconds);方法 getDate() 獲取當前日期對象是幾日(1-31) cons…

C++標準模板(STL)- 類型支持 (類型修改,添加 const 或/與 volatile 限定符到給定類型,std::add_cv)

類型特性 類型特性定義一個編譯時基于模板的結構&#xff0c;以查詢或修改類型的屬性。 試圖特化定義于 <type_traits> 頭文件的模板導致未定義行為&#xff0c;除了 std::common_type 可依照其所描述特化。 定義于<type_traits>頭文件的模板可以用不完整類型實例…

SAP的四種計量單位

在SAP中物料創建后&#xff0c;一旦發生業務&#xff0c;其基本計量單位便很難修改。由于單位無法滿足業務要求&#xff0c;往往會要求新建一個物料替代舊物料。這時候除了要將舊物料上所有的未清業務刪除外&#xff0c;還需要替換工藝與BOM中的舊物料。特別是當出現舊物料存在…

Linux學習筆記-Ubuntu下使用Crontab設置定時任務

文章目錄 一、概述二、基于crontab的設置2.1 基本命令說明2.2 使用-e指令編輯命令2.2.1 進入編輯模式2.2.2 指令信息格式2.2.4 開啟日志1) 修改rsyslog配置文件2) 重啟rsyslog3) 查看日志 2.2.3 設置后之后重啟服務 三、示例3.1 每隔一分鐘往文件中日期3.2 使用-l查看任務列表3…

越南服務器租用:企業在越南辦工廠的趨勢與當地(ERP/OA等)系統部署的重要性

近年來&#xff0c;越南逐漸成為全球企業布局的熱門目的地之一。許多企業紛紛選擇在越南設立工廠&#xff0c;以利用其低廉的勞動力成本和優越的地理位置。隨著企業在越南的擴張&#xff0c;對于當地部署ERP系統或OA系統等的需求也日益增長。在這種情況下&#xff0c;租用越南服…

上海亞商投顧:北證50指數持續大漲 短劇概念股再爆發

上海亞商投顧前言&#xff1a;無懼大盤漲跌&#xff0c;解密龍虎榜資金&#xff0c;跟蹤一線游資和機構資金動向&#xff0c;識別短期熱點和強勢個股。 一.市場情緒 滬指昨日震蕩調整&#xff0c;深成指跌超1.4%&#xff0c;創業板指跌超1.7%。北證50指數大漲超8%&#xff0c;…

ROS設置DHCP option121

配置時&#xff0c;了解格式很關鍵&#xff0c;16進制填寫格式如下&#xff1a; 將要訪問的IPV&#xff14;地址&#xff1a;192.168.100.0/24 192.168.30.254 轉換為&#xff1a;掩碼 目標網段 網關 0x18c0a864c0a81efe&#xff0c;0不用填寫 ROS配置如下圖&#xff1a; 抓…

02_使用API_String

StringBuilder StringBuilder 代表可變字符串對象&#xff0c;相對于是一個容器&#xff0c;它里面裝的字符串是可以改變的&#xff0c;就是用來操作字符串的好處&#xff1a;StringBuilder 比 String 更適合做字符串的修改操作&#xff0c;效率會更高&#xff0c;代碼也會更簡…

MacOS “xxxxx“,已損壞,無法打開,你應該將它移到廢紙簍

在這里插入圖片描述 解決方案 應用程序 - 實用工具中打開終端&#xff0c;輸入命令&#xff0c; sudo xattr -r -d com.apple.quarantine 然后將程序拖放至命令窗口&#xff0c;如下圖&#xff1a;

22. Spring源碼篇之推斷構造方法

簡介 很多時候我們的構造器都不止一個&#xff0c;那么spring怎么選擇的呢&#xff0c;簽名介紹了推斷構造方法的擴展點&#xff0c;可以使用Autowired注解去選擇使用哪個構造器&#xff0c;但是即使這樣也有可能有多個Autowired且required為false的構造器&#xff0c;那么還是…

QLineEdit響應editingFinished實現只響應一次

QLineEdit中editingFinished槽函數會在按下enter時響應兩次&#xff0c;分別是按下enter和失去焦點的時候&#xff0c;為了能讓 QLineEdit只響應其中一次&#xff0c;需定義一個全局變量m_bFlagEnter保存是否enter是否按下&#xff0c;按下后&#xff0c;則在失去焦點的時候做對…

Unity發布IOS后,使用xcode打包報錯:MapFileParser.sh:Permissiondenied

1.錯誤提示 使用xcode打包錯誤提示&#xff1a;/Users/mymac/Desktop/myproject/MapFileParser.sh: Permission denied 2.解決方案 打開控制臺輸入&#xff1a;chmod ax /Users/mymac/Desktop/myproject/MapFileParser.sh。按回車鍵執行&#xff0c;然后重新使用xcode發布程序…

【開源】基于JAVA的在線課程教學系統

項目編號&#xff1a; S 014 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S014&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S014&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 系統介紹1.2 項目錄屏 二、研究內容2.1 課程類型管理模塊2.2 課程管理模塊2…

機器學習之數據清洗和預處理

目錄 Box_Cox Box_Cox Box-Cox變換是一種用于數據預處理和清洗的方法&#xff0c;旨在使數據更符合統計模型的假設&#xff0c;特別是對于線性回歸模型。這種變換通過調整數據的尺度和形狀&#xff0c;使其更加正態分布。 Box-Cox變換的定義是: y ( λ ) { y λ ? 1 λ , i…

【深度學習】卷積神經網絡(CNN)

一、引子————邊界檢測 我們來看一個最簡單的例子&#xff1a;“邊界檢測&#xff08;edge detection&#xff09;”&#xff0c;假設我們有這樣的一張圖片&#xff0c;大小88&#xff1a; 圖片中的數字代表該位置的像素值&#xff0c;我們知道&#xff0c;像素值越大&#…

QQ怎么備份聊天記錄?3個方法教你快速備份!

QQ聊天記錄作為用戶和親人、好友以及同事之間溝通的憑證&#xff0c;可以幫助我們回憶起過去的交流內容。如果我們不小心誤刪了QQ聊天記錄或者更換了新手機&#xff0c;那么這時候就需要備份聊天記錄。qq怎么備份聊天記錄呢&#xff1f;本文將介紹3個簡單方法&#xff0c;幫助您…

MySQL - 4種基本索引、聚簇索引和非聚索引、索引失效情況

目錄 一、索引 1.1、簡單介紹 1.2、索引的分類 1.2.1、主鍵索引 1.2.2、單值索引&#xff08;單列索引、普通索引&#xff09; 1.2.3、唯一索引 1.2.4、復合索引 1.2.5、復合索引經典問題 1.3、索引原理 1.3.1、主鍵自動排序 1.3.2、索引的底層原理 1.3.3、B 樹和 B…

創作4周年

&#x1f64c;秋名山碼民的主頁 &#x1f602;oi退役選手&#xff0c;Java、大數據、單片機、IoT均有所涉獵&#xff0c;熱愛技術&#xff0c;技術無罪 &#x1f389;歡迎關注&#x1f50e;點贊&#x1f44d;收藏??留言&#x1f4dd; 獲取源碼&#xff0c;添加WX 目錄 前言機…

哈希表-set、map

當需要判斷一個元素是否在集合中時&#xff0c;就使用哈希法 散列表&#xff08;Hash table&#xff0c;也叫哈希表&#xff09;&#xff0c;是根據鍵&#xff08;Key&#xff09;而直接訪問在內存存儲位置的數據結構。 哈希表中關鍵碼就是數組的索引下標&#xff0c;然后通過…

Web框架Flask

Web框架Flask Flask簡介第一個Flask應用Flask路由Flask路由變量規則Flask URL 構建Flask重定向Flask靜態文件Flask渲染模板Flask請求對象Flask響應對象Flask CookiesFlask錯誤Flask JSON 格式的 APIFlask SessionFlask 消息閃現Flask日志Flask藍圖Flask視圖Flask Jinja2 模板F…