一个程序主要包括以下两个方面的信息:
(1)对数据的描述。在程序中要指定用哪些数据以及这些数据的类型和数据的组织形式。这就是数据结构
(2)对操作的描述。即要求计算机进行操作的步骤,也就是算法。
数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。
算法+数据结构=程序
算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。
算法是解决“做什么”和“怎么做”的问题。程序中的操作语句,实际上就是算法的体现。
什么是算法
算法:为解决一个问题而采取的方法和步骤
计算机算法可分为两大类别:数值运算算法和非数值运算算法。
数值运算的目的是求数值解
非数值运算包括的面十分广泛,最常见的是用于事务管理领域
简单的算法举例
求1*2*3*4*5
- #include<stdio.h>
- //求1*2*3*4*5
- int main(void)
- {
- int mul = 1;
- for (int i = 2; i < 6; i++)
- mul *= i;
- printf("1*2*3*4*5=%d", mul);
- return 0;
- }
复制代码 运行结果:
求1*3*5*7*9*11
- #include<stdio.h>
- //求1*3*5*7*9*11
- int main(void)
- {
- int mul = 1;
- for (int i = 3; i < 12; i += 2)
- mul *= i;
- printf("1*3*5*7*9*11=%d", mul);
- return 0;
- }
复制代码 运行结果:
有10个学生,要求输出成绩在80分以上的学生的学号和成绩
- #include <stdio.h>
- int main(void)
- {
- int sg[10] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
- int sn[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
- for (int i = 0; i < sizeof(sg) / sizeof(int); i++)
- {
- if (sg[i] < 80)
- continue;
- printf("%d\t", sn[i]);
- }
- return 0;
- }
复制代码 运行结果:
判定2000-2500中的每一年是否为闰年,并将结果输出
- //判定2000-2500中的每一年是否为闰年,并将结果输出
- //1、能被4整除,但是不能被100整除
- //2、能被400整除
- #include <stdio.h>
- int main(void)
- {
- int i = 0;
- for (int year = 2000; year < 2501; year++)
- {
- if ((0 == (year % 4)) && (0 != (year % 100)))
- printf("%d是闰年\t", year);
- else if (0 == (year % 400))
- printf("%d是闰年\t", year);
- else
- printf("%d不是闰年\t", year);
- i++;
- if (5 == i)
- {
- printf("\n");
- i = 0;
- }
- }
- return 0;
- }
复制代码 运行结果:
求1-1/2+1/3-1/4+...+1/99-1/100
- //求1-1/2+1/3-1/4+...+1/99-1/100
- #include <stdio.h>
- int main(void)
- {
- double sum = 0;
- for (int i = 1; i < 101; i++)
- sum += (-1) * ((0 == (i % 2)) ? 1 : (-1)) / (double)i;
-
- printf("%lf", sum);
- return 0;
- }
复制代码 运行结果:
给出一个大于或等于3的正整数,判断它是不是一个素数
- //给出一个大于或等于3的正整数,判断它是不是一个素数
- #include <stdio.h>
- int main(void)
- {
- int a = 0;
- scanf("%d", &a);
- for (int i = 2; i < a; i++)
- {
- if (0 == (a % i))
- {
- printf("%d不是素数", a);
- return 0;
- }
- }
- printf("%d是素数", a);
- return 0;
- }
复制代码 运行结果:
在VS编译器内会报C4996错误,解决见下文:
C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. - EricsT - 博客园 (cnblogs.com)
算法的特性
- 有穷性
- 确定性
- 有0个或者多个输入
- 有一个或者多个输出
- 有效性
怎样表示一个算法
三种基本结构
- 顺序结构
- 选择结构
- 循环结构
- 当(while)型循环结构
- 直到(until)型循环结构
三种基本结构有以下特点:
- 只有一个入口
- 只有一个出口
- 结构内的每一部分都有机会被执行到
- 结构内不存在“死循环”(无终止循环)
结构化程序设计方法
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |