View difference between Paste ID: 42H1SZhh and zGyXFmHL
SHOW: | | - or go back to the newest paste.
1
/* 
2
 * File:   chemistry.c
3
 * Author: CaptFuzzyboots
4
 *
5
 * Created on November 4, 2013, 3:32 PM
6
 */
7
8
#include <stdio.h>
9
#include <stdlib.h>
10
#define et &&
11
#define ROOM_TEMP 24
12
13
int findstate(int mp, int bp)
14
{
15
	if(ROOM_TEMP < mp)
16
		return 1;
17
	else if(ROOM_TEMP < bp et ROOM_TEMP > mp)
18
		return 2;
19
	else 
20
		return 3;
21
}
22
/*
23
 State...
24
 1 - Gaseous
25
 2 - Liquid
26
 3 - Solid
27
 */
28
int main(int argc, char** argv) {
29
	struct element {
30
		char name[20];
31
		char symbol[3];
32
		int atomicnum;
33
		int atomicmass;
34
		int bp;
35
		int mp;
36
		int state;
37
	};
38
	int choice, i;
39
	/************************/
40
	// initialize list [ bp > mp ]
41-
	char list[88] = {
41+
	struct element list[88] = {
42
                {
43
			"Hydrogen", "H", 1, 1, -253, -259 
44
		}
45
46
		{
47
			"HELIUM", "He", 2, 4 , -269, -272
48
		}
49
50
		{
51
			"Lithium", "Li", 3, 6, 1347, 180
52
		}
53
54
		{
55
			"Berryllium", "Be", 4, 9, 2970, 1278
56
		}
57
		
58
		{
59
			"Boron", "B", 5, 10, 2550, 2300 
60
		}
61
		
62
		{
63
			"Carbon", "C", 6, 12, 4827, 3500
64
		}
65
66
		{
67
			"Nitrogen", "N", 7, 14, -196, 210
68
		}
69
70
		{
71
			"Oxygen", "O", 8, 15, -183, -218
72
		}
73
74
		{
75
			"Flourine", "F", 9, 18, -188, -220 
76
		}
77
78
		{
79
			"NEON", "Ne", 10, 20, -246, - 249
80
		}
81
82
		{
83
			"Sodium", "Na", 11, 23, 883, 98
84
		}
85
86
		{
87
			"Magnesium", "Mg", 12, 24, 1090, 639
88
		}
89
90
		{
91
			"Aluminum", "Al", 13, 26, 2467,660
92
		}
93
94
		{
95
			"Silicon", "Si", 14, 28, 2355, 1410
96
		}
97
98
		{
99
			"Phosphorus", "P", 15, 30, 280, 44, 
100
		}
101
102
		{
103
			"Sulfur", "S", 16, 32, 0.052, 2.7, 
104
		}
105
106
		{
107
			"Chlorine", "Cl", 17, 35, -35, -101
108
		}
109
110
		{
111
			"ARGON", "Ar", 18, 39, -186, -189
112
		}
113
114
		{
115
			"Potassium", "K", 19, 39, 774, 64 
116
		}
117
118
		{
119
			"Calcium", "C", 20, 40, 1484, 839
120
		}
121
122
		{
123
			"Scandium", "Sc", 21, 44, 2832, 1539 
124
		}
125
126
		{
127
			"Titanium", "Ti", 22, 47, 3287, 1660
128
		}
129
130
		{
131
			"Vanadium", "V", 23, 50, 3380, 1890
132
		}
133
134
		{
135
			"Chromium", "Cr", 24, 51, 2672, 1857
136
		}
137
138
		{
139
			"Manganese", "Mn", 25, 54, 1962, 1245
140
		}
141
142
		{
143
			"Iron", "Fe", 26, 55, 2750, 1535
144
		}
145
146
		{
147
			"Cobalt", "Co", 27, 58, 2870, 1495
148
		}
149
150
		{
151
			"Nickel", "Ni", 28, 58, 2732, 1453
152
		}
153
154
		{
155
			"Copper", "Cu", 29, 63, 2567, 1083
156
		}
157
158
		{
159
			"Zinc", "Zn", 30, 65, 420, 907
160
		}
161
162
		{
163
			"Gallium", "Ga", 31, 69, 29, 2284
164
		}
165
166
		{
167
			"Germanium", "Ge", 32, 72, 937, 2830
168
		}
169
170
		{
171
			"Arsenic", "As", 33, 74, 814, 615
172
		}
173
174
		{
175
			"Selenium", "Se", 34, 78, 217, 688
176
		}
177
178
		{
179
			"Bromine", "Br", 35, 79, -7, 58
180
		}
181
182
		{
183
			"KRYPTON", "Kr", 36, 83, -157, -153
184
		}
185
186
		{
187
			"Rubidium", "Rb", 37, 85, 39, 696 
188
		}
189
190
		{
191
			"Strontium", "Sr", 38, 87, 769, 1384
192
		}
193
194
		{
195
			"Yttrium", "Y", 39, 88, 1500, 4400
196
		}
197
198
		{
199
			"Zirconium", "Zr", 40, 91, 1852, 4400
200
		}
201
202
		{
203
			"Niobium", "Nb", 41, 92, 2410, 5100
204
		}
205
206
		{
207
			"Molybdenum", "Mo", 42, 95, 2610, 4825
208
		}
209
210
		{
211
			"Technetium", "Tc", 43, 97, 2200, 4877
212
		}
213
214
		{
215
			"Ruthenium", "Ru", 44, 101, 2250, 4150
216
		}
217
218
		{
219
			"Rhodium", "Rh", 45, 102, 1970, 3727
220
		}
221
222
		{
223
			"Palladium", "Pd", 46, 106, 1560, 2927
224
		}
225
226
		{
227
			"Silver", "Ag", 47, 107, 962, 2212
228
		}
229
230
		{
231
			"Cadmium", "Cd", 48, 112, 321, 767
232
		}
233
234
		{
235
			"Indium", "In", 49, 114, 156, 2000
236
		}
237
238
		{
239
			"Tin", "Sn", 50, 118, 232, 2270
240
		}
241
242
		{
243
			"Antimony", "Sb", 51, 121, 631, 1380
244
		}
245
246
		{
247
			"Tellurium", "Te", 52, 127, 450, 1390
248
		}
249
250
		{
251
			"Iodine", "I", 53, 126, 114, 184
252
		}
253
254
		{
255
			"XENON", "Xe", 54, 131, -112, -107
256
		}
257
258
		{
259
			"Caesium", "Cs", 55, 132, 28, 669
260
		}
261
262
		{
263
			"Barium", "Ba", 56, 137, 725, 1640
264
		}
265
266
		{
267
			"(R)Lanthanum", "La", 57, 138, 826 
268
		}
269
270
		{
271
			"(R)Cerium", "Ce", 58, 140, 799, 3426
272
		}
273
274
		{
275
			"(R)Praseodymium", "Pr", 59, 140, 941, 3512
276
		}
277
278
		{
279
			"(R)Neodymium", "Nd", 60, 144, 3100, 1024, 
280
		}
281
282
		{
283
			"(R)Promethium", "Pm", 61, 145, 3000, 1100
284
		}
285
286
		{
287
			"(R)Samarium", "Sm", 62, 150, 1803, 1072
288
		}
289
290
		{
291
			"(R)Europium", "Eu", 63, 151, 1527, 826
292
		}
293
294
		{
295
			"(R)Gandolinium", "Gd", 64, 157, 3250, 1585 
296
		}
297
298
		{
299
			"(R)Terbium", "Tb", 65, 158, 3230, 1356
300
		}
301
302
		{
303
			"(R)Dysprosium", "Dy", 66, 162, 2567, 1407
304
		}
305
306
		{
307
			"(R)Holmium", "Ho", 67, 164, 2720, 1461
308
		}
309
310
		{
311
			"(R)Erbium", "Er", 68, 167, 2868, 1529	
312
		}
313
314
		{
315
			"(R)Thulium", 'Tm', 69, 168, 1950, 1545
316
		}
317
318
		{
319
			"(R)Ytterbium", "Yb", 70, 173, 1196, 824 
320
		}
321
322
		{
323
			"(R)Lutetium", "Lu", 71, 174, 3402, 1925
324
		}
325
326
		{
327
			"Hafnium", "Hf", 72, 178, 4603, 2233
328
		}
329
330
		{
331
			"Tantalum", Ta, 73, 180, 5458, 3017
332
		}
333
334
		{
335
			"Tungsten", "W", 74, 183, 5555, 3422
336
		}
337
338
		{
339
			"Rhenium", "Re", 75, 186, 5596, 3186
340
		}
341
342
		{
343
			"Osmium", "Os", 76, 190, 5012, 3033
344
		}
345
346
		{
347
			"Iridium", "Ir", 77, 192, 4428, 2466
348
		}
349
350
		{
351
			"Platium", "Pt", 78, 195, 3825, 2041
352
		}
353
354
		{
355
			"Gold", "Au", 79, 196, 2856, 1064
356
		}
357
358
		{
359
			"Mercury", "Hg", 80, 200, 356, -38
360
		}
361
362
		{
363
			"Thallium", "Tl", 81, 204, 1473, 304
364
		}
365
366
		{
367
			"Lead", "Pb", 207, 1749, 327
368
		}
369
370
		{
371
			"Bismuth", "Bi", 208, 1564, 271
372
		}
373
374
		{
375
			"Polonium", "Po", 84, 209, 962, 254
376
		}
377
378
		{
379
			"Astatine", "At", 85, 210, 230, 302
380
		}
381
382
		{
383
			"Radon", "Rn", 86, 222, -61, -71
384
		}
385
386
		{
387
			"Francium", "Fr", 87, 223, 598, 30
388
		}
389
390
		{
391
			"Radon", "Ra", 88, 226, 1737, 700
392
		}
393
	};
394
395
	/************************/
396
	// initialize element.state
397
	for(i = 1; i <= 88; i++)
398
		list[i].state = findstate(list[i].bp, list[i].mp);
399
	/************************/
400
	// I/O
401
	while(1)
402
	{
403
		// clrscr();
404
		printf("Welcome\nPlease make a choice\n1. Get info about an element\n2. exit");
405
		scanf("%d",&choice);
406
		if(choice == 2 )
407
			return 0;
408
		
409
		//clrscr();
410
		/************************/
411
		// display list of elements
412
		for(i = 1; i <= 88; i++)
413
		{
414
			printf("|%2d| %c\t|%2d| %c\n", i, list[i].name, ++i, list[i].name);		
415
		}
416
		scanf("%d",&choice);
417
		if(choice < 89 et choice > 0)
418
			{
419
				//clrscr();
420
				printf("%sSymbol : %s\n\nAtomic Number : %d\nAtomicMass : %d\nBoiling Point : %d°C\nMelting Point : %d°C\n",list[choice].name, list[choice].symbol, list[choice].atomicnum, list[choice].atomicmass, list[choice].bp, list[choice].mp);
421
				switch(list[choice].state)
422
				{
423
					case 1 :
424
					printf("State at RT : Gaseous");
425
					break;
426
	
427
					case 2 :
428
					printf("State at RT : Liquid");
429
					break;
430
	
431
					case 3 :
432
					printf("State at RT : Solid");
433
					break;
434
				}
435
	
436
			}
437
		else
438
		{
439
			printf("\nInvalid input...\nPlease try again\n>");
440
			getch();
441
		}
442
	}
443
    return 0;
444
}