c语言基础数组问题

作者&投稿:鄘卫 (若有异议请与网页底部的电邮联系)
C语言数组基础问题~

A:t[3][2],其中的三数组越界,它定义了只有t[3][2],那么的它的最大数组下标是t[2][1],下标是从0开始的


B:t[3],也是越界问题,而且也不是代表元素,就算正确,也是代表第四行元素的首地址


D:t[2]代表的是第三行元素的首地址
所以选C

筛法
筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。
具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。(另一种解释是当时的数写在纸草上,每要划去一个数,就把这个数挖去,寻求质数的工作完毕后,这许多小洞就像一个筛子。)
例如,用筛法找出不超过30的一切质数:
不超过30的质数2,3,5,7,11,13,17,19,23,29共10个。
#include
#include
int prime(int n)/*判断是否为素数函数,是返回1,不是返回0 */
{int i;
for(i=2;i<sqrt(n);i++) /*循环除去sqrt(n)以下的数*/
{
if(n%i==0)
return(0);/*如果不是素数,返回0*/
}
return 1;/*如果是素数,返回1*/
}

main(void)
{int i;
printf("

=== start ===

");
for(i=2;i<=100;i++)
{
if(prime(i))/*得到素数*/
print("%d is a prime",i);
}
getch();
}

#include <stdio.h>
void main()
{
int i;
float sum=0.0,average;
/*因为涉及到除法,如果定义为整形,在除的过程系统会自动取整*/
/*为了保存小数点,应该定义为浮点型*/
int a[10]={32,47,64,18,95,14,90,70,60,37};

printf("order:\tvalue\n");/*输出数组*/

for(i=0;i<10;i++)
printf("%d\t%d\n",i,a[i]);

int max=min=a[0];
for(i=0;i<10;i++)
{
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];
sum=sum+a[i];
}
average=sum/10.0;/*注意此处除数是10.0*/
printf("max:%3d,min:%3d,sum:%3d,average:%3d\n",max,min,sum,average);
}

//求最大数
float Max(float * array,int size)
{
float max = *(array);
for(int i=1;i<=size;i++)
if(*(array+i) > max)
max = *(array+i);
return max;
}
//求最小数
float Min(float * array,int size)
{
float min = *(array);
for(int i=1;i<=size;i++)
if(*(array+i) < min)
min = *(array+i);
return min;
}
//求总和
float Sum(float * array,int size)
{
float sum=0;
for(int i=0;i<=size;i++)
sum +=*(array+i);
return sum;
}
//求平均数
float Avg(float * array,int size)
{
return Sum(array,size)/size;
}

void main()
{
float x[10]={32,27,64,18,95,14,90,70,60,37};
float max,min,avg;
max=Max(x,9);
min=Min(x,9);
avg=Avg(x,9);

for(int i=0;i<10;i++)
printf("%i %f\n",i,x[i]);
printf("Max:%f\nMin:%f\nAvg:%f\n",max,min,avg);
return;
}
已经纺译通过

#include<stdio.h>
void main()
{
int max=0,min=100;
float sum=0;
int temp1=0,temp2=0;
int a[10]={32,27,64,18,95,14,90,70,60,37};
for(int i=0;i<10;i++)
{
if(max<a[i])
{
max=a[i];
temp1=i;
}
if(min>a[i])
{
min=a[i];
temp2=i;
}
printf("%d %d\n",i,a[i]);
sum+=a[i];
}
printf("largest one is: %d\n",max);
printf("smallest one is: %d\n",min);
printf("average is: %.3f\n",sum/10);
}

我也不懂


c语言数组的问题 比如定义了一个数组a[7];那么a[0],a[1]与它什么关系...
a[0]和a[1]是数组里面的元素比如说a[7]={1,2,3,4,5,6,7};a[0]就是1 a[1]就是2 但是要注意不能越界,比如a[7]是错误的,因为访问下标从0开始的,最大只能是a[6]

关于C语言中数组定义问题
主函数内定义的数组在堆栈段中分配内存。全局变量数组在数据段中分配内存。一般数据段比堆栈段大很多,所以堆栈段分配不了的内存,数据段可以分配 (1)在堆栈段中分配内存,由于太大无法分配,所以错误。(2)在数据段中分配内存,数据段可以分配,无错误。(3)数组比(1)需要的内存少,在堆栈段大小...

C语言中 数组问题 求高手解释
定义的时候才不能用变量,如:int n = 3;int a[n];这样是错的。但是如果不是定义就可以 ++ndigit[c-'0']; 只是对数组操作,当然可以用变量 先解释下这个程序的作用,数组 ndigit 保存的就是0到9出现的次数,如果出现一个0,ndigit[0]就加 1 ,以此类推。c==' '||c=='\\n'||c=='...

c语言数组问题,x[0][1]为什么是0,而不是2
这里是二维数组x[3][2],3行2列,可以理解成3个一维数组,每个一维数组中有两个元素。所以这里scanf赋值,x[i]表示x[0],x[1],x[2],分别表示3个一维数组的第一个元素,即x[0][0],x[1][0],x[2][0],所以赋值当然是给这3个元素赋值,又因为二维数组定义时就将数组中元素都清0了,...

