C语言基础题(break 和continue),急要,高分,还可以加分

break语句和continue语句
1. 某银行的年利息为6.8%(以复利计算),若储户存入本金x元,当满足下列两个条件之一时,储户从银行将钱取出:
1)储蓄满10年。
2)连本带利超过1.25x。
编程求:储户将于第几年将钱取出,取出时连本带利是多少。

2. 求50~150间的全部素数。(要求每行输出12项)
(素数——只能被1和它本身整除的数。
判断方法:若m不能被2~sqrt(m)或2~m/2之间的整数整,则m是素数。)

3. 把100~150之间的不能被3整除的数输出(每行输出12个数)。

下面的代码你最好还是自己编译运行并理解一下,这样才能提高。
—————————————华丽的分隔线—————————————
NO.1
#include <stdio.h>
#define YEAR_RATE 0.068

int main()
{
double principal = 10000; // 本金,假设是10000元
unsigned int year = 0; // 储蓄年份

for (year = 0; year <= 10; year++)
{
if (principal > 1.25 * 10000) // break直接跳出整个循环
{
break;
}
else
{
principal = principal + principal * YEAR_RATE;
continue; // continue跳出本次循环,下次还要进行FOR语句的条件判断
}
}

printf("储户将于第%u年将钱取出,取出时连本带利是%f元\n", year, principal);

return 0;
}
—————————————华丽的分隔线—————————————
NO.2
#include <stdio.h>
#include <math.h>

/* 用来判断是否是素数的函数 */
int prime(int n)
{
int a=2;
while (a < n)
{
/* 从2开始算起,循环被n除,若无余数则break跳出循环 */
if (!(n % a++))
break;
/* 若到sqrt(n)还未break则为素数 */
if (a > sqrt(n))
return 1;
}
return 0;
}

int main()
{
int count = 0;
for (int i = 50; i <= 150; i++)
{
/* 是素数则返回1 */
if (1 == prime(i))
{
printf("%4.0d", i);
count++;
}
/* 格式化操作 */
if (12 == count)
{
count = 0;
printf("\n");
}
}
printf("\n");
return 0;
}
—————————————华丽的分隔线—————————————
NO.3
#include <stdio.h>

int main()
{
int count = 0;
for (int i = 100; i < 150; i++)
{
if (0 != i % 3)
{
printf("%4.0d", i);
count++;
}
if (12 == count)
{
count = 0;
printf("\n");
continue; // 这句其实很多余,不要也行,实在找不到加的地方了
}
}
printf("\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答