1. 程式人生 > >用c編寫的一些程式

用c編寫的一些程式

**1.列印100~200 之間的素數 **
判斷一個數是否為一個素數,我呼叫<math.h>中的sqrt(x)的寫法,正是因為一個數的因數是成對出現的,所以開方後就只需要判斷它的前一半可以減少一些迴圈次數。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
	int count = 1,i = 2;
	printf("輸出100到200之間的素數:\n");
	for (int num = 100; num <= 200; num++){
		for ( i = 2; i <= sqrt(num); i++){
			if (num%i == 0)break;
		}
		if (i > sqrt(num)){
			printf("%d ", num);
			if (count++ == 10){
				printf("\n");  //記錄每輸出十個數換一行
			}
		}
	}
	system("pause");
	return 0;
}

執行結果:
輸出100到200之間的素數:
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197 199 請按任意鍵繼續. . .
**2.輸出乘法口訣表 **
顯示乘法口訣表時,由於乘法表的1乘9與9乘1是同一個意思,所以可以沿對角線顯示出一個三角形,第一個因子永遠大於或等於第二個因子。

#include <stdio.h>
#include <stdlib.h>
int main(){
	printf("輸出一張乘法口訣表:\n");
	int i = 1, j = 1;
	for (i = 1; i <= 9; i++){                     //第一個因子
		for (j = 1; j <= i; j++){                 //第二個因子
			printf("%d * %d = %2d  ",i, j, i*j);//%2d可以控制printf十進位制位數
		}
		printf("\n");
	}
	system("pause");
	return 0;
}

執行結果:
輸出一張乘法口訣表:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
請按任意鍵繼續. . .

**3.判斷1000年—2000年之間的閏年 **
閏年是可以被四和四百整除但是不能被100整除的年份,除了被400整除的年份可以直接輸出,其餘的都要進行能不能對四整除和一百整除進行判斷,所以可以將“和”寫為&&,“除了“寫為||。

#include <stdio.h>
#include <stdlib.h>
int main(){
	printf("判斷1000到2000年之間的閏年:\n");
	int i = 1, leap = 1000;//leap year 閏年
	for (; leap <= 2000; leap++){
		if (leap%4==0&&leap%100!=0||leap%400==0){           //“和”以及“或”
				printf("%d ", leap);
			if (i++ % 10 == 0){
				printf("\n"); //每十個換一行
			}
		}
	}
	printf("\n");//最後一個換行
	system("pause");
	return 0;
}

執行結果:
判斷1000到2000年之間的閏年:
1004 1008 1012 1016 1020 1024 1028 1032 1036 1040
1044 1048 1052 1056 1060 1064 1068 1072 1076 1080
1084 1088 1092 1096 1104 1108 1112 1116 1120 1124
1128 1132 1136 1140 1144 1148 1152 1156 1160 1164
1168 1172 1176 1180 1184 1188 1192 1196 1200 1204
1208 1212 1216 1220 1224 1228 1232 1236 1240 1244
1248 1252 1256 1260 1264 1268 1272 1276 1280 1284
1288 1292 1296 1304 1308 1312 1316 1320 1324 1328
1332 1336 1340 1344 1348 1352 1356 1360 1364 1368
1372 1376 1380 1384 1388 1392 1396 1404 1408 1412
1416 1420 1424 1428 1432 1436 1440 1444 1448 1452
1456 1460 1464 1468 1472 1476 1480 1484 1488 1492
1496 1504 1508 1512 1516 1520 1524 1528 1532 1536
1540 1544 1548 1552 1556 1560 1564 1568 1572 1576
1580 1584 1588 1592 1596 1600 1604 1608 1612 1616
1620 1624 1628 1632 1636 1640 1644 1648 1652 1656
1660 1664 1668 1672 1676 1680 1684 1688 1692 1696
1704 1708 1712 1716 1720 1724 1728 1732 1736 1740
1744 1748 1752 1756 1760 1764 1768 1772 1776 1780
1784 1788 1792 1796 1804 1808 1812 1816 1820 1824
1828 1832 1836 1840 1844 1848 1852 1856 1860 1864
1868 1872 1876 1880 1884 1888 1892 1896 1904 1908
1912 1916 1920 1924 1928 1932 1936 1940 1944 1948
1952 1956 1960 1964 1968 1972 1976 1980 1984 1988
1992 1996 2000
請按任意鍵繼續. . .