| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1277 人关注过本帖
标题:有一道程序,不知道错在哪
取消只看楼主 加入收藏
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
#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);
 p=(int *)malloc(sizeof(int)*n);

 for(i=0;i<n;i++)

 scanf("%d",p++);
 printf("input m:");
 scanf("%d",&m);
 q=(int *)malloc(sizeof(int)*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 20:14
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
改成n也不行
2010-01-04 20:19
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
空间如果多分配了应该也没问题吧
2010-01-04 20:25
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
能不能再帮我看看啊。太谢谢了。
2010-01-04 20:30
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
我是先把p中后m个数放在q中,然后p中前n-m个数依次后移m位,最后吧q中的m个数放p中开头。跟你说的差不多吧
2010-01-04 20:51
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
#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);
 p=(int *)malloc(sizeof(int)*n);
 for(i=0;i<n;i++)
 scanf("%d",p++);
 printf("input m:");
 scanf("%d",&m);
 q=(int *)malloc(sizeof(int)*n);
 for(i=0;i<m;i++)
 *(p+n-m+i)=*(q+i);
 for(i=0;i<n-m;i++)
 *(p+i)=*(q+m+i);
 for(i=0;i<n;i++)
 printf("%d",*q++);
 free(p);
 free(q);
 getch();
}
用你说的方法改成这样也不行。
2010-01-04 21:05
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
#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);
 p=(int *)malloc(sizeof(int)*n);
 for(i=0;i<n;i++)
 scanf("%d",p++);
 printf("input m:");
 scanf("%d",&m);
 q=(int *)malloc(sizeof(int)*n);
for(i=0;i<m;i++)
 *(p+n-m+i)=*(q+i);
 for(i=0;i<n-m;i++)
 *(p+i)=*(q+m+i);

 for(i=0;i<n;i++)
 printf("%d",*q++);
 free(p);
 free(q);
 getch();
}
主要是红色字体部分,按你说的方法改了还是不行
2010-01-04 21:07
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
#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);
 p=(int *)malloc(sizeof(int)*n);
 for(i=0;i<n;i++)
 scanf("%d",p++);


 for(i=0;i<n;i++)
 printf("%d",*p++);

 getch();
}
为什么这样输出也出错了
2010-01-04 21:21
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
main()
{
    int m,n,i,*p,*q;
    printf("input n:");
    scanf("%d",&n);
    printf("input %d numbers:\n",n);
    p=(int *)malloc(sizeof(int)*n);
    q=p;
    for(i=0;i<n;i++)
        scanf("%d",p++);
   
    p=q;
    for(i=0;i<n;i++)
        printf("%d",*p++);
   
    getch();
}
这两行不大懂啊
2010-01-04 21:29
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
谢谢啊
2010-01-04 22:32
快速回复:有一道程序,不知道错在哪
数据加载中...
 
   



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

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