4 7 main int a23 int i fori0

  • Slides: 28
Download presentation

[例4. 7]输入一个二维数组值, 并将其在数组中的内容及 地址显示出来。 main() { int a[2][3]; int i; for(i=0; i<2; i++) {printf("Enter

[例4. 7]输入一个二维数组值, 并将其在数组中的内容及 地址显示出来。 main() { int a[2][3]; int i; for(i=0; i<2; i++) {printf("Enter a[%d][0], a[%d][1], a[%d][2]n", i, i, i); scanf("%d, %d", &a[i][0], &a[i][1], &a[i][2]); } for(i=0; i<2; i++) { printf("a[%d][0]=%d, addr=%xn", i, a[i][0], &a[i][0]); printf("a[%d][1]=%d, addr=%xn", i, a[i][1], &a[i][1]); printf("a[%d][2]=%d, addr=%xn", i, a[i][2], &a[i][2]); } } Enter a[0][0], a[0][1], a[0][2] 10, 20, 30 Enter a[1][0], a[1][1], a[1][2] 40, 50, 60 a[0][0]=10, addr=ffd 4� a[0][1]=20, addr=ffd 6 a[0][2]=30, addr=ffd 8 a[1][0]=40, addr=ffda a[1][1]=50, addr=ffdc a[1][2]=60, addr=ffde 返回 9/8/2021 《C与C++程序设计教程》-第四章 16

4. 3. 3 二维数组程序举例 [例4. 9]有一个 3*4的矩阵,要求编程求出第i行、第j列元素的值。 main() { int i, j; static int

4. 3. 3 二维数组程序举例 [例4. 9]有一个 3*4的矩阵,要求编程求出第i行、第j列元素的值。 main() { int i, j; static int a[3][4]={{1, 2, 3, 4}, {9, 8, 7, 6}, {-10, -5, 2}}; printf("input integer i: "); scanf("%d", &i); printf("input integer j: "); scanf("%d", &j); printf("a[%d]=%d", i-1, j-1, a[i-1][j-1]); input integer i: 2 } input integer j: 3 a[1][2]=7 9/8/2021 《C与C++程序设计教程》-第四章 19

[例4. 10]求矩阵A与B乘积C。 main() { int i, j, k, m=2, n=3, p=2; static int a[2][3]={

[例4. 10]求矩阵A与B乘积C。 main() { int i, j, k, m=2, n=3, p=2; static int a[2][3]={ {6, 8, 7}, {3, 4, 5} }; static int b[3][2]={ {1, 2}, {2, 1}, {-1, 0} }; static int c[2][2]={ {0, 0}, {0, 0}}; for(i=0; i<m; i++) for(j=0; j<p; j++) 15 20 6 10 { c[i][j]=0; for(k=0; k<n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } for(i=0; i<m; i++) { for(j=0; j<p; j++) printf("%d ", c[i][j]); printf("n"); } } 9/8/2021 《C与C++程序设计教程》-第四章 返回 20

4. 4. 3 字符串的输入和输出 (1)逐个字符的输入和输出 scanf( “%c”, &ch); printf(“ %c”, ch); ch=getchar(); putchar( ch);

4. 4. 3 字符串的输入和输出 (1)逐个字符的输入和输出 scanf( “%c”, &ch); printf(“ %c”, ch); ch=getchar(); putchar( ch); [例4. 11]逐个字符输入输出。 123456789 main() 123456789 { int i; char str[10]; str[i]=getchar(); for(i=0; i<9; i++) scanf(“%c”, &str[i]); str[i]=’’; putchar(str[i]); for(i=0; i<9; i++) printf(“%c”, str[i]); } 9/8/2021 《C与C++程序设计教程》-第四章 24

(2) 字符串的整体输入和输出 scanf( “ %s”, 字符数组名); 注:输入时自动加’�’。 printf(“%s”, 字符数组名); 注:输出时遇第一个’�’结束。 [例4. 13]字符串的输入输出。 [例4. 12]字符串整体输入输出。

(2) 字符串的整体输入和输出 scanf( “ %s”, 字符数组名); 注:输入时自动加’’。 printf(“%s”, 字符数组名); 注:输出时遇第一个’’结束。 [例4. 13]字符串的输入输出。 [例4. 12]字符串整体输入输出。 char str 1[5], str 2[5], str 3[5]; str[13]; c[]={“China”}; char str[13]; main() scanf(“%s%s%s”, str 1, str 2, str 3); scanf(“%s”, str); printf(“%s”, c[0]); scanf(“%s”, &str); printf(“%s”, c); 123456789 {static char { qus[]="What is your name ? "; 输入: How are you<CR> 输出: China 123456789 char name[20]; int i; printf("%sn", qus); char str[10]; 123456789 What’s your name? scanf("%s", name); scanf("%s", str); 123456 Liming printf("n. My printf("%sn", str); name is %sn", name); } printf("%6 sn", str); My name is Liming. printf("%-. 6 sn", str); } 9/8/2021 《C与C++程序设计教程》-第四章 25

4. 4. 4 用于字符处理的库函数 (1) strlen(str) 求字符串长度 注:不包括’�’。 char Republic of ”}; (2) strcpy(str

4. 4. 4 用于字符处理的库函数 (1) strlen(str) 求字符串长度 注:不包括’’。 char Republic of ”}; (2) strcpy(str 1, str 2) 复制字符 char str 1[30]={“People’s str [10]={“China”}; char str 2[]={China”}; printf(“%d”, strlen(str)); 注:复制str 2到str 1,值为str 1的地址。 printf(“%s”, strcat(str 1, str 2)); 输出: 5 (3) strcmp(str 1, str 2) 输出: People’s Republic字符串比较 of China char str 1[10], str 2[]={China”}; 注:直到第一个不同的两个字符,str 1>str 2 strcpy(str 1, str 2); 时值为正,str 1=str 2时值为 0,str 1<str 2时值 为负。 strcmp(str 1, str 2); 合并两个字符串 (4) strcat(str 1, str 2) strcmp(“China”, ”Korea”); 注:把str 2连到str 1后,值为str 1地址。 返回 strcmp(str 1, ”Beijing”); 9/8/2021 《C与C++程序设计教程》-第四章 27

Thank you ! 第一次作业:p 116 -1~5、8~10、15~17、19~22、24~27、32~37 第二次作业:p 116 -6~7、11~14、18、23、28~29 9/8/2021 《C与C++程序设计教程》-第四章 28

Thank you ! 第一次作业:p 116 -1~5、8~10、15~17、19~22、24~27、32~37 第二次作业:p 116 -6~7、11~14、18、23、28~29 9/8/2021 《C与C++程序设计教程》-第四章 28