例题6-1
#include <stdio.h>
int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
int main(void)
{
for (int i = 1; i <= 10; i++)
{
printf("a[%d]=%d\n", 10 - i, a[10 - i]);
}
return 0;
}
例题6-2
题目回忆
#include <stdio.h>
int a[40] = { 0 };
int main(void)
{
a[0] = 1;
a[1] = 1;
for (int i = 2; i <= 39; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
for (int i = 0; i <= 9; i++)
{
printf("%12d%12d%12d%12d\n", a[4 * i], a[4 * i + 1], a[4 * i + 2], a[4 * i + 3]);
}
return 0;
}
例题6-3
#include <stdio.h>
int area[10] = {10,9,8,7,6,5,4,3,2,1};
int bottle = 0;
int main(void)
{
for (int i = 0; i <= 8; i++) //共比较9次
{
for (int j = 0; j <= 8-i; j++)
{
if (area[j] > area[j + 1])
{
bottle = area[j + 1];
area[j + 1] = area[j];
area[j] = bottle;
}
}
}
for (int i = 0; i <= 9; i++)
printf("area[%d] = %d\n", i, area[i]);
return 0;
}
#include <stdio.h>
//int area[10] = {10,9,8,7,6,5,4,3,2,1};
int area[10] = {34,67,90,43,124,87,65,99,132,26};
int bottle = 0;
int main(void)
{
for (int i = 0; i <= 8; i++) //共比较9次
{
for (int j = 0; j <= 8-i; j++)
{
if (area[j] > area[j + 1])
{
bottle = area[j + 1];
area[j + 1] = area[j];
area[j] = bottle;
}
}
}
for (int i = 0; i <= 9; i++)
printf("area[%d] = %d\n", i, area[i]);
return 0;
}
小知识点:
例题6-4
#include <stdio.h>
int a[2][3] = {{1,2,3},{4,5,6}};
int b[3][2] = { 0 };
int i = 0, j = 0;
int main(void)
{
printf("array a:\n");
for (i = 0; i <= 1; i++)
{
for (j = 0; j <= 2; j++)
printf("%d\t", a[i][j]);
printf("\n");
}
printf("array b:\n");
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 1; j++)
{
b[i][j] = a[j][i];
printf("%d\t", b[i][j]);
}
printf("\n");
}
return 0;
}
例题6-5
#include <stdio.h>
int a[3][4] = { {1,2,21,4}, {15,6,7,8},{9,10,11,12} };
int max = 0; //max
int row = 0; //row
int column = 0; //column
int main(void)
{
max = a[0][0];
for(int i = 0;i <= 2;i++)
for (int j = 0; j <= 3; j++)
{
if (a[i][j] > max)
{
max = a[i][j];
row = i + 1;
column = j + 1;
}
}
printf("max=%d,row=%d,column=%d\n", max, row, column);
return 0;
}
例题6-6
#include <stdio.h>
char a[15] = { 'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};
int main(void)
{
for (int i = 0; i < 15; i++)
printf("%c", a[i]);
return 0;
}
例题6-7
代码提示:
#include <stdio.h>
char diamond[5][5] = { {' ', ' ', '*', ' ', ' '}\
,{' ', '*', ' ', '*', ' '}\
,{'*', ' ', ' ', ' ', '*'}\
,{' ', '*', ' ', '*', ' '}\
,{' ', ' ', '*', ' ', ' '} };
int main(void)
{
for (int i = 0; i <= 4; i++)
{
for (int j = 0; j <= 4; j++)
printf("%c", diamond[i][j]);
printf("\n");
}
return 0;
}
测试1
char c[] = { “I am happy” };下图可以看出字符数组长度为11。
测试2
char c[10] = “I am happy”;下图可以看出字符数组长度为10。
测试3
测试4 打印功能验证
#include <stdio.h>
char c[] = "China";
//C h i n a \0
int main(void)
{
printf("%s\n",c);
return 0;
}
测试5 输入功能验证
测试6 空格截断验证
puts函数(输出字符串函数)
#include <stdio.h>
char str[] = {"China\nBeijing"};
int main(void)
{
puts(str);
return 0;
}
gets函数(输入字符串函数)
#include <stdio.h>
char str[9];
int main(void)
{
gets(str);
return 0;
}
strcat(字符串连接函数)
#include <stdio.h>
#include <string.h>
char str1[40] = "xiaoxing ";
char str2[20] = "is handsome";
int main(void)
{
printf("%s",strcat(str1, str2));
return 0;
}
strcpy(字符串复制函数)
#include <stdio.h>
char str1[10], str2[] = "China";
//C h i n a \0
int main(void)
{
strcpy(str1, str2);
return 0;
}
strcmp(字符串比较函数)
#include <stdio.h>
char str1[]= "China", str2[] = "China";
//C h i n a \0
int main(void)
{
if (strcmp(str1, str2) == 0)
printf("pass");
return 0;
}
strlen(字符串长度计算函数)
#include <stdio.h>
char str[] = "China";
//C h i n a \0
int main(void)
{
printf("%d", strlen(str));
return 0;
}
例题6-8
#include <stdio.h>
char sentence[100] = {'\0'};
int count = 0;
int main(void)
{
printf("please type a sentence\n");
gets(sentence);
for (int i = 0; i < strlen(sentence); i++)
{
if (sentence[i] == ' ')
count = count + 1;
}
printf("count = %d", count+1);
return 0;
}
例题6-9 略
习题6-1 略
习题6-2 略
习题6-3
#include <stdio.h>
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int sum = 0;
int main(void)
{
for (int i = 0; i <= 2; i++)
{
sum = sum + a[i][i];
}
printf("sum = %d", sum);
return 0;
}