鱼C论坛

 找回密码
 立即注册
查看: 2829|回复: 15

[已解决]教材P214:第8章课后习题题三(3)-数组元素循环移位问题(左移)

[复制链接]
发表于 2022-12-9 10:57:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题描述】教材P214:第8章课后习题题三(3)-数组元素循环移位问题(左移)。
【输入形式】输入移位的个数。
【输出形式】输出循环移位前和后,数组元素的值。
【样例输入】


                               
登录/注册后可看大图





【样例输出】
【样例说明】完成函数的编写和调用
【评分标准】补充下面代码

#include "stdio.h"
#define N 10
void cycle(int *p,int n,int count)
{   






}
int main()
{   int i,n,a[N]={1,2,3,4,5,6,7,8,9,10};
    scanf("%d",&n);
    printf("Before:\n");
    for(i=0;i<N;i++)
        printf("%4d",a[i]);






printf("\nAfter:\n");
      for(i=0;i<N;i++)
        printf("%4d",a);
    printf("\n");
    return 0;
}
[/i]
最佳答案
2022-12-9 20:38:05
zzs2963584895 发表于 2022-12-9 20:17
file:///C:/Users/29635/AppData/Local/Temp/WeChat%20Files/9cc81c9b26a4c09f8f0d6880003fe07.png

用 ...

忘了C90没有VLA
#include "stdio.h"
#define N 10
void cycle(int *p,int n,int count)
{   
        count %= n;
        int k = count, pos = 0;
        int nk[N] = {};
        for (pos = 0; pos < n; ++pos) {
                nk[pos] = p[k];
                ++k;
                k %= n;
        }
        int i;
        for (i = 0; i < n; ++i)
                p[i] = nk[i];
                
}
int main()
{   int i,n,a[N]={1,2,3,4,5,6,7,8,9,10};
    scanf("%d",&n);
    printf("Before:\n");
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
        cycle(a, N, n);
        printf("\nAfter:\n");
      for(i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-9 10:57:32 | 显示全部楼层
求求大佬帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-9 12:55:41 | 显示全部楼层
输入输出是什么???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-9 15:35:39 | 显示全部楼层
zhangjinxuan 发表于 2022-12-9 12:55
输入输出是什么???

输入位移的个数
输出形式;输出循环位移前和后,数组元素的值
例如:
3
Before:
    1    2    3    4    5    6    7    8    9    10
After:
    4    5    6    7    8    9   10   1    2     3   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-9 15:37:01 | 显示全部楼层
zhangjinxuan 发表于 2022-12-9 12:55
输入输出是什么???

补充空着的代码就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-9 16:04:27 | 显示全部楼层
#include "stdio.h"
#define N 10
void cycle(int *p,int n,int count)
{   
        count %= n;
        int k = count, pos = 0;
        int nk[n] = {};
        for (pos = 0; pos < n; ++pos) {
                nk[pos] = p[k];
                ++k;
                k %= n;
        }
        for (int i = 0; i < n; ++i)
                p[i] = nk[i];
                
}
int main()
{   int i,n,a[N]={1,2,3,4,5,6,7,8,9,10};
    scanf("%d",&n);
    printf("Before:\n");
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
        cycle(a, N, n);
        printf("\nAfter:\n");
      for(i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-9 16:19:05 | 显示全部楼层

请问可以不用c99嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-9 17:16:28 | 显示全部楼层
#include "stdio.h"
#define N 10
void cycle(int *p,int n,int count)
{   
        count %= n;
        int k = count, pos = 0;
        int nk[n] = {};
        for (pos = 0; pos < n; ++pos) {
                nk[pos] = p[k];
                ++k;
                k %= n;
        }
        int i;
        for (i = 0; i < n; ++i)
                p[i] = nk[i];
                
}
int main()
{   int i,n,a[N]={1,2,3,4,5,6,7,8,9,10};
    scanf("%d",&n);
    printf("Before:\n");
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
        cycle(a, N, n);
        printf("\nAfter:\n");
      for(i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-9 17:17:07 | 显示全部楼层

什么年代了啊,咋还用C90啊,你用的VC6吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-9 19:55:28 | 显示全部楼层
zhangjinxuan 发表于 2022-12-9 17:17
什么年代了啊,咋还用C90啊,你用的VC6吗?

DevC++
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-9 20:14:42 | 显示全部楼层
本帖最后由 zzs2963584895 于 2022-12-9 20:15 编辑
zhangjinxuan 发表于 2022-12-9 17:17
什么年代了啊,咋还用C90啊,你用的VC6吗?


file:///C:/Users/29635/AppData/Local/Temp/WeChat%20Files/d19888dd3ea71e8383b20e318535000.png
提交完如图所示,打开链接就能看到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-9 20:17:31 | 显示全部楼层
zhangjinxuan 发表于 2022-12-9 17:17
什么年代了啊,咋还用C90啊,你用的VC6吗?

file:///C:/Users/29635/AppData/Local/Temp/WeChat%20Files/9cc81c9b26a4c09f8f0d6880003fe07.png

用软件编译的结果,打开链接可看图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-9 20:37:17 | 显示全部楼层
zzs2963584895 发表于 2022-12-9 20:17
file:///C:/Users/29635/AppData/Local/Temp/WeChat%20Files/9cc81c9b26a4c09f8f0d6880003fe07.png

用 ...

what??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-9 20:38:05 | 显示全部楼层    本楼为最佳答案   
zzs2963584895 发表于 2022-12-9 20:17
file:///C:/Users/29635/AppData/Local/Temp/WeChat%20Files/9cc81c9b26a4c09f8f0d6880003fe07.png

用 ...

忘了C90没有VLA
#include "stdio.h"
#define N 10
void cycle(int *p,int n,int count)
{   
        count %= n;
        int k = count, pos = 0;
        int nk[N] = {};
        for (pos = 0; pos < n; ++pos) {
                nk[pos] = p[k];
                ++k;
                k %= n;
        }
        int i;
        for (i = 0; i < n; ++i)
                p[i] = nk[i];
                
}
int main()
{   int i,n,a[N]={1,2,3,4,5,6,7,8,9,10};
    scanf("%d",&n);
    printf("Before:\n");
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
        cycle(a, N, n);
        printf("\nAfter:\n");
      for(i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-9 20:42:31 | 显示全部楼层

多谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-9 20:43:05 | 显示全部楼层

不用谢^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 14:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表