C语言数组问题3
第一题:
main()
{int x,cnt=0;
int a[ 20];
printf("INput some integeres between 0 to 4:
");
do
{scanf("%d",x);
a[cnt++]=x;
cnt++;
}while (cnt<20&&x!=-1)
printf("整数个数cnt=%d",cnt);
}
第二题:在这里我不懂你的“赋予2开始的偶数”这句话的意思,如果是从数组的第二个开始就是如下的程序代码了,如果是下标,你只要稍加改动就行了。第三题也是中此:
main()
{ int i,j;
int aa[3][10];
double b[3];
printf("请给数组aa[3][10]赋值:
");
for(i=0;i<3;i++)
{for(j=1;j<10;j+=2)
{ scanf("%d",&aa[i][j]);
b[i]+=aa[i][j];
}
printf("%f",b[i]/5);
}
}
第三题:
main()
{ int i,j;
int aa[2][3];
printf("请给数组aa[2][3]赋初值:
");
for(i=0;i<2;i++)
for(j=0;j<3;j+=2)
scanf("%d",&aa[i][j]);
for(j=0;j<3;j+=2)
for(i=0;i<2;i++)
printf("%d",aa[i][j]);
}
可以,次数组共占3500*4字节的内存,很小的一块内存
#include<stdio.h>void main()
{int i,j,a[3][3],sum=0;
printf("please enter the number from a11~a33:\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<3;i++)
{sum=sum+a[i][i];
}
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
printf("\nsum=%d",sum);
getch();
}
#include<stdio.h>
void main()
{
int array[3][3];
int i,j;
printf("please input your numbers:\n");
for(i = 0;i < 3;i ++ )
for(j = 0;j < 3;j ++ )
{
scanf("%d",&array[i][j]);
}
int sum;
sum = 0;
for(i = 0;i < 3;i ++ )
{
sum += array[i][i];
}
printf("sum is %d\n",sum);
}
C语言指针数组问题 求高手详解
首先m[12]={0,2,4,6,8,10,12,14,16,18,20,22} 语句 if(k<3) p[k]=m+2*k*k;的计算过程序,当k=0时,p[0]=m也就是指针p[0]指向的是数组m的开始 当k=1时,p[1]=m+2;因此p[1]指向m+2的位置,也就是从数字4开始的位置 当k=2时,p[2]=m+8;因此p[1]指向m+8...
c语言数组初始化问题:定义double t[][3]后,效果是什么?
如果省略第一个下标,必须在定义时直接初始化 例如double t[][3]={3.0,1.0,1.2,2.3} 第一个下标将根据你的数据来确定值
c语言中与数组有关的问题:数组中元素的个数是有用户输入的书的个数决 ...
1、可以使用动态数组。根据用户输入数量,在运行当中分配相应的内存。动态数组,是相对于静态数组而言。静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。而动态数组则不然,它可以随程序需要而重新指定大小。动态数组的内存空间是从堆(heap)上分配(即动态分配)的。是通过执行代码...
C语言中数组指针关于p=a,p=&a等问题!!
问题3:对于int (*p)[4]代表的是int型数组指针,步长是(4 * sizeof(int))。首先说明的是对于第7行程序打印的结果不是a[3]对应的值,这样的操作属于越界(即访问到数组外的内存)。对于(*p)[3]表达式代表*(p + 3),因为p步长为16字节(假设int型数据占4字节),所以*(p + 3)其实访问的...
c语言数组排序问题
include#includeint main(void){char cName[5][10],temp[10];float fScore[5],ftemp;int i,j,k;printf("输入学生的姓名和成绩:\\n");for(i=0;i<5;i++){printf("cName[%d]是:",i);scanf("%s",cName[i]);printf("成绩为:");scanf("%f",&fScore[i]);}for(i=0;i<5;i+...
C语言数组地址问题
}; printf("&a十六进制地址是%p,十进制是%d\\n",&a,&a); \/\/数组名,a[3][4] printf("*a十六进制地址是%p,十进制是%d\\n",*a,*a); printf("a十六进制地址是%p,十进制是%d\\n",a,a); printf("a[0]十六进制地址是%p,十进制是%d\\n",a[0],a[0])...
C语言定义数组问题
你这种抠细节的精神很好,我来告诉你正确答案。如果你是定义char a[10],那么你确保能使用的内存单元就是a[0]~~a[9],但是C编译器不会对数组下标进行检查,因此a[10]不会报错,并被编译为a[9]之后的那个内存单元。你定义a[10]的时候通常由于内存对齐等原因分配的内存会不止10bytes,因此编译器...
C语言问题 若有说明int a[][4]={1,2,3,4,5,6,7,8,9};,则数组a第一维
定义数组并赋值时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。分析:二维数组的一维大小,即指二维数组...
C语言关于数组问题
由于一个int变量占4个字节,所以你这里是 0x2000+5*4;我就不算出来了,自己算。其实这个你完全可以自己写个小的程序确认一下 ,如我写的这个小程序:include<stdio.h> void main(){ int a[10]={11,12,13,14,15}, *p=&a[5];for(int i = 0; i < 10 ; i++)printf("%#x\\n...
如何解决C语言程序输入两数组找不同的问题
输入格式:输入分别在2行中给出2个整型数组,每行先给出正整数N(<=20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:10 3 -5 2...
野华盐酸: #include void main() {int i,j,a[3][3],sum=0; printf("please enter the number from a11~a33:\n"); for(i=0;i{for(j=0;jscanf("%d",&a[i][j]); } for(i=0;i{sum=sum+a[i][i]; } for(i=0;i{for(j=0;jprintf("%3d",a[i][j]); printf("\n"); } printf("\nsum=%d",sum); getch(); }
金牛区15740307791: C语言数组提问(3)?
野华盐酸: 1、变量row=0 col=1 是程序里初始化过的,代码中能看到. 2、if(a[k][j]>a[j][i])这个就是看双层嵌套循环的比对数组中的数据,然后记录J的值存储到K中,由于您的程序不全,只能这么解释.没法说明这句代码的最终意思.猜测应该是数组排序或求数组最大最小值相关的程序.但我还是不确定,因为这个数组数据比对规律不太强啊.优化算法? 备注:提问的时候请把问题独立出来,这样可以叫别人快速回答,您的上面两端代码难免会叫人想像成一个程序.由于您两端代码没有相互调用的部分,因此我看作独立的两个问题.代码要全,不全的代码提问只有十分资深的程序老师(见过这个程序的)会给你解答,那遇到老师的概率是非常低的.请完善问题的代码.
金牛区15740307791: c++二维数组问题3.已知int a[3][2]={3,2,1}; 则表达式“a[0][0]/a[0][1]/a[0][2]”的值是1,a[0][2]不是已经超出数组范围了吗,答案1是怎么算得, - ?
野华盐酸:[答案] 二维数组的实际上在内存里存储格式是一维的 也就是a [3][2] 占用了 3*2 个int 类型数据的 连续内存空间 排放的模式是: a[0][0] ,a[0][1], a[1][0],a[1][1], a[2][0],a[2][1] 为了表示方便,我打了空格分开了,其实是连续存储的,只是逻辑上认为是二维的而已....
金牛区15740307791: C语言 a[3]关于数组的问题 - ?
野华盐酸: 看初始化,如int a[3]={1,2,3};就是指整个数组,如 int a[4]; a[3]=1; 就是指元素.
金牛区15740307791: C语言代码.数组问题 - ?
野华盐酸: #include int main() { int a[100];// 所有学生成绩数组 int b[100];//不及格成绩数组 int n,i,j,t; int count=0; int lowscore=0;//不及格人数 while(scanf("%d",&n)&&n>0) { a[count] = n; count++; } int max=a[0],min=a[0]; for(i=0;i { if(max max = a[i]; // 获...
金牛区15740307791: c语言中有关数组的三道题目 - ?
野华盐酸: 第一题:main() {int x,cnt=0; int a[ 20]; printf("INput some integeres between 0 to 4:\n"); do {scanf("%d",x); a[cnt++]=x; cnt++; }while (cnt<20&&x!=-1) printf("整数个数cnt=%d",cnt); } 第二题:在这里我不懂你的“赋予2开始的偶数”这句话...
金牛区15740307791: c语言 数组以及指针问题:3. 编写一个程序实现在一个一维数组中,删除指定的数据,删除数据用函数实现. - ?
野华盐酸: #include#define N 10int main(){ int i,a[N]={ 0 },n,x;//这里,把数组初始化一下 v...
金牛区15740307791: c语言编写程序 数组问题?
野华盐酸: 1. #include<stdio.h> #define PI 3.14 void main() { int a[10]; int b[10]; int i,j=0; int flag=0; for( i=0; i<10; i++ ) { scanf( "%d", &a[i] ); } for( i=0; i<10; i++ ) { if( a[i]%2 == 0 ) { //如果数组a中该下标数为偶数则赋值给b数组中 b[j] = a[i]; j++; flag++; //用来...
金牛区15740307791: c语言问题有如下数组定义: int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 计算下面各项的值(设数组a的首地址为2000,一个int类型数占四个字节).... - ?
野华盐酸:[答案] (1) 19 (2) 2000 + 4*4 = 2016 (3)2000 (4) 2016 (5)2016 + 4 = 2020 (6)9 (7)2000 +4*4*2 + 4 = 2036 (8) 2000 + 4*4 + 4 = 2020 (9) 21
金牛区15740307791: c语言中的数组问题 - ?
野华盐酸: b错.行数和列数不对应.a已经赋值了初始化了.所以可以的 C已经赋值了.所以可以的 D,不够的值自动默认为0