首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小程序,红色部分为什么错解决方案

2012-06-11 
小程序,红色部分为什么错#includestdio.hvoid main(){int i,nints[20],*ppsprintf(\ninput n:)sc

小程序,红色部分为什么错
#include<stdio.h>
void main()
{ int i,n;
  int s[20],*p;
  p=s;
  printf("\ninput n:");
  scanf("%d",&n);
  printf("input the %d numbers:",n);
  for(i=0;i<n;i++)
  scanf("%d",p++);
  printf("now:\n");
  for(i=0;i<n;i++)
  printf("%d ",*(p+i));
}





















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































[解决办法]

+++

探讨
红色的地方没有错误。错误的地方是你没有把p重新设置为s的首地址而已。

C/C++ code

int main()
{
int i,n;
int s[20],*p;
p=s;
printf("\ninput n:");
scanf("%d",&amp;n);
printf("input the %d numbers:",n);……

[解决办法]
方案一

我把你的程序求改了一下,又加了一个指针变量q,来记录数组的首地址
#include<stdio.h>
#include<stdlib.h> 
int main()
{ int i,n;
int s[20],*p,*q;
p=q=s;
printf("\ninput n:");
scanf("%d",&n);
printf("input the %d numbers:",n);
for(i=0;i<n;i++)
scanf("%d",p++);
printf("now:\n");
for(i=0;i<n;i++)
printf("%d ",*q++);
system("pause");
return 0; 
}
方案二
增加指针输出时*p++改成*--p也可以的
#include<stdio.h>
#include<stdlib.h> 
int main()
{ int i,n;
int s[20],*p;
p=s;
printf("\ninput n:");
scanf("%d",&n);
printf("input the %d numbers:",n);
for(i=0;i<n;i++)
scanf("%d",p++);
printf("now:\n");
for(i=0;i<n;i++)
printf("%d ",*--p);
system("pause");
return 0; 
}

热点排行