1.基本概念
(1)对数据的描述
(2)对操作的描述
算法+数据结构=程序
2.算法的特性
- 有穷性
- 确定性
- 有零个或多个输入
- 有一个或多个输出
- 有效性
3.判断素数
#include<stdio.h>
int main(void){
int a;
printf("输入一个整数:");
scanf("%d",&a);
if(a<=1){
printf("非素数");
}
else if(a==2){
printf("是素数");
}
else{
for(int i=2;i<a;i++){
if(a%i==0){
printf("非素数!\n");
return 0;
}
else{
printf("成功通过1次\n");
}
}
printf("是素数!");
}
return 0;
}
4.判断闰年
#include<stdio.h>
int main(void){
int a;
printf("输入一个整数:");
scanf("%d",&a);
if(a%4 ==0 && a%100! =0){
printf("是闰年!\n");
}else if(n%400==0){
printf("是闰年!\n");
}
else{
printf("非闰年!\n");
}
return 0;
}
5.判断回文数
#include<stdi0.h>
int main(void){
int a=0,b=0,i=0;
printf("输入一个整数:");
scanf("%d",&i);
a=i;
while(a>0){
b=b*10+a%10;
a=a/10;
}
if(b==i)
printf("是回文数!");
else{
printf("非回文数!");
return 0;
}
}
重难点:
1.使用printf和scanf函数时,要在最前面加上#include"stdio.h"
2.printf可以只有一个参数,也可以有两个参数
3.printf("a=%d,b=%d",12,34) 显示的是a=12,b=34
4.printf(“a=%d, \n b=%d",12,34) 输出的结果是
a=12
b=34
格式说明 | 表示内容 | 格式说明 | 表示内容 |
%d | 整型 int | %c | 字符char |
%Id | 长整型 long int | %s | 字符串 |
%f | 浮点型 float | %o | 八进制 |
%If | double | %#o | 带前导的八进制 |
%% | 输出一个百分号 | %x | 十六进制 |
%5d | %#x | 带前导的十六进制 |
printf("%2d",123);第二部分有三位,大于指定的两位,原样输出123
printf("%5d",123);第二部分有三位,小于指定的五位,左边补两个空格 123
printf("%10f",1.25);小数要求补足6位,没有六位的补0。结果为 1.250000
printf("%5.3f",125);小数三位,整个五位,结果为1.250
printf("%3.1f",1.25);小数一位,整个三位,结果为1.3(要四舍五入)
int x=97;
printf("%d,x); 结果为97
printf("%c,x);结果为a
指定输入的长度(考试重点)
终端输入:1234567
scanf("%2d%4d%d",&x,&y,&z);x为12,y为3456,z为7
什么叫结构化的算法?为什么要提倡结构化的算法?
结构化算法:由一些顺序,选择,循环等基本结构按照顺序组成,在基本结构之间不存在向前或向后的跳转,流程的控制只存在于一个基本的范围之内。
三种基本结构:
顺序结构:顺序结构是一种线性,有序的结构,它依次执行各语句模块。
选择结构:根据条件成立与否选择程序执行的通路。
循环结构:重复执行一个或多个模块,直到满足某一条件为止。
伪代码:
1.依次将10个数输入,要求输出其中最大的数。
begin
input 10个数据=>array
array[0]=>max
//循环9次,依次取剩余的9个数据
1=>i
while i<10{
array[i]=>temp
if temp > max{
temp => max
}
}
- 有3个数a,b,c,要求按大小顺序把它们输出。
begin
input a
input b
input c
if a > b{
a =>t
b =>a
t =>b
}
if a > c{
c =>t
a =>c
t =>a
}
if b>c{
c =>t
b =>c
t =>b
}
print a
print b
print c
end
- 求1+2+3...+100。
begin
1=>i
0=> sum
while i <= 100
{
sum + i =>sum
i + 1=>i
}
print sum
end
- 判断一个数n能否同时被3和5整除。
begin
input n
if n%3==0{
if n%5==0{
print 能同时被整除
}
else{
print 不能同时被整除
}
}
end
- 将100~200之间的素数输出。
begin
100 =>i
200 =>N
while i <= N{
2=>k
while k<i{
if i%k==0
break;
k+1=>k
}
if k==i
print i
i+1=>i
}
end
- 求两个数m和n的最大公约数。
begin
input m
input n
if m<n{
m=>t
n=>m
t=>n
}
while n!=0{
m%n=>r
m=>n
r=>n
}
print m
end