循环结构程序设计

假设今年我国的人口总数为13亿,若按每年2%增长,计算从现在开始10年内每年人口的数量

#include<stdio.h>
#include<math.h>
int main()
{
	int m = 13, year;
	double number, rate = 0.022;
	for (year = 1; year <= 10; year++) {
		number = m * pow((1 + rate), year);
		printf("%2d年后,人数为:%.2f亿\n", year, number);
	}
		return 0;
}

流程图

运行结果

 编写程序,计算1-1/4+1/7-1/10+1/13-1/16...的和,直到某一项的绝对值小于十的负六次方为止:

 代码:

#include<stdio.h>
#include<math.h>
int main() {
	double sum, item, flag, denominator;
	sum = 0; item = 1; denominator = 1; flag = 1; 
	while (fabs(item) >= 1e-6) {
		sum = sum + item; 
		flag = -flag;
		denominator = denominator + 3; 
		item = flag / denominator;
	}
	printf("sum = % f\n", sum);
	return 0;
}

运行结果:

说明:

while语句是三种循环结构之一,while后括号中的表达式称为循环条件,循环开始时,一定要保证循环条件为真。需要重复执行的语句精神了循环体。
5.2使用for语句实现循环结构
for语句是C语言提供的功能强大、使用广泛的一种循环结构,不仅可以解决循环次数未知的循环问题,特别适合解决循环次数已知的循环问题。 

   for语句的基本语法
                                     for语句的一般形式为:
                           for(表达式1;表达式2;表达式3)
                                              循环体语句;

or语句的执行过程如下:

1.首先计算表达式1。
2.判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第3步;若值为假(0),结束循环,转到第5步执行。
3.计算表达式3。
4.返回第2步继续执行。
5.循环结束,继续执行for语句的下一条语句。大部分情况下,循环体语句为一复合循语句。
注意,表达式1只在进行循环之前计算一次。表达式2、循环体语句和表达3将重复执行。
根据for语句格式的特点,其实际应用可以有多种形式。
1.可以应用于计数型的循环
格式如下:
for(循环变量赋初值;循环条件;循环变量增量)
循环体语句
说明:循环变量赋值是一个赋值语句,用于给循环变量赋初值;循环条件是一个条件表达式,决定何时终止循环(即确定循环的终值);循环变量增量决定循环变量在完成一次循环后如何变化。三部分之间以“;”隔开。

输入一个正整数n,求

代码:

#include<stdio.h>
int main() {
	int i, n, sum;
	scanf_s("%d", &n);
	sum = 0;
	for (i = 1; i <= n; i++)
		sum = sum + i;
	printf("由1到%d的和是:%d\n",n,sum);
	return 0;
}

 运行结果:

输入一个正整数n,求n!

#include<stdio.h>
int main(void)
{
	int i, n;
	double factorial;
	printf("输入n的值:");
	scanf_s("%d", &n);
	factorial = 1;
	for (i = 1; i <= n; i++)
		factorial = factorial * i;
	printf("%d!=%.0f\n", n, factorial);
	return 0;
}

 

2.for语句的一般形式中省略表达式1
格式如下:
                                for(;表达式2;表达式3)
                                                循环体语句;
说明:

省略表达式1时,可以将循环变量赋初值放在for之前。

注意:

此事不能省略第一个“;”

3.for语句的一般形式中省略表达式2

  格式如下:
                                        for(表达式1;;表达式3)
                                                        循环体语句;
说明:

循环表达式2时,表示不对循环进行控制,这时如果没有其他处理的话,会形成死循环。应避免这样使用for结构
4.for语句的一般形式中省略表达式3
格式如下:
                                        for(表达式1;表达式2;)
                                                       循环体语句;
说明:

省略表达式3时,可以在循环体语句中加入修改循环变量的语句
5.for语句的一般形式中表达式1和表达式3也可以是逗号表达式
6.for语句的一般形式中表达式2的值只要非0,就执行循环体
7.for语句的一般形式中循环体句可以省略
for循环使用示例 

 编写程序,输入一个整数n,计算1-1/4+1/7-1/10+1/13-1/16+...的前n之和

#include<stdio.h>
int main() {
	int n, i, denominator, flag;
	float sum, item;
	printf("输入n的值:");
	scanf_s("%d", &n);
	flag = 1;
	denominator = 1;
	sum = 0;
	for (i = 1; i <= n; i++) {
		item = flag * 1.0 / denominator;
		sum = sum + item;
		flag = -flag;
		denominator = denominator + 3;
	}printf("sum = % .2f\n", sum);
	return 0;
}

编写程序,输入10个数,输出其中最大数 

#include<stdio.h>
int main() {
	int i;
	float x, max;
	printf("输入第1个数:");
	scanf_s("%f", &x);
	max = x;
	for (i = 1; i <= 9; i++) {
		printf("输入第%d个数:",i + 1);
		scanf_s("%f", &x);
		if (x > max)
			max = x;
	}
	printf("10个数的最大值是: % .0f", max);
	return 0;
}

 编写程序,输出所有的水仙花数

#include<stdio.h>
int main() { 
	int number, a, b, c; 
	for (number = 100; number <= 999; number++) {
		a = number / 100;
		b = number % 100 / 10; 
		c = number % 10;
		if (number == a * a * a + b * b * b + c * c * c) 
			printf("%5d", number); 
	} 
	return 0;
}

 编写程序,由键盘输入一个正整数,判断该数是否为完数:

#include<stdio.h>
int main() { 
	int number, sum, i;
	printf("输入一个正整数:");
	scanf_s("%d", &number);
	sum = 0;
	for (i = 1; i <= number - 1; i++) 
		if (number % i == 0) 
			sum = sum + 1;
	if (number == sum) 
		printf("%d是完整数\n", number); 
	else 
		printf("%d不是完整数\n", number);
	return 0;
}

 

统计由键盘中输入若干1个字符中,大写英文字符、小写英文字符、数字字符和其他字符的个数

    • 定义变量upper,lower,digit,i,other;
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值