学习循环语句for、while、do-while和continue、break语句的使用方法。用几个例题来说明(以下代码均用Visual Studio 2022 编写)
1、编写程序,输出100到200之间的所有素数。
以下代码均用Visual Studio 2022 编写
#include<stdio.h>
int main()
{
int a, b;
for (a = 100; a <= 200; a++)
{
for (b = 2; b < a; b++)
{
if (a % b == 0)
{
break;
}
}
if (a == b)
{
printf("%d\n",a);
}
}
return 0;
}
2、编写程序,实现从键盘输入20 个数,找出其中的最大值并显示出来。
#include<stdio.h>
int main()
{
int a, b, i;
printf("请输入数值:");
scanf_s("%d",&a);
for (i = 1; i <= 19; i++)
{
scanf_s("%d", &b);
if (b > a)
{
a = b;
}
}
printf("最大值是%d",a);
return 0;
}
编程求费波那契(Fibonacci)序列:1,1,2,3,5,8,…。请输出前20项。
费波那契(Fibonacci)序列:从第三项开始,后一项为前两项之和。
#include<stdio.h>
int main()
{
int f1, f2, f3,i;
f1 = 1;
f2 = 1;
printf("%d\n%d\n",f1,f2);
for (i = 1; i <= 18; i++)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
printf("%d\n",f3);
}
return 0;
}
4、编写程序实现功能:用户从键盘输入一行字符,分别统计出其英文字母和数字字符的个数(不记回车符号)。
#include<stdio.h>
int main()
{
char ch;
int number, character;
number = 0;
character = 0;
printf("请输入一串字符:");
ch = getchar();
while (ch != '\n')
{
if (ch >= 'A' && ch <= 'Z' || ch>='a' && ch <= 'z')
{
character++;
}
if (ch >= '0' && ch <= '9')
{
number++;
}
ch = getchar();
}
printf("英文字符个数%d,数字个数%d\n", character, number);
return 0;
}
5、用公式求π,要求精确度>10-6已知公式为:
#include<stdio.h>
int main()
{
float pi=0, n = 1, t = 1;
while (1/n>= 1e-6)
{
pi = pi + t * 1/n;
t = -t;
n =n+2;
}
pi = 4 * pi;
printf("%f",pi);
return 0;
}
6、从键盘任意输入两个整数,编写程序,要求输出它们的最大公约数和最小公倍数。
以求a = 24和b = 36的最大公约数为例,具体求解思路如下:
1. b=b-a=36-24=12;
2. a=a-b=24-12=12;
3.a=b = 12(此时两数相等) —> 最大公约数为12
//辗转相减法求最大公约数,最小公倍数
#include<stdio.h>
int main()
{
int a, b;
scanf_s("%d%d",&a,&b);
int mul = a * b;
while (a != b)
{
if (a > b)
{
a = a - b;
}
else if (a < b)
{
b = b - a;
}
}
printf("最大公约数为%d\n", a);
printf("最小公倍数为%d\n", mul / a);
return 0;
}
以上题目用数组来写应该会更快,欢迎指正!谢谢!