| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1943 人关注过本帖
标题:能帮我看一下我的代码哪里不符合题意吗?
只看楼主 加入收藏
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:4 
能帮我看一下我的代码哪里不符合题意吗?
有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m<n<100)个位置。
输入
输入数据有2行,第一行的第一个数为n,后面是n个整数,
第二行整数m。
输出
按先后顺序输出n个整数。
样例输入

5 1 2 3 4 5
2

样例输出

4 5 1 2 3

我的:
#include<stdio.h>
int main()
{
    int a[100],t;
    int n;
    int m;
    int i,j;
    int k;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    scanf("%d",&m);
    for(i=0;i<m;i++)
    {
        t=a[i];
        a[i]=a[n-m+i];
        a[n-m+i]=t;
    }
    for(i=m,k=m;k<=n-m-1;k++)
    {
        for(j=i;j<n-1;j++)
        {
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
        }
    }
    for(i=0;i<n-1;i++)
    {
        printf("%d ",a[i]);
    }
    printf("%d\12",a[i]);
    return 0;
}
搜索更多相关主题的帖子: 代码 整数 int scanf for 
2018-12-13 21:00
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:5 
#include<stdio.h>
int main()
{
    int a[100],t;
    int n;
    int m;
    int i,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    scanf("%d",&m);
    for (i=0,j=n-m; i<m; ++i,++j)
    {
        t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    for (i=0; i<n; ++i)
        printf("%d ", a[i]);
    return 0;
}
2018-12-14 05:52
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
收藏
得分:0 
回复 2楼 吹水佬
他还要剩下的数字向后移

I am the voice of the next generation
Completely digital
Create synthetic auras
2018-12-15 14:58
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>

void swap(int *tp,int n,int m)
{
    int *temp,*temp1,i;

    temp = (int *) malloc (sizeof(int)*m);
    temp1 = temp;

    for(i=0;i<m;i++)
        *(temp + i) = *(tp + n -m + i);

    for(i=0;i<(n-m);i++)
        *(tp + n - i -1) = *(tp + n - m - i - 1);

    temp = temp1;
    for(i=0;i<m;i++)
        *(tp + i) = *(temp + i);
}

int main()
{
    int n,m,i;
    int *p,*tp;

    scanf("%d",&n);
    p = (int *) malloc (sizeof(int) * n);
    tp = p;

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

    while(scanf("%d",&m) && m>n) ;

    swap(tp,n,m);

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

    return 0;
}

用指针写的,供参考
2018-12-15 16:46
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
收藏
得分:10 
程序代码:
#include<stdio.h>
int main(void)                                                                                     

{
    int a[100];
    int n, m, i, j;
    scanf("%d", &n);
    for(i = 0; i < n; i++)
        scanf("%d", &a[i]);
    scanf("%d", &m);
    for(i = n-m; i < n; i++)
        printf("%d ", a[i]);
    for(i = 0; i < n-m; i++)
        printf("%d ", a[i]);
    return 0;
}

C果然是有点难啊!
2018-12-15 16:50
快速回复:能帮我看一下我的代码哪里不符合题意吗?
数据加载中...
 
   



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

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