计算数组连续两个元素的积
程序如下:#define N 6
#include<stdio.h>
void f1(int *p,int *q)
{
int *t;
t=p;
for(;p<t+N;p++,q++)
*q=(*p)*(*(p+1));
}
int main(void)
{
int a[N],b[N-1];
int *p;
printf("请输入数组a[%d]的%d个元素:\n",N,N);
for(p=a;p<a+N;p++)
scanf("%d",p);
f1(a,b);
printf("数组a[%d]为:\n",N);
for(p=a;p<a+N;p++)
printf("%d ",*p);
printf("\n");
printf("数组b[%d]为:\n",N-1);
for(p=b;p<b+N-1;p++)
printf("%d ",*p);
printf("\n");
return 0;
}
运行之后,数组b是正确的结果,但数组a的第一个元素是一个很奇怪的数,但除了这一个元素之外数组a都是正确显示的,求解疑,谢谢。
附上程序运行结果如下:
请输入数组a[6]的6个元素:
1 2 3 4 5 6
数组a[6]为:
7470720 2 3 4 5 6
数组b[5]为:
2 6 12 20 30
Press any key to continue