| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 233 人关注过本帖
标题:输入n个数,将后面的m个数与前面的m个数换位置问题求指点错误。。
只看楼主 加入收藏
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
结帖率:96.23%
收藏
已结贴  问题点数:4 回复次数:3 
输入n个数,将后面的m个数与前面的m个数换位置问题求指点错误。。
#include<stdio.h>
#define max 1000
void main()
{
    int n,m;
    printf("请输入整数n ,m");
    scanf("%d",&n);
    scanf("%d",&m);
    int a[max]={},i,j;
    printf("请输入数组");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<m;i++)
    {
        int t;
        t=a[i];
        a[i]=a[n-1-m+i];
        a[n-1-m+i]=t;
    }
    for(i=0;i<n;i++)
        printf("%d",a[i]);
}
#include<stdio.h>
#define max 1000
void main()
{
    void swap(int a[],int t,int x);
    int shuju[max],i,j,m,n,*p;
    p=shuju;
    printf("qing shu ru m he n");
    scanf("%d",&m);
    scanf("%d",&n);
    for(i=0;i<n;i++,p++)
        scanf("%d",p++);
    swap(shuju,m,n);
    for(i=0;i<n;i++)
        printf("%d",shuju[i]);
}
void swap(int a[],int t,int x)
{
    int term,i;
    for(i=0;i<x;i++)
    {
        term=*(a+i);
        *(a+i)=*(a+x-1-t+i);
        *(a+x-1-t+i)=term;
    }
}

[ 本帖最后由 fl8962 于 2012-10-31 05:50 编辑 ]
搜索更多相关主题的帖子: include max 
2012-10-31 05:17
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
程序代码:
#include<stdio.h>
#define max 1000
void main()
{
    int n,m,i,j,k;
    int a[max];
    printf("请输入整数n ,m");
    scanf("%d%d",&n,&m);
    printf("请输入数组");
    for(i=0;i<n;i++)
        {
        scanf("%d",&a[i]);
         }
    for(j=0;j<m;j++)
         {
        int t;
        t=a[j];
        a[j]=a[n-j-1];
        a[n-1-j]=t;
         }
    for(k=0;k<n;k++)       
        printf("%d",a[k]);
       
}

帮你改好了   我也不是很懂  运行完正确  !!
就我修改来看  你这个程序的问题在于你的结构 。。。我改了一下结构就对了,。。。

有心者,千方百计;无心者,千难万难。
2012-10-31 21:26
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:4 
程序代码:
#include<stdio.h>
#define max 1000
void main()
{
    void swap(int *,int t,int x);
    int shuju[max],i,j,k,m,n,*p;
    p=shuju;
    printf("qing shu ru m he n");
    scanf("%d",&m);
    scanf("%d",&n);
    for(i=0;i<n;i++,p++)  \\你的指针在这里加了两次  我把下面的去掉了
        scanf("%d",p);
    for(k=0;k<n;k++)
        printf("the number array:%d\n",shuju[k]);
    swap(shuju,m,n);
    for(j=0;j<n;j++)
        printf("%d",shuju[j]);
}
void swap(int *q,int t,int x)
{
    int term,i;
    for(i=0;i<t;i++)
    {
        term=*(q+i);
        *(q+i)=*(q+x-i-1);  \\这个地方和上个程序一样的错误
        *(q+x-i-1)=term;
    }
}
这是第二个 ,不知道这个程序是不是你本来的意思
还有你定义了j但是你都没有用。。。

有心者,千方百计;无心者,千难万难。
2012-10-31 21:42
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 楼主 fl8962
这位大侠能加个QQ么,不会的想求你指教。。。

想抽苏烟了。
2012-11-01 19:58
快速回复:输入n个数,将后面的m个数与前面的m个数换位置问题求指点错误。。
数据加载中...
 
   



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

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