某整型数组A的10个元素值依次为6,2,9,7,3,8,4,5,0,1,用基数为3的基数排序法对数组进行由小到大排序
int Lookup(int find,int array[],int low,int high)
{
if (low > high)
return -1;//表示未找到元素
int mid = (low + high)/2
if (array[mid] == find)
return mid;//找到元素,元素的位置为mid
if (array[mid] > find)//如果大于要找的值则在下半区间继续找
return Lookup(find,array,low,mid - 1);
else //如果小于要找的值则在上半区间继续找
return Lookup(find,array,mid + 1,high);
}
void main()
{
//序列应该基本有序才能使用二分法
int a[10] = {0,1,2,3,4,5,6,7,8,9};
//序列对应的位置值
int position[10] = {8,3,0,1,7,9,2,6,5,4};
int pos = Lookup(9, a, 0, 9);
if (pos == -1)
{
printf("There is not 9 in the array");
return;
}
//输出映射的位置
printf("The position of 9 in the array is %d",position[pos]);
}
选B
记住这样一个无条件相等的等式:
*(p+i)与P[i]无条件等价。
因为p是指向数组a首元素的地址,所以p[i]又和a[i]等价。
易知B选项即为p[8],也即为a[8],其值为9。
扩展资料:
一个表达式的赋值和算符的定义以及数值的定义域是有关联的。
两个表达式若被说是等值的,表示对于自由变量任意的定值,两个表达式都会有相同的输出,即它们代表同一个函数。
一个表达式必须是合式的。亦即,其每个算符都必须有正确的输入数量,在正确的地方。如表达式2+3便是合式的;而表达式*2+则不是合式的,至少不是算术的一般标记方式。
参考资料来源:百度百科-表达式
整型数组a[10]数组元素的初值分别是6,5,9,3,8,1,0,4,2和7。要求编写程序,将数组的元素值按升序排列。
a[10] a[0]、a[1]、a[2]、a[9]分别是数组a[10]的十个元素,故a[10]不能表示a数组的元素。
不能表示a数组2113元素的5261表达式是4102( B) a[10] )因为数组a的最大下标只能是9,即a[9],a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9],一共10个元素容。
*p:表示取p指针指向的单元的值,即表示取数组a的首个元素a[0]的值。
*a:数组名a中保存的是数组的首地址,*是取单元中的值,*a就是取数组首地址中单元中a[0]的值。
a[p-a]:p指向的是数组a,因为p中与a同数据相同都是数组a的首地址,而p-a就等于0,因此 a[p-a]就相当于a[0]。
扩展资料:
数组类型说明 在C语言中使用数组必须先进行类型说明。
数组说明的一般形式为:类型说明符 数组名 [常量表达式]; 其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
举例
int a[10]; 说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。
参考资料来源:百度百科-数组
在C语言中数组a包含10个元素,那么a的值是?
并为这10个元素分配内存空间。数组元素的一般形式为:数组名[下标]。其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。总之数值在0到9之间,超过此范围则有误。
定义一整型数组a[10],数组元素的值由随机函数生成,要求10个数分别取0...
include<stdio.h> include<time.h> include<stdlib.h> int main(){ int a[10],i,j,b,t;srand((unsigned int)time(NULL));\/\/srand()就是给rand()提供种子 for ( i=0;i<10;i++ ){ while ( 1 ){ a[i]=rand()%10;for (j=0,b=1;j<i;j++){ if (a[i]==a[j]){ b...
java中定义一个具有10个元素的整型数组a的语句是什么?
int[] a = new int[10];int a[] = new int[10];这两个都OK~如果知道元素具体项,也可以 int[] a = {1,2,3,4,5,6,7,8,9,0};
a[0]=10是什么意思
a[0]=10的意思如果在类型后面的话,就是定义数组a大小维度10的意思。比如int,a[10]就是定义整型数组a,大小10个整型数据大小1个int占4字节的话,就是占40个字节大小的内存。如果是在表达式中,比如a[10]=1这里a[10]就表示a数组第11个元素数组下标是从0开始的,10就是第11个元素。a[10]=1...
如何利用C语言编程实现逆序输出十个数?
C语言通过输入十个整数然后分别顺序和逆序输出的编程思想和方法如下:1.首先需要定义一个整型数组用于存储输入的10个整数。这里定义一个数组a。2.然后利用for循环,接受从键盘输入的10个整数。这里使用i作为循环的游标变量。3.输入完毕后,再次利用for循环来顺序输出存储在数组的十个数。这里同样使用局部...
C++中,定义一个整型数组a[10]={1,2,3,4,5,6,7,8,9,10},编写一个函数实 ...
void AddTwo(int &a){ for (int i=0;i<10;i++) a[i] +=2;return;}
c语言int a[10] 10是什么意思
inta表示a这个变量是整型,只能存放整数。inta【10】【10】指的是代表a的二维数组,是指向一个有十个元素的数组的指针,或者说a是具有十个元素的数组的首元素的地址,这十个元素,每个元素都是一个数组。
已知int a[10] ,请问占用内存多少个字节? 原因?
这个要看具体的编译器。如果是TC2.0,int占2字节,那int a[10]就是10*2=20字节;如果其他编译器,int占4字节,那么int a[10]就是10*4=40字节;为了安全你需要用到这个的话可以用10*sizeof(int).这样比较安全。希望能帮到你。
c语言数组的定义
在C语言中使用数组必须先进行定义,一维数组的定义方式为:类型说明符; 数组名 ;[常量表达式]。其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符,方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:int a[10]; \/* 说明整型数组a,有10个元素 ...
从标准输入(键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数...
public static void main(String[] args) { Scanner s = new Scanner(System.in);int num[] = new int[10];for(int i=0;i<10;i++){ System.out.print("请输入第"+(i+1)+"个整数:");num[i] = s.nextInt();} System.out.println("输入完毕,逆序输出该数组:");for(int i=...
子秋天可: 1 2 3 4 5 6 7 8 9 10 11 12#include <stdio.h> voidmain(){ inti,max,a[10]; scanf("%d",&a[0]); max=a[0]; for(i=1;i<10;i++) { scanf("%d",&a[i]); if(max<a[i]) max=a[i]; } printf("%d",max); } 运行示例:
新邱区18698314769: 假设有一个a数组,整形有10个元素.要输出各元素的值.求解VC6++ scanf输入问题 - ?
子秋天可: #include void main() {int a[10]; int i; for(i=0;i scanf("%d",&a[i]); //a[i]前面加&! printf("\n"); //是\n而不是/n,后面同理! for(i=0;i printf("%d ",a[i]); printf("\n"); }
新邱区18698314769: c语言编程,输入整型数组a[10]中的各元素值,然后另输入一个整数,编程查出这 - ?
子秋天可: #include <stdio.h> void main() { int i,n,k=0,a[10],b[10]={0}; for(i=0;i<10;i++) scanf("%d",&a[i]); scanf("%d",&n); for(i=0;i<10;i++) if(n==a[i]) {b[i]++;k++;} if(k) { printf("%d是数组百中的度第专",n); for(i=0;i<10;i++) if(b[i]) printf("%d,",i+1); printf("\b个元素"); } else printf("%d不是属数组中的元素",n); }
新邱区18698314769: C语言编程,设a是一个有十个元素的整型数组,统计奇数和偶数个数 - ?
子秋天可: 思路:遍历该数组,依次判断能否被2整除,确定是奇数还是偶数并进行统计,最后奇偶数个数. 参考代码: #include<stdio.h> #include<math.h> int main(){int i,j=0,o=0,a[10]={0,1,2,3,4,5,6,7,8,9};for(i=0;i<10;i++)if(a[i]%2) j++;else o++;printf("奇数有%d个,偶数有%d个.\n",j,o);return 0;} /* 运行结果: 奇数有5个,偶数有5个. */
新邱区18698314769: 已经用int a[10];定义了一个含十个元素的整形数据,请对数组a的第三个元素赋值为8 - ?
子秋天可: 首先,你这句话“已经用int a[10];定义了一个含十个元素的整形数据”就是错的.a[10]共11的元素而不是10个,因为C语言中数组是从a[0]开始为第一个数到a[n-1]结束共n个数.第三个是是a[2],所以a[2]=8
新邱区18698314769: 整型数组a中有10个元素,整型数组b中有6个元素,编程将那些在数组a中而不在数组b的数据组成新数组c并输出 - ?
子秋天可: i<=j 改成i<j 输出数组b的值 应该是 b[i] 每行输出3个的条件应该写成 (i+1)%3==0
新邱区18698314769: 1.定义具有10数组元素的整型数组a,从键盘输入整型数组元素的值并采用冒泡法进行升序排序 - ?
子秋天可: 代码如下:#include <stdio.h>#define N 10//冒泡排序(升序) void bubble_sort(int a[],int n) { int i,j; //j表示趟数,i表示每i趟两两比较的次数 int tmp; //临时变量 for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) { if(a[i] > a[i+1]) { tmp=a[i]; a[i]=a[i+1]; a[i+1]=tmp; } } ...
新邱区18698314769: 在程序中定义整型数组 a[6],然后从键盘输入任意6个整数,并顺序赋值给数组 a 的所有元素? - ?
子秋天可: 望采纳