01 等腰三角星星
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 int main() 6 { 7 8 int row; 9 printf("请输入行数:\n"); 10 scanf("%d", &row); 11 for (int i = 1; i <= row; i++) 12 { 13 for (int j = 1; j <= row - i; j++) 14 { 15 printf(" "); 16 } 17 for (int k = 1; k <= i * 2 - 1; k++) 18 { 19 printf("*"); 20 } 21 printf("\n"); 22 23 } 24 system("pause"); 25 return EXIT_SUCCESS; 26 }
数组:
1、数组的定义和使用
格式:
数据类型 数组名[元素个数]
元素个数,代表该数组有多少个相同数据类型的变量
下标 用来表示数组中的某一个元素 例如int arr[10];arr[1]数组的第二个元素
数组下标是从0开始的 到元素个数-1
数组下标越界:超出了数组元素个数的下标,如果操作越界会出现程序错误(1.乱码;2.报错)
02 数组的定义和使用
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 int main() 6 { 7 //定义数组 8 int scores[10]; 9 //初始化数组 10 for (int i = 1; i < 10; i++) 11 { 12 scores[i] = 90 + i; 13 } 14 //打印数组 15 for (int i = 1; i < 10; i++) 16 { 17 printf("%d\n", scores[i]); 18 } 19 return 0; 20 }
03学生成绩-1
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 int main() 6 { 7 int scores[10]; 8 for (int i = 0; i < 10; i++) 9 { 10 //在通过键盘为数组赋值的时候,需要取地址符号【&】 11 12 scanf("%d", &scores[i]); 13 } 14 for (int i = 0; i < 10; i++) 15 { 16 printf("第%d名学生,成绩:%\n", i + 1, scores[i]); 17 } 18 return 0; 19 }
03学生成绩-2
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 int main() 6 { 7 int scores[10]; 8 int sum = 0; 9 for (int i = 0; i < 10; i++) 10 { 11 //在通过键盘为数组赋值的时候,需要取地址符号【&】 12 13 scanf("%d", &scores[i]); 14 sum += scores[i];//sum=sum+scores[i] avg=sum/10 15 } 16 for (int i = 0; i < 10; i++) 17 { 18 printf("第%d名学生,成绩:%d\n", i + 1, scores[i]); 19 } 20 printf("班级的平均成绩:%d\n", sum / 10); 21 return 0; 22 }
求出数组元素个数:
int(size_t)unsigned int 个数 =sizeof(数组名)/sizeof(数组元素|数组数据类型)
求出数组地址:
printf(“%p\n”,数组名)
printf("%p\n",数组元素)
数组元素+1(sizeof(数据类型))
数组名+1(sizeof(数组名))
练习:十只小猪称体重 定义一个数组 存储小猪体重 通过遍历找到最重小猪 找到数组中数据最大值的下标 根据下标打印
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 int main() 6 7 { 8 int fits[10]; 9 for (int i = 0; i < 10; i++) 10 { 11 scanf("%d",&fits[i]); 12 } 13 //小猪称体重 14 //int max = 0; 15 //for (int i = 0; i < 10; i++) 16 //{ 17 // if (max < fits[i]) 18 // { 19 // max = fits[i]; 20 // } 21 //} 22 int max = fits[0]; 23 for (int i = 1; i < 10; i++) 24 { 25 if (max < fits[i]) 26 { 27 max = fits[i]; 28 } 29 } 30 printf("最重的小猪体重为:%d\n", max); 31 return 0; 32 }
练习: 找到小猪中第二重的
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 int main() 6 7 { 8 int fits[10] = { 1, 2, 1, 2, 3, 4, 5, 6, 7, 9 }; 9 //小猪称体重 10 //int max = 0; 11 //for (int i = 0; i < 10; i++) 12 //{ 13 // if (max < fits[i]) 14 // { 15 // max = fits[i]; 16 // } 17 //} 18 int firstmax = 0; 19 int secondmax = 0; 20 int i = 0; 21 for (int i = 1; i < 10; i++) 22 { 23 if (fits[firstmax] < fits[i]) 24 { 25 firstmax = i; 26 } 27 } 28 for (int i = 1; i < 10; i++) 29 { 30 if (fits[secondmax] < fits[i] && fits[i]!= fits[firstmax]) 31 { 32 secondmax = i; 33 } 34 } 35 printf("小猪中第二重的为:%d\n", fits[secondmax]); 36 return 0; 37 }
练习:冒泡排序
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 4 #include<stdlib.h> 5 6 int main08() 7 8 { 9 int arr[10] = { 8, 7, 10, 6, 2, 3, 5, 4, 1, 9 }; 10 int len = sizeof(arr) / sizeof(arr[0]) - 1; 11 //冒泡排序 从小到大 12 //外层循环每次执行都能确定一个最大值 13 for (int i = 0; i <= len; i++) 14 { 15 //内层循环内次执行能确定两个数值中的最大值 16 for (int j = 0; j < len - i; j++) 17 { 18 if (arr[j] > arr[j + 1]) 19 { 20 //两个数据交换位置 21 int temp = arr[j]; 22 arr[j] = arr[j + 1]; 23 arr[j + 1] = temp; 24 } 25 } 26 } 27 for (int i = 0; i < 10; i++) 28 { 29 printf("%d\n", arr[i]); 30 } 31 32 return 0; 33 }