- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.用scanf()函数和printf()函数输入输出字符串
/* program e5-5.c*/ #include<stdio.h> 5.2.1 字符串的输入输出 #define N 50 void main() { 1.用scanf()函数和printf()函数输入输出字符串 char str[N],digital[N]; int i=0,j=0; 例5-5 使用“%s”格式符举例。 printf("Input: "); 输入一个长度小于50的字符串,将其中的数字字符按输入顺序存储到 scanf("%s",str); digital数组中,然后输出该数组。 while(str[i]!='\0') { if(str[i]>='0'&&str[i]<='9') digital[j++]=str[i]; i++; } digital[j]='\0'; printf("Output: %s\n",digital); C语言程序设计(第3版)张磊编著 清华大学出版社 }
/* program e5-6.c*/ #include<stdio.h> 5.2.1 字符串的输入输出 #include<string.h> #define N 50 2.使用gets()函数和puts()函数输入输出字符串 void main() ⑴ 使用gets()函数输入字符串 { 格式:gets(字符数组名) char str[N],digital[N]; char str[12]; int i=0,j=0; gets(str); gets(str); 执行gets()函数后,从键盘输入一个字符串存储到str数组中。 while(str[i]!='\0') ⑵ 使用puts()函数输出字符串 { 格式:puts(字符数组名) if(str[i]>='0'&&str[i]<='9') char c[6]="China"; digital[j++]=str[i]; puts(c); i++; } 例5-6 用gets()函数和puts()函数改写例5-5的程序。 digital[j]='\0'; puts(digital); C语言程序设计(第3版)张磊编著 清华大学出版社 }
5.1 一维数组程序设计
5.1.1 逆序输出数据程序 5.1.2 一维数组的定义
5.1.3 数值型一维数组的输入和输出
5.1.4 数值型一维数组的初始化 5.1.5 字符型一维数组的初始化 5.1.6 一维数组的存储
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.1 逆序输出数据程序
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
数组的初始化,是在定义数组的时对数组的各个元素赋初值。 1. 全部元素的初始化 格式 数据类型 数组名[数组长度]={数组全部元素值表} 数据类型 数组名[]={数组全部元素值表} int a[6]={10,20,30,40,50,60}; float r[]={12.5,-3.11,8.6}; 2. 部分元素的初始化 格式 数据类型 数组名[数组长度]={数组前部元素值表} int b[10]={1,2,3}
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.2 一维数组的定义
一般格式 数据类型 数组名[数组长度] 例如: int a [10]; char name[20]; 说明 ⑴ 数组的数据类型就是数组元素的数据类型。 ⑵ 数组长度是数组能够包含的数组元素的个数,是常量表达式。 错误 int n=10; float a[n];
5.1.3 数值型一维数组的输入和输出
例5-2 向数组输入10个整数,然后通过相邻元素比较交换的方法,将最大值 移到数组最后,然后输出该数组。
#include<stdio.h> #define N 10 void main() { int a[N],i,temp; 第1次 第2次 第3次 第4次 第5次 第6次 第7次 第8次 第9次 i=0 i=1 i=2 i=5 i=6 i=3 i=7 i=4 i=8 for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; 相邻元素a[i]与a[i+1]进行比较、交换(i依次取值0,1,2,……,8) a[i+1]=temp; } for(i=0;i<N;i++) printf("%d ",a[i]); }
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.6 一维数组的存储
int a[6]={10,20,30,40,50,60}; char word[6]="Hello!";
数组a→ 10 20 30 40 50 60
a[0] 数组word→ a[1] a[2] a[3] a[4] a[5]
H e l l o i
5.2.2多字符串操作函数 /* program e5-7.c */ #include<stdio.h> 格式:strcat(s1,s2) #include<string.h> 功能:把字符串s2连接到字符串s1的后面。 说明: void main() { ⑴ s1只能是字符数组名、s2既可以是字符数组名,也可以 是字符串常量。 c1[20]="China",c2[10]= "man"; char ⑵ 函数执行之后,s1是连接之后的字符串,s2保持不变。 strcat(c1,c2); 定义s1数组时,其数组长度应不小于两个字符串的长度之和。 printf("String c1: "); puts(c1); 例5-7 将两个字符串连接为一个字符串后输出。 printf("String c2: "); puts(c2); }
引子程序:一个正确的程序,但并不是一个好程序 从键盘输入10个整数,然后按照与输入相反的顺序依次将其输出。
/* program e5-0.c */
#include<stdio.h> void main() { int a,b,c,d,e,f,g,h,i,j; printf("Input Data: "); scanf("%d%d%d%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j); printf("Output Data: "); printf("%d %d %d %d %d %d %d %d %d %d\n",j,i,h,g,f,e,d,c,b,a); }
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.2 一维数组的定义
数组概念 数组是包含多项同类数据的一种数据结构,它能将一系列相 同类型的数据组织起来,使用同一个名字命名,再用下标进 行分量标识,例如a[1]、a[2]、......、a[10]等,当下标用一个 变量i表示时,i的不同取值即对应不同的分量,使用a[i]即可 访问这一组数据的任何一个分量。 这里的a即是一个数组。
5.2.1 字符串的输入输出
/* program e5-4.c*/ #include<stdio.h> void main() 例5-4 使用“%c”格式符举例。 { 输入一个长度是10的字符串,然后逆序输出它。 char str[10]; int i; printf("Input: "); for(i=0;i<10;i++) scanf("%c",&str[i]); printf("Output: "); for(i=9;i>=0;i--) printf("%c",str[i]); printf("\n"); } C语言程序设计(第3版)张磊编著 清华大学出版社
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.3 数值型一维数组的输入和输出
数值型数组的输入和输出通过每一个数组元素的输入和输出实现。 例如,对a数组: 输入a [5] : scanf("%d",&a [5]); 输出a [5]: printf("%d",a [5]);
C语言程序设计(第3版)张磊编著 清华大学出版社
1.字符串连接函数strcat()
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
例5-3 用一维数组生成Fibonacci数列的前20项,并输出。 #include<stdio.h> void main() { long int fib[21]; int i; fib[1]=1; fib[2]=1; for(i=3;i<=20;i++) fib[i]=fib[i-1]+b[i-2]; for(i=1;i<=20;i++) { printf("%-10ld",fib[i]); if(i%5==0) printf("\n"); } }