轉載自: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");
}