鱼C论坛

 找回密码
 立即注册
查看: 2388|回复: 6

C语言,

[复制链接]
发表于 2019-10-10 16:54:49 | 显示全部楼层 |阅读模式

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

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

x
2010年计算机联考真题 n(n>1)个整数放到一维数组R中,将R中保存的顺序序列循环左移p(0<p<n)个位置,
即R中数据由(X0,X1...Xn-1)变换为(Xp,Xp+1...Xn-1,X0,...Xp-1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-10 18:08:22 | 显示全部楼层
本帖最后由 jackz007 于 2019-10-10 19:16 编辑
#include <stdio.h>

void rol(int * R , const int n , const int p)
{
        int d , k , x                                            ;
        for(d = 0 ; d < p ; d ++) {
                x = R[0]                                         ;
                for(k = 0 ; k < n - 1 ; k ++) R[k] = R[k + 1]    ;
                R[n - 1] = x                                     ;
        }
}

void show(const int * R , const int n)
{
        int k                                    ;
        for(k = 0 ; k < n ; k ++) {
                if(! (k % 10)) {
                        if(k) printf("\n")       ;
                        printf("\t")             ;
                } else {
                        printf(" ")              ;
                }
                printf("%3d" , R[k])             ;
        }
        printf("\n")                             ;
}

int main(void)
{
        int R[100] , k , n , p                   ;
        n = 100 , p = 5                          ;
        for(k = 0 ; k < n ; k ++) R[k] = k + 100 ;
        show(R , n)                              ;
        rol(R , n , p)                           ;
        printf("\n")                             ;
        show(R , n)                              ;
        printf("\n")                             ;
}
C:\Bin>g++ -o x x.c

C:\Bin>x
        100 101 102 103 104 105 106 107 108 109
        110 111 112 113 114 115 116 117 118 119
        120 121 122 123 124 125 126 127 128 129
        130 131 132 133 134 135 136 137 138 139
        140 141 142 143 144 145 146 147 148 149
        150 151 152 153 154 155 156 157 158 159
        160 161 162 163 164 165 166 167 168 169
        170 171 172 173 174 175 176 177 178 179
        180 181 182 183 184 185 186 187 188 189
        190 191 192 193 194 195 196 197 198 199

        105 106 107 108 109 110 111 112 113 114
        115 116 117 118 119 120 121 122 123 124
        125 126 127 128 129 130 131 132 133 134
        135 136 137 138 139 140 141 142 143 144
        145 146 147 148 149 150 151 152 153 154
        155 156 157 158 159 160 161 162 163 164
        165 166 167 168 169 170 171 172 173 174
        175 176 177 178 179 180 181 182 183 184
        185 186 187 188 189 190 191 192 193 194
        195 196 197 198 199 100 101 102 103 104


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

使用道具 举报

发表于 2019-10-10 21:59:40 | 显示全部楼层
为什么我K的赋值会报错的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-10 22:00:16 | 显示全部楼层
本帖最后由 898822345 于 2019-10-10 22:03 编辑

#include <stdio.h>

void rol(int * R, const int n , const int p)
{
        int d,k,x;
        for(d = 0 ; d < p ; d ++){
                x= R[0];
                for(k = 0 ; k < n - 1 ; k  ++) R[k] =R[k+1];
                R[n -1] =x;
        }
}

void show(const int *R , const int n)
{
        int k
        for(k = 0 ; k < n ; k  ++){
                if(!(k % 10)){
                        if (k) printf("\n");
                        printf("\t");
                }else{
                        printf(" ")
                       
                }
                printf("%3d" , R[k]);       
        }
                   printf("\n");
        int main(void)
        {
                int R[100],k,n,p    ;
                n = 100 , p=5;
                for(k = 0 ; k<n ; k++)R[k] = k + 100;
                show(R,n);
                rol(R,n,p);
                printf("\n");
                show(R , n);
                printf("\n");
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-10 22:01:36 | 显示全部楼层
我看着打的一边打一边改。不过还是报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-11 14:23:12 | 显示全部楼层
898822345 发表于 2019-10-10 21:59
为什么我K的赋值会报错的。

#include <stdio.h>
long long  a[1000005];
long long  n,p;

int  main(int  argc, char const *argv[])
{
  scanf("%d%d",&p,&n);
  long long i=0;
  for(i=0;i<n;i++)
  {
    scanf("%lld",&a[i]);
  }
  p%=n;
  //printf("%d\n",p);
  for(i=p;i<n;i++)
   {
    printf("%lld ",a[i]);
   }
  for(long long  i=0;i<p;i++)
   {
    printf("%lld%llc",a[i],i==p-1?'\n':' ');
   }
  return 0;
}
我自己搞的,可以借鉴一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-12 21:58:06 | 显示全部楼层
刘晨1108 发表于 2019-10-11 14:23
#include
long long  a[1000005];
long long  n,p;

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-4 15:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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