| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1277 人关注过本帖
标题:有一道程序,不知道错在哪
只看楼主 加入收藏
陈威
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
快速回复:有一道程序,不知道错在哪
数据加载中...
 
   



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

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