列舉:
列舉是一種使用者定義的資料型別,它用關鍵字enum以如下語法來宣告:
enum 列舉型別名字 ;
列舉型別名字通常並不真的使用,要用的事在大括號裡的名字,因為它們就是常量符號。
結構:
宣告結構的形式:
struct point ;
struct point p1,p2; //p1 p2是point的變數。
p1和p2都是point型別,裡面有x和y的值。
也可以宣告沒有名字的struct,比如沒有point。
變數也可以寫到後面就可以:
struct pointp1,p2;
結構的初始化與賦值:
用大括號,struct point p3 = ;
可以具體指明,struct point p4=;//如果給的值小於結構的成員,則自動補0等,和陣列差不多。
結構成員可以用.運算子(點運算子)和名字訪問其成員,比如 p4.x
強制轉換的賦值:
p1=(struct point);// p1.x=10; p1.y=20;
也可以直接賦值,p1=p2; 這是陣列所無法直接完成賦值的。
結構指標:
struct point *pd = &p1;
把結構當做引數傳給引數,傳送的是值,修改函式中的結構不會影響外面的原結構。
要在函式中中修改結構的值,可以返回結構就可以,因為可以直接賦值。
另外的修改方式:可以用結構指標作為引數。 這麼做也比傳整個結構高效。
用->表示指標所指的結構變數中的成員。(*p).month=12; 相當於 p->month=12;
聯合:union
儲存···所有的成員共享乙個空間
···同一時間只有乙個成員是有效的
···union的大小是其最大的成員
初始化···對第乙個成員做初始化
自定義資料型別:typedef
typedef int length; //length等價int型別
…………
下面是mooc.11習題
時間限制
400 ms
記憶體限制
32000 kb
**長度限制
8000 b
判題程式
standard
作者 喬林(清華大學)
本題要求編寫程式,計算兩個二維平面向量的和向量。
輸入格式:
輸入在一行中按照「x1 y1 x2 y2」的格式給出兩個二維平面向量v1=(x1, y1)和v2=(x2, y2)的分量。
輸出格式:
在一行中按照「(x, y)」的格式輸出和向量,座標輸出小數點後1位(注意不能輸出-0.0)。
輸入樣例:
3.5 -2.7 -13.9 8.7輸出樣例:
(-10.4, 6.0)
/*
11.0平面向量加法
*/#include #include struct xl;
int main();
printf("(%.1f, %.1f)\n",(fabs(a.x) <0.05)?fabs(a.x):a.x ,(fabs(a.y) < 0.05)?fabs(a.y):a.y);
return 0;
} 9.8 -9.9 -9.81 0 0 -0.1 -0.01 3.5 -2.7 -13.9 8.7 0 0 -0.09 -0.09
解決-0.0問題,坑了好久好久好久……累感不愛
時間限制
400 ms
記憶體限制
32000 kb
**長度限制
8000 b
判題程式
standard
作者
喬林(清華大學)
通訊錄中的一條記錄包含下述基本資訊:朋友的姓名、出生日期、性別、固定**號碼、移動**號碼。 本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。
輸入格式:
輸入在第1行給出正整數n(<=10);隨後n行,每行按照格式「姓名 生日 性別 固話 手機」給出一條記錄。其中「姓名」是不超過10個字元、不包含空格的非空字串;生日按「yyyy/mm/dd」的格式給出年月日;性別用「m」表示「男」、「f」表示「女」;「固話」和「手機」均為不超過15位的連續數字,前面有可能出現「+」。
在通訊錄記錄輸入完成後,最後一行給出正整數k,並且隨後給出k個整數,表示要查詢的記錄編號(從0到n-1順序編號)。數字間以空格分隔。
輸出格式:
對每一條要查詢的記錄編號,在一行中按照「姓名 固話 手機 性別 生日」的格式輸出該記錄。若要查詢的記錄不存在,則輸出「not found」。
輸入樣例:
3輸出樣例:chris 1984/03/10 f +86181779452 13707010007
laolao 1967/11/30 f 057187951100 +8618618623333
qiaolin 1980/01/01 m 84172333 10086
2 1 7
laolao 057187951100 +8618618623333 f 1967/11/30not found
/*
11-1. 通訊錄的錄入與顯示(10)
*/#include struct xx;
int main()
else }
return 0;
}
這個沒什麼問題,注意下陣列大小就好了。
C語言 結構體 列舉型別 變數型別
一 結構體 多個相同型別的資料構成的集合叫做陣列,多個不同型別的資料構成的集合叫做結構體。結構體型別的作用域 定義在函式外面 全域性有效 從定義型別的那行開始,一直到檔案結尾 定義在函式 塊 內部 區域性有效 從定義型別的那行開始,一直到 塊結束 1 結構體的定義 struct是關鍵字,是結構體型別...
語言 構造型別(結構體 列舉)
42.構造型別 構造資料型別 陣列型別 結構體型別 共用體 聯合 型別。43.結構體 結構 是一種構造型別,它是由若干 成員 組成的。每乙個成員可以時乙個基本資料型別或者又是乙個構造型別。結構體可以把功能相同的資料組織起來,存在一起,用的時候方便,而且在呼叫函式時,若傳遞引數較多,傳乙個結構體相對而...
特殊型別結構 列舉
在數學和電腦科學理論中,乙個集的列舉是列出某些有窮序列集的所有成員的程式,或者是一種特定型別物件的計數。這兩種型別經常 但不總是 重疊。列舉在c c c 中,是乙個被命名的整型常數的集合,列舉在日常生活中很常見。例如表示星期的sunday,monday,tuesday,wednesday,thurs...