c语言基础数组问题
include <stdio.h> void main(){ int i;float sum=0.0,average;\/*因为涉及到除法,如果定义为整形,在除的过程系统会自动取整*\/ \/*为了保存小数点,应该定义为浮点型*\/ int a[10]={32,47,64,18,95,14,90,70,60,37};printf("order:\\tvalue\\n");\/*输出数组*\/ for(i=0;i<10;i...

c语言中与数组有关的问题:数组中元素的个数是有用户输入的书的个数决 ...
1、可以使用动态数组。根据用户输入数量,在运行当中分配相应的内存。动态数组,是相对于静态数组而言。静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。而动态数组则不然,它可以随程序需要而重新指定大小。动态数组的内存空间是从堆(heap)上分配(即动态分配)的。是通过执行代码...

c语言基础问题,++数组表达什么意思?
b[a - '0']是数组中的一个元素,该元素自增1而已。类似于++a

C语言关于数组的问题
include <stdio.h> \/\/载入标准输入输出库 main() \/\/主函数,作为c程序的入口函数,从这里开始。{ char *s,c[80]; \/\/创建一个字符型的指针,一个字符型的数组 s=c; \/\/将指针指向这个数组的开头。(数组名等于指向数组开头的指针)gets(s); \/\/从键盘获取输入到s,因为此时s指向c[],所以...

关于C语言字符数组的问题
初始化数组时,应加上 花括号{};即 a[2][3]={'a','b'};如果使用 字符串 初始化数组,则可以不加 花括号,如:a[2][3]="ab";至于B 为什么对呢?① B 项的名称定义符合变量命名要求(字母和下划线开头,由字母、数字、下划线任意组合而成);② B 项的数组定义符合C语言要求,即 其一...

C语言 一个关于数组的小问题
你这个寻找最大值的方法本来就有问题,只是单纯的比较临近的两个元素。if(c[a][b]>=c[a][b+1]),8比4大,而4又比1大,所以最后把值更新为4。正确的写法应该是:int row_max[Z]={0,0,0};...for(a=0;a<Z;a++){ for(b=0;b<Z+1;b++)if(c[a][b]>row_max[a]) row_...

沙湾区13748096859: 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]; // 获...

沙湾区13748096859: C语言数组基本问题
章苛复方: a是二维指针,a[i]是一维指针,a[i][j]是变量,所以&a[i][j]是一维指针,故a == &a[0][0]为不同类型指针的比较,是错误的.有以上分析可知,a == &a[i]是合法的.

沙湾区13748096859: c语言数组基本问题 -
章苛复方: 筛法,是求不超过自然数N(N>1)的所有质数的一种方法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子. 具体做法是:先把N个自然数按次序排列起来.1不是质数,也不是合数,要划去...

沙湾区13748096859: C语言关于数组的基础知识 -
章苛复方: c[2]指的是 c[2]这个数组的首地址 一般定义了一个字符数组 str[100] 后,直接写 str 表示该数组的首地址.而访问一个字符数组,也可以通过首地址直接访问.

沙湾区13748096859: 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++; //用来...

沙湾区13748096859: c语言有关数组的问题 -
章苛复方: 这个问题很简单的,这个程序的功能就是找出不想等的几个数,主要实现就在这几个for循环上,for (i=0 ;i< 10-n ;i++)//遍历整个数组 { c=a [i] ;//把第i个数组元素赋值给c f...

沙湾区13748096859: c语言数组问题
章苛复方: 第一题:#include<stdio.h> #define N 20 int search(int b[ ],s)/*拆半查找法*/ {int id=-1; int low,mid,high; low=0; high=N-1; while(low<=high) {mid=(low+high)/2; if(b[mid]==s){id=mid;break;} else if(b[mid]>s) low=mid+1; else high=mid-1; } return id; } void...

沙湾区13748096859: C语言数组基础问题 -
章苛复方: 数组下标是从0开始的, 所以数组t的取值范围是 t[0][0]~t[2][1], 自然 A, B错; D表示的是t[2][0]的值【*t[2] == * (*(t + 2)),参见多维数组与指针】

沙湾区13748096859: c语言数组问题 -
章苛复方: #include<stdio.h> void main() { int i,j,k,a[10]; k=0; j=0; printf("input 10 number:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) { if(a[k]<a[i]) k=i; } printf("the max number is:%d\n",a[k]); for(i=k;i<10;i++) { a[k]=a[i+1]; k++; } for(i=0;i<9;i++) { printf("%d ",a[i]); } printf("\n"); }

沙湾区13748096859: c语言关于数组方面的问题
章苛复方: (1)#include&lt;iostream&gt; using namespace std; int main(void) { int a[10],min,temp; cout&lt;&lt;"输入10个整数"&lt;&lt;endl; for(int i=0;i&lt;10;++i) cin&gt;&gt;a[i]; for(i=0;i&lt;10;++i) for(int j=1;j&lt;10;++j) if(a[j]&lt;a[i]){min=j;} temp=a[min];a[min]=a[...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网