int sz = sizeof(arr) / sizeof(arr[0]);//表示上面一组元素的个数
//其中sizeof(arr) 表示计算数组总数的大小 sizeof(arr[0])表示计算数组元素的大小 单位是字节
用我们之前的题目举例,
A同学教B同学字符常量或字符变量表示的字符在内存中以ASCII码形式存储,A给B出了一个问题,转换以下ASCII码为对应输出符,并输出他们
73 32 99 97 110 111 32 105 116 33
//输入描述:无需输入
//输出描述:一行输出转换题目中给出的所有ASCII码对应的字符,无需以空格隔开
int main()
{
int arr[] = { 73,32,99,97,110,111,32,105,116,33 };
int i = 0;//对数组的内容进行遍历
int sz = sizeof(arr) / sizeof(arr[0]);//表示上面一组元素的个数
//sizeof(arr) 表示计算数组总数的大小 sizeof(arr[0])表示计算数组元素的大小 单位是字节
while (i<sz)
{
printf("%c", arr[i]);
i++;
}
return 0;
}
这里要输出每一个ASCII码对应的输出符,一次循环输出一个,那么我们一共要循环几次呢?就要计算输入了多少个ASCII码值,或者说数组中存了多少个元素
int sz = sizeof(arr) / sizeof(arr[0]);//就是用来计算这组元素的个数,以此来决定循环多少次
下面还有一个相关的题目:在一个有序数组中查找具体的某个数字n
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//有序数组
int k = 0;//找具体某个数字7 写一个for循环遍历
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);//表示上面一组元素的个数
//其中sizeof(arr) 表示计算数组总数的大小 sizeof(arr[0])表示计算一个元素的大小 单位是字节
printf("请输入要查找的数字:");
scanf("%d", &k);
for ( i = 0; i < sz; i++)
{
if (arr[i]==k)
{
printf("找到了,下标是%d\n",i);
break;
}
}
if(i==sz)
{
printf("没找到");
}
return 0;
}
我们也可以从中体会一下arr[]与sizeof()的应用,,本题是在一个有序数组中查找具体的某个数字n,主要就是计算数组中元素个数来决定循环次数