C语言·关于数组的学习

一般形式:

数组的一般格式为 :               <类型>变量名称[元素数量]

例如: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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eilic.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值