实验四(数组)
实验的总结:
int型和float型都用4个字节,char型用一个字节,double型用8个字节。但是在输出5.00和5.000000的时候都没有区别的。
还有就是要注意数组元素的索引号是从零开始的,所以在用for语句的时候<注意它的使用。
充分理解数组,是类型相同的一组数据构成的集合,这一组数据在内存中的连续存放。
函数调用参数传递一般有三种方式,分别是有值传递、指针传递、引用传递。
当a是字符型数组时,在输出字符型数组元素a[i]时,把格式符由%d换成%c。
当a是double型数组时,在输出数组元素a[i]时,把格式符由%d换成%.2f。
冒泡法就是比较相邻两个数的大小后进行的排序。因为数组元素起始元素是1,所以对于边缘条件,抓住扫描第i次需要比较(n-1-i)次
(1)
#include <stdio.h> int findMax(int a[], int n); const int N=5; int main() { int a[N]; int max, i; printf("输入%d个整数: \n", N); for(i=0;i<5;i++) scanf("%d",&a[i]); max=findMax(a,4) ; printf("数组a中最大元素值为: %d\n\n", max); return 0; } int findMax(int a[],int n){ int i,t; for(i=1;i<n+1;i++){ if(a[i]<a[i-1]){ t=a[i-1]; a[i-1]=a[i]; a[i]=t; } } return a[n]; }
(2)
#include <stdio.h> const int N=4; void output(char x[], int n); void bubblesort(char x[],int n); int main() { char string[N] = {'2','0','1','9'}; int i; printf("排序前: \n"); output(string, N); bubblesort(string,N); printf("\n排序后: \n"); output(string, N); printf("\n"); return 0; } void bubblesort(char x[], int n) { int i,j,t; for(i=0;i<n-1;i++){ for(j=n-i;j>=0;j--){ if(x[j+1]>x[j]){ t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } } } void output(char x[],int n){ int i; for(i=0;i<n;i++){ printf("%c",x[i]); } }