一般形式:
数组的一般格式为 : <类型>变量名称[元素数量]
例如:int number[200] int grade[30] int money [50]
此处与变量的引入极其相似: <类型>变量名称
例如: int a; int cnt; int cost=3;
必须注意:
对于元素变量是有说法的,假设 int number [100] 那么我们输出的时候只能有number[99],原因是C语言从0开始计数,number[99]实际上便是第一百个,此时99([中的数字])叫做下标或者索引。输出范围是[ 0 , 元素数量-1 ]
代码部分
底下我写的第一个代码
#include<stdio.h>
int main(){
int number[100]; //定义一下数组
int count=0;
double sum=0;
int x;
scanf("%d",&x);
while(x!=-1){
sum+=x;
number[count]=x; //为数组赋值
count++;
scanf("%d",&x);
//调试一下,如下所示:
int t;
for(t=0;t<count;t++){
printf("%d",number[t]);
}
printf("\n");
}
//调试好了,同时我们已经求出了这些数的总和,接下来我们开始输出大于平均数的一些数。
int i;
for(i=0;i<=count;i++)
{
if(number[i]>sum/count){
printf("这些数中%d大于平均数\n",number[i]);
}
}
printf("这些数的总和为%f\n",sum);
printf("这些数平均数为%f\n",sum/count);
}
字符数组:
char arr[ ]={'h','e','l','l','o','\0'};
'\0'标志着字符串结束,
#include <stdio.h>
int main()
{
const char* a[] = { "hello","world","and","you" };
int n;
scanf("%d", &n);
printf("%s", a[n - 1]);
}
遍历数组:
1.对于数组来说,想要得到与数组a相同的数组b,必须用到遍历数组
for(i=0;i<length;i++)
{ b[i] = a[i]; }
2.对于从数组中选择性输出一些特定的数
for( i=0 ; i<length ; i++ ){
if( number[i] > sum/length )
{ printf ( "%d" , number[i] ) }
}
总结:
上述写法中的代码可以连续输入数值
1| int i;
2| scanf("%d",&x);
3| while(x!-1){ 此处也可以是(x!任意一值)只要不输入该值,那么在
4| number[i]=x; 下标允许的范围内我们可以一直进行输入变量数。
5| i++;
6| scanf("%d",x);
数组的指针部分:
对于数组的地址等于第一个数的地址,一维数组自然而然即使它的第一个数,而对于二维数组则是他的第一行一列的数的地址。
同时,对于二维数组在内存中的存放于一维数组一致,均是成行排列,但是不同的是它可以按顺序将他们分成第一列第二列。
一 | 一 | 一 | 二 | 二 | 二 | 三 | 三 | 三 |
数组是一种特殊的指针变量,数组本身也表达地址例如对于数组a[100] int*p=a,无需&a 但是对于数组单元如数组a中的a[10]表达的是一个变量,需要用& a==&a[10]
习题
最后再送个习题(switch case不会了可以看看我以前的帖子奥)
这道题是:记录你输入的数中123456789个出现了几次
#include<stdio.h>
int main(){
int number[100];
int i1=0,i2=0,i3=0,i4=0,i5=0,i6=0,i7=0,i8=0,i9=0;
int x;
printf("请输入你的数:");
scanf("%d",&x);
while(x!=-1){
switch(x){
case 1:i1++;break;
case 2:i2++;break;
case 3:i3++;break;
case 4:i4++;break;
case 5:i5++;break;
case 6:i6++;break;
case 7:i7++;break;
case 8:i8++;break;
case 9:i9++;break;
}
int i=0;
number[i]=x ;
i++;
scanf("%d",&x);
}
printf("1出现的次数为%d\n",i1);
printf("2出现的次数为%d\n",i2);
printf("3出现的次数为%d\n",i3);
printf("4出现的次数为%d\n",i4);
printf("5出现的次数为%d\n",i5);
printf("6出现的次数为%d\n",i6);
printf("7出现的次数为%d\n",i7);
printf("8出现的次数为%d\n",i8);
printf("9出现的次数为%d\n",i9);
return 0;
}