C語言編程練習(二)(VS2015)

轉載自:https://blog.csdn.net/xia0liang/article/details/53157455

【程序8】

題目:輸出9*9口訣。
1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
2.程序源代碼:

#include "stdio.h"
#include "stdlib.h"
int main()
{
	int i, j, result;
	for (i = 1; i < 10; i++)
	{
		for (j = 1; j < 10; j++)
		{
			result = i*j;
			printf("%d*%d=%-3d", i, j, result);
		}
		printf("\n");
	}	
	system("pause");
}

【程序9】
題目:要求輸出國際象棋棋盤。(本題運行時結果爲漢字,後加入了頭文件#include <windows.h>以及語句SetConsoleOutputCP(437);運行成功
1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
2.程序源代碼:

#include "stdio.h"
#include "stdlib.h"
#include <windows.h>
int main()
{
	int i, j;
	SetConsoleOutputCP(437);
	for (i = 0; i < 8; i++)
	{
		for (j = 0; j < 8; j++)
			if ((i + j) % 2 == 0)
				printf("%c%c", 219, 219);
			else
				printf("  ");//兩個空格
		printf("\n");
	}
	system("pause");
}

【程序10】
題目:打印樓梯,同時在樓梯上方打印兩個笑臉。
1.程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。
2.程序源代碼:

#include "stdio.h"
#include "stdlib.h"
#include <windows.h>
int main()
{
	SetConsoleOutputCP(437);
	int i, j;
	printf("\1\1\n");//輸出兩個笑臉
	for (i = 1; i < 11; i++)
	{
		for (j = 1; j <= i; j++)
			printf("%c%c", 219, 219);
			printf("\n");
	}
	system("pause");
}

【程序11】
題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月
   後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?
1.程序分析: 兔子的規律爲數列1,1,2,3,5,8,13,21....
2.程序源代碼:

#include "stdio.h"
#include "stdlib.h"
#include <windows.h>
int main()
{
	//SetConsoleOutputCP(437);
	long f1, f2;
	int i;
	f1 = f2 = 1;
	for (i = 1; i <= 20; i++)
	{
		printf("%12ld%12ld", f1, f2);
		if (i % 2 == 0)
			printf("\n");//控制輸出每行四個
		f1 = f1 + f2;//前兩個月的加起來賦值給第三個月
		f2 = f1 + f2;//前兩個月的加起來賦值給第三個月
	}
	system("pause");
}

實現二:

#include "stdio.h"
#include "stdlib.h"
#include <windows.h>
int main()
{
	//SetConsoleOutputCP(437);
	long m[46];
	int i;
	m[0] = m[1] = 1;
	for (i=0;i<47;i++)
	{
		if (i == 0 || i == 1)
		{
			printf("第%d個月兔子數量爲:1對\n", i + 1);
		}
		else
		{
			m[i] = m[i - 1] + m[i - 2];
			printf("第%d個月兔子數量爲:%d對\n", i + 1, m[i]);
		}
	}
	system("pause");
}

【程序12】
題目:判斷101-200之間有多少個素數,並輸出所有素數。
1.程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。     
2.程序源代碼:

#include "stdio.h"
#include "stdlib.h"
#include <windows.h>
int main()
{
	//SetConsoleOutputCP(437);
	int i, j, count = 0;
	for (i = 101; i < 201; i++)
	{
		for (j = 2; j < i; j++)
		{
			if (i%j == 0)
				break;
		}
		if (j >= i)//如果j<i說明在2~j之間,i有可整除的數
		{
			count++;
			printf("%d ", i);
			if (count % 5 == 0)
				printf("\n");//每五個數換行
		}
	}
	system("pause");
}

【程序13】
題目:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數
   本身。例如:153是一個“水仙花數”,因爲153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。
2.程序源代碼:
 

#include "stdio.h"
#include "stdlib.h"
#include <windows.h>
int main()
{
	//SetConsoleOutputCP(437);
	int i, j, k, n;
	printf("water flower number is:");
	for (n = 100; n < 1000; n++)
	{
		i = n / 100;//分解出百位
		j = (n / 10) % 10;//分解出十位
		k = n % 10;//分解出個位
		if (n== (i*i + j*j + k*k))
		{
			printf("%d", n);
		}
	}
	printf("\n");
	system("pause");
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章