- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言复习
一.基本内容
C程序结构
#includestdio.h
Void main()
{
说明部分
语句部分
}
输入输出函数(注意格式控制、转义字符)
条件表达式的内容:关系表达式(6种)、逻辑表达式(3种)、其它表达式(非0或非空——真;0或空——假)——注意短路
三种循环语句
while(~)
{
……
};
do
{
……
}while(~);
for(表1;表2;表3)
{
……
}
数组定义及输入、输出
非字符数组,用循环;
整型数组:
for(i=0;i10;i++)
scanf(“%d”,a[i]);
字符数组,建议使用gets()和puts()
gets(s1);
相关算法
交换算法:{t=a;a=b;b=t;}
数组遍历
非字符数组
for(i=0;i10;i++)
a[i];
任意字符串
for(i=0;s1[i]!=’\0’;i++)
s1[i];
最大值、最小值算法:
算法:将第一个数当成最大值(或最小值),再用最大值与生育数据逐一比较(最大值本身、或最大值所在的位置)
求10个数的最大值
#include stdio.h
void main()
{
int i,n,max;
scanf(%d,n);
max=n;//输入第一个并当成最大值
//循环9次,每次输入一个,并判别
for(i=1;i10;i++)
{
scanf(%d,n);
if(maxn)
max=n;
}
printf(max=%d\n,max);
}
求10个元素的整数数组的最大值
#include stdio.h
void main()
{
int i,a[10],max;
for(i=0;i10;i++)
scanf(%d,a[i]);
max=a[0];//第一个元素当成最大值
//比较剩余数据
for(i=0;i10;i++)
{
if(maxa[i])
max=a[i];
}
printf(max=%d\n,max);
}
求10个元素的整数数组的最大值所在的位置
#include stdio.h
void main()
{
int i,a[10],max;
for(i=0;i10;i++)
scanf(%d,a[i]);
max=0;//第一个元素当成最大值,记下下标
//比较剩余数据
for(i=0;i10;i++)
{
if(maxa[i])
max=i;
}
printf(max=%d\n,a[max]);
}
排序算法
3个数从大到小输出
方法一
方法二:用a分别与剩下的所有变量(b、c)比较,只要比a大,就与a交换,这样,就确保a中为最大值;再对剩余变量(b、c)用同样的方法处理(简单选择排序)
起泡法排序算法思想:
1. 从第一个数开始,将相邻两数两两比较,将小数放在前面, 直到n-1和n进行比较;此为一趟——得到最大数到位置n)
2.对第一个数到第n-1个数进行第二趟;
……
分析:共n-1趟,每趟比较次数:n-趟数
例 7.3 用起泡法对 n(n=10) 个数排序(升序)
#include stdio.h
void main()
{
int a[10];
int i,j,t;//一般排序都是双重循环,定义2个循环变量
//输入
for(i=0;i10;i++)
scanf(%d,a[i]);
//泡泡排序
//共9趟,分析见前面课件
for(i=1;i10;i++)
{
//每趟元素交换控制
for(j=0;j10-i;j++)
{
if(a[j]a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
//输出
for(i=0;i10;i++)
printf(%5d,a[i]);
}
选择法对10个整数升序排序
选择法排序算法:
从a[0]~a[9]10个数中找到最小值,与第一个元素(a[0])交换——1轮;
从a[1]~a[9]9个数中找到到最小值,与第一个元素(a[1])交换——2轮;
……
共9轮(用变量i控制,从1~9)。
在每1轮中,首先把a[i]当成最小值(记下其下标),循环用最小值与后面的所有元素分别比较(找到最小值),最后与a[i]交换。
程序清单:
#includestdio.h
void main()
{
int a[11],i,j,k,t;
printf(input 10 integer:\n);
for(i=1;i=10;i++)
文档评论(0)