C語言 陣列專題

2021-07-16 00:10:24 字數 1380 閱讀 1467

青島科技大學資訊科學技術學院軟體15級2015-2016學年第一學期學習了如下課程:軟體技術導論(2學分)、c語言程式設計(3.5學分)、高等數學(5學分)、體育(2學分)、英語(3學分)、中國革命史(2學分)6門課程,為了對學生的考試成績進行分析、統計、排名、學分等進行有效管理,結合學生的學號、姓名、學年度(2015-2016第一學期可用15161標識)資訊,程式設計實現如下功能:

(1)根據考試成績計算每位同學本學期取得的學分,例如:c語言程式設計3.5學分,甲同學考試成績(包括重考成績)>=60,即取得該門課程的3.5學分,否則該門課程學分為0;

(2)計算上述6門功課的平均分,每位同學考試成績的平均分。

(3)為進行獎學金評定,對所有學生的進行由高到低的排序,排序的規則是學分高的在前、學分低的在後,學分相同的情況下,平均分高的在前,平均分低的災後。

要求:1.首先根據題目要求進行資料結構的設計,即學生包含哪些分量,這些分量又是何種型別,長度是多少?

2.根據功能需求設計程式的結構

3.程式設計實現程式功能。

使用動態記憶體分配函式「malloc」,初始化指向空指標「null」,使用完畢要用「free」函式釋放

#include"stdio.h"

#include"stdlib.h"

typedef struct//*********************以學生為單位的結構體

student;

typedef struct//******************儲存科目名稱的結構體

course1;

course1 course [6]=

, ,,,

,,

};int main()

; student *stu=null;

printf("請輸入要錄入的學生個數:");

scanf("%d",&n);

stu=(student*)malloc(n*sizeof(student));//***************建立動態陣列

for(i=0;i=60)

stu[i].credit+=2;

if(stu[i].score[1]>=60)

stu[i].credit+=3.5;

if(stu[i].score[2]>=60)

stu[i].credit+=5;

if(stu[i].score[3]>=60)

stu[i].credit+=2;

if(stu[i].score[4]>=60)

stu[i].credit+=3;

if(stu[i].score[5]>=60)

stu[i].credit+=2;

} student temp;//*****************排序

for(i=0;i

C語言難點專題 陣列和指標

陣列和指標是c中常見的資料結構,和基本型別不同,這兩個資料結構可以表示多個資料的集合。在理解和區分這兩個概念前,先了解一下記憶體模型。記憶體就相當於街道兩邊的房子,記憶體位址,就是房子的門牌號。記憶體和房子一樣,可以存放需要的資料。現在問題就來了,怎麼描述一排排的房子 記憶體資料 呢?這裡有兩個方案...

c語言專題

本篇作為乙個引子,領著大家梳理c語言中難點或容易忽視的知識點,知識點以專題形式展開。專題一 結構占用記憶體長度 在linux windows上執行下面一段程式,你能總結出struct記憶體對齊規則嗎?struct ta struct tb struct tc printf size ta d tb ...

C語言陣列專題知識點總結

c語言陣列專題知識點易錯點總結及做題感悟一.知識點總結 1.一維陣列的定義和初始化.注 c語言陣列的下標都是從0開始的 在定義陣列時不能使用變數定義陣列的大小,如果前面沒有對n進行巨集定義 define n 5 則a n 則不對,因為n不是乙個確定的數 在對陣列定義時,不要讓陣列下標越界訪問 2.二...