include<stdio.h> void main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i ,s=0 ;for (i=0;i<4;i++) s+=aa[i][1];printf("%d\n",s);} 你要的是不是这个程序?结果是19,aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]=2...
(*ptr)[3]=a,数组指针只有3行,数组a有四行,所以(*ptr)[0]={1,2,3,4},(*ptr)[1]={5,6,7,8},(*ptr)[2]={9,10,11,12},所以*((ptr+1)[2])表示的是(*ptr)[2]里面的第二个元素就是10((ptr+1)[2])这种用法是不对的,数组的下标相当与解引用,比如a[2]=*(a+2)...
C语言程序如下:int main(){ char temp[3];for(int i = 123;i<=987;i++){ itoa(i, temp, 10);//转换成string if(temp[0] != temp[1] && temp[0] != temp[2] && temp[1] != temp[2]){ int a = sqrt(i);if(a * a == i){ std::cout << i << std::endl;}...
选择D 数字只有10个元素,下标依次是0-9,下标为10是越界了 答案
下标为奇数元素,即下标是 i=1,3,5,7, 的元素 a[i] 之和。用循环语句,步长为2:for (i=1;i<9;i=i+2) 。。。求和 用: sum=sum+a[i];累加器 初值给0。程序如下:include<stdio.h> int main(){ int a[9]={1,2,3,4,5,6,7,8,9};int i,sum;sum=0;for (i=1;...
include <stdio.h> int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;int i,t;for (i=0;i<5;i++) {t=*(p+i); *(p+i)=*(p+9-i); *(p+9-i)=t;};for (i=0;i<10;i++) printf("%d ",a[i]);return 0;} ...
都正确,你要知道,数据在内存当中的存储方式。你的*(*(a+1)+2)就是一行二列的元素,那就是6.而*(*(p+5))就是偏移量为5的那个元素,还是6啊。你的数组虽然是二维数组,但在内存当中还是以顺序的方式存放数据的。了解了就知道怎么回事了。 (提醒,别忘了数组是从0开始的,就是0行...
include <stdio.h> define N 10 main(){ int a[N]={1,2,3,4,5,6,7,8,9,10};int i,j,t;printf("Before:\n");for(i=0;i<=N-1;i++)printf("%4d",a[i]);printf("\n");for (i=0,j=N-1;i<j;i++,j--){ t=a[i];a[i]=a[j];a[j]=t;} printf("After...
不知道是不是这个意思——include "stdio.h"int main(void){ int a[2][5]={0,1,2,3,4,5,6,7,8,9},i,j; for(i=0;i<2;i++){ for(j=0;j<5;printf("%2d",a[i][j++])); printf("\n"); } printf("\n"); for(i=1;i>=0;i--){ for...
定义数组并赋值时C语言规定下标是这样的,a[n]中的n个元素应该是a[0]...a[n-1]。。因此int a[][4]的写法就是表示,第一维大小没限制,但是第二维数组大小就是4,也就是int a[][4]={{1,2,3,4},{5,6,7,8},{9,10}},明显是3。分析:二维数组的一维大小,即指二维数组...