(头文件省略)int main(){ int array[1000],i,s;i=0;scanf(“%d”,&s);//输入第一个 while(s!=-1){//循环输入直到-1 array[i]=s;//存入数组 i++;scanf(“%d”,&s);//输入下一个 } }
for(i=0;i<N;i++)if(x[i]!=-1)y[j++]=x[i]; 现在已经将x数组里面比平均属大的放到y里并且是左面,现在将x数组里比平均数小的放入y右边 (注应该是y[j++]而不是j[j++])for(i=0;i<N;i++)x[i]=y[i]; 最后把数组y里的值传给x,那么x就排好顺序了 ...
函数是求出数组的平均数,并把大于平均数的数移到数组前端。主要思路是先算出平均数。然后找一遍x数组中大于平均数av的,先暂时存到数组y中,并赋值-1表示移走数据 然后找一遍x数组中!=-1的,即第一次没被存到y中的,存到数组y中。最后把数组y赋值给数组x。
我只用指针地址距离数组初始地址的差值作为计数的变量。不习惯这么写的朋友可以定义 int i之类的变量。
include<stdio.h> int main(){ int a[100],n=-1,i;printf("输入一串整数,以 -1 结束:\n");do { scanf("%d",&a[++n]);}while(a[n]!=-1);printf("其中的偶数有:\n");for(i=0;i<n;i++)if(!(a[i]%2))printf("%d ",a[i]);printf("\n");return 0;} ...
a[n] 定义是一个有符号的数组,a[n]= -1 就是将 -1赋值给a[n]若a[n]定义为一个无符号数,可能编译会出错,也可能将最大取值-1后 送个a[n],也可能完全没问题,需要放到编译环境中测试一下
这次准备好好了解一下。以前不知道数组的下标还可是负数。这次是长见识了。 那么如何用c[-1]访问另一个数组的第一个元素呢? 其实很简单 利用指针即可。 int *c; c=arr+1; 这样c[-1]指向的就是arr[0],不管怎么样 ,是明白了有c[-1]这回事。
主函数中用的是y[i]>=0来判断y数组没有结束的,所以只要y数组元素>=0,就认为没结束,显然不能写成y[j]='\0';
{inta[] = {1,3,4};int*p = &a[-1];inti =0;for( i =1; i <4; i++) { printf("%d\n", p[i]); } } 因为数组并不检查下表是否越界,下表仅表示偏移, -1就表示第一个元素前面那个元素 例子2 在 头文件 stdarg.h 中,有如下宏定义: ...
C语言计算中得出-1.#indoo的原因是溢出类问题 C语言计算中得出-1.#indoo的原因一般有两类 第一类:数组下标溢出问题,例如数组出现负数的下标 第二类:数据类型上面的溢出,你如果求幂或者费伯拉西数列的时候,项数大很容易引发溢出,float类型数据溢出就报-1.#indoo这个错误.include <stdio.h> main() {...