|
一、输出九九乘法口诀表
使用嵌套 for 循环输出九九乘法口诀表。
实例
#include<stdio.h>
int main(){
//外层循环变量,控制行
int i = 0;
//内层循环变量,控制列
int j = 0;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
printf(&#34;%dx%d=%d\t&#34;,j,i,i*j);
}
//每行输出完后换行
printf(&#34;\n&#34;);
}
}
运行结果:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
二、斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
这个数列从第3项开始,每一项都等于前两项之和。
实例 - 输出指定数量的斐波那契数列
#include <stdio.h>
int main()
{
int i, n, t1 = 0, t2 = 1, nextTerm;
printf(&#34;输出几项: &#34;);
scanf(&#34;%d&#34;, &n);
printf(&#34;斐波那契数列: &#34;);
for (i = 1; i <= n; ++i)
{
printf(&#34;%d, &#34;, t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return 0;
}
运行结果:
输出几项: 10
斐波那契数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
实例 - 输出指定数字前的斐波那契数列
#include <stdio.h>
int main()
{
int t1 = 0, t2 = 1, nextTerm = 0, n;
printf(&#34;输入一个正数: &#34;);
scanf(&#34;%d&#34;, &n);
// 显示前两项
printf(&#34;斐波那契数列: %d, %d, &#34;, t1, t2);
nextTerm = t1 + t2;
while(nextTerm <= n)
{
printf(&#34;%d, &#34;,nextTerm);
t1 = t2;
t2 = nextTerm;
nextTerm = t1 + t2;
}
return 0;
}
运行结果:
输入一个正数: 100
斐波那契数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
三、 求两数的最大公约数
用户输入两个数,求这两个数的最大公约数。
实例 - 使用 for 和 if
#include <stdio.h>
int main()
{
int n1, n2, i, gcd;
printf(&#34;输入两个正整数,以空格分隔: &#34;);
scanf(&#34;%d %d&#34;, &n1, &n2);
for(i=1; i <= n1 && i <= n2; ++i)
{
// 判断 i 是否为最大公约数
if(n1%i==0 && n2%i==0)
gcd = i;
}
printf(&#34;%d 和 %d 的最大公约数是 %d&#34;, n1, n2, gcd);
return 0;
}
运行结果:
输入两个正整数,以空格分隔: 81 153
81 和 153 的最大公约数是 9
实例 - 使用 while 和 if
#include <stdio.h>
int main()
{
int n1, n2;
printf(&#34;输入两个数,以空格分隔: &#34;);
scanf(&#34;%d %d&#34;,&n1,&n2);
while(n1!=n2)
{
if(n1 > n2)
n1 -= n2;
else
n2 -= n1;
}
printf(&#34;GCD = %d&#34;,n1);
return 0;
}
运行结果:
输入两个数,以空格分隔: 81 153
GCD = 9
实例 - 适用正数和负数
#include <stdio.h>
int main()
{
int n1, n2;
printf(&#34;输入两个数,以空格分隔: &#34;);
scanf(&#34;%d %d&#34;,&n1,&n2);
// 如果输入的是负数,将其转换为正数
n1 = ( n1 > 0) ? n1 : -n1;
n2 = ( n2 > 0) ? n2 : -n2;
while(n1!=n2)
{
if(n1 > n2)
n1 -= n2;
else
n2 -= n1;
}
printf(&#34;GCD = %d&#34;,n1);
return 0;
}
运行结果:
输入两个数,以空格分隔: 81 -153
GCD = 9
实例 - 使用递归
#include <stdio.h>
int hcf(int n1, int n2);
int main()
{
int n1, n2;
printf(&#34;输入两个正整数: &#34;);
scanf(&#34;%d %d&#34;, &n1, &n2);
printf(&#34;%d 和 %d 的最大公约数为 %d&#34;, n1, n2, hcf(n1,n2));
return 0;
}
int hcf(int n1, int n2)
{
if (n2 != 0)
return hcf(n2, n1%n2);
else
return n1;
}
1、C语言入门到精通
2、C语言经典算法编程110道实战题
 |
|