for (i=1;i<=总行数n/2+1;i++) {
for (j=1;j<=总行数n/2+1-行号i;j++)
printf(“ ”); for (k=1;j<=行号i*2-1;k++) printf(“*”); printf( );
}
下半部分基本框架: for (i=总行数n/2;i>=1;i--) {
for (j=1;j<=总行数n/2+1-行号;j++) printf(“ ”);
for (k=1;j<=行号i*2-1;k++)
printf(“*”);
printf( ); }
思考如何把这段代码定义成函数。
实验11 数组编程练习
实验题目1 将数组倒置
提示:
定义数组: int a[8] = {1, 2, 3, 4, 5, 6, 7, 8}; 中间变量t用于存放倒置前的数组元素t = a[i];
a[i] = a[j]; a[j] = t;
交换后i的值加1:++i j的值减去1:--j; 当i>j时停止交换 倒置前 a[0] 5 倒置后 a[0] 2 a[1] 3 a[2] 4 a[3] 5 a[1] 4 a[2] 3 a[3] 2
实验题目2 用自定义函数实现-输入5个同学的c语言课程的成绩和学号,找出最高分和最低分,并输出对应的学号
提示:
1. 定义2个数组分别为int score[10], num[10] 2. 输入成绩 for(i=0;i<4;i++) { scanf() }
3. 输出数组元素 for(i=0;i<9;i++) { printf(); }
实验题目3编写程序把输入的10个同学的成绩按照从大到小排序,成绩存放在数组中,排序算法采用冒泡排序算法 提示:
1. 定义一个数组用于存放用户输入的分数,数组元素个数为10:double s[10]; 2. 为数组元素赋值 for(i=0;i<9;i++) { }
scanf(\
3. 冒泡排序算法:
第1层循环用于输出找到的最大值 第2层循环用于数组元素的位置交换 for(i=0;i<9;i++) for(j=9;j>=i+1;j--) if(s[j]<=s[j-1]) {
temp=s[j]; s[j]=s[j-1]; s[j-1]=temp; } }
4. 排序完后输出数组元素 for(i=0;i<9;i++) { printf(\}
思考:如何把冒泡排序算法编写成函数,形式参数采用数组
实验12 数组编程练习
题目1 编写程序采用顺序查找方法:在数组搜索某一数据,如果找到输出该数据和这个数据在数组中的位置,该数据有用户输入。数组初始化数据自定。 提示:
算法核心概念:
设数据存放在数组a中,数据的数量为n,要查找的数据值为key,则数组a中的元素从a[0]~a[n],依次与key进行比较,
参考代码:
#include
题目2 编写程序,输入n个字符串,输出其中最长的字符串,最短的字符串 提示:
调用字符串比较函数strcmp(min,str) 字符串拷贝函数strcpy(min,str); 参考代码:
#include
#include
void main() { int i; char min[N1],max[N1],str[N1]; printf(\请输入一个字符串\\n\ gets(str); printf(\输出这个字符串\\n\ puts(str); strcpy(min,str); printf(\输出最小字符串\\n\ puts(min); strcpy(max,str); printf(\输出最大字符串\\n\ puts(max); for(i=1;i