标题:有一道程序,不知道错在哪
只看楼主
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
结帖率:95%
 问题点数:0 回复次数:34 
有一道程序,不知道错在哪
#include "stdio.h"
#include "conio.h"

main()
{
 int m,n,i,*p,*q;
 printf("input n:");
 scanf("%d",&n);
 printf("input %d numbers:\n",n);
 for(i=0;i<n;i++)
 scanf("%d",p++);
 printf("input m:");
 scanf("%d",&m);
 for(i=0;i<m;i++)
 *(p+n-m+i)=*(q+i);
 for(i=n-m;i>0;i--)
 *(p+i+m)=*(p+i);
 for(i=0;i<m;i++)
 *(p+i)=*(q+i);
 for(i=0;i<n;i++)
 printf("%d",*p++);
 getch();
}
要实现最后m个数放开头,前n-m个数一次向后m移位。运行结果出错,请指正
搜索更多相关主题的帖子: include numbers 
2010-01-04 19:28
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
得分:0 
是不是指针未分配存储空间的问题?
2010-01-04 19:33
指手画脚
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:334
专家分:560
注 册:2009-12-28
得分:0 
先开辟内存再搞吧
别没事儿忽悠内存
忽悠不明白 你俩都会论的

世界很简单 是非很复杂
有些东西是你的 但是你质疑的多了 可能就不是你的了
2010-01-04 19:36
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
得分:0 
能不能帮忙修改下?
2010-01-04 19:42
指手画脚
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:334
专家分:560
注 册:2009-12-28
得分:0 
以下是引用陈威在2010-1-4 19:42:46的发言:

能不能帮忙修改下?
办法太多了 不知道你要什么样的

世界很简单 是非很复杂
有些东西是你的 但是你质疑的多了 可能就不是你的了
2010-01-04 19:43
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
得分:0 
帮忙给指针分配存储空间
2010-01-04 19:48
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
得分:0 
#include "stdio.h"
#include "conio.h"

main()
{

 int m,n,i,*p,*q,a[10];
 printf("input n:");
 scanf("%d",&n);
 printf("input %d numbers:\n",n);
 p=a;
 for(i=0;i<n;i++)
 scanf("%d",p++);
 printf("input m:");
 scanf("%d",&m);
 for(i=0;i<m;i++)
 *(p+n-m+i)=*(q+i);
 for(i=n-m;i>0;i--)
 *(p+i+m)=*(p+i);
 for(i=0;i<m;i++)
 *(p+i)=*(q+i);
 for(i=0;i<n;i++)
 printf("%d",*p++);
 getch();
}
这样修改怎么还不行?
2010-01-04 19:53
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
得分:0 
#include "stdio.h"
#include "conio.h"

main()
{

 int m,n,i,*p,*q,a[10],b[10];
 printf("input n:");
 scanf("%d",&n);
 printf("input %d numbers:\n",n);
 p=a;q=b;
 for(i=0;i<n;i++)
 scanf("%d",p++);
 printf("input m:");
 scanf("%d",&m);
 for(i=0;i<m;i++)
 *(p+n-m+i)=*(q+i);
 for(i=n-m;i>0;i--)
 *(p+i+m)=*(p+i);
 for(i=0;i<m;i++)
 *(p+i)=*(q+i);
 for(i=0;i<n;i++)
 printf("%d",*p++);
 getch();
}
这样修改(通过数组给指针分配存储空间)为什么还不行?
2010-01-04 19:56
指手画脚
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:334
专家分:560
注 册:2009-12-28
得分:0 
会用malloc么

世界很简单 是非很复杂
有些东西是你的 但是你质疑的多了 可能就不是你的了
2010-01-04 19:56
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
得分:0 
不大会啊
用malloc不是一个一个分配存储空间吗?
2010-01-04 19:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-294963-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.266976 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved