刘晨1108 发表于 2019-10-10 16:54:49

C语言,

2010年计算机联考真题 n(n>1)个整数放到一维数组R中,将R中保存的顺序序列循环左移p(0<p<n)个位置,
即R中数据由(X0,X1...Xn-1)变换为(Xp,Xp+1...Xn-1,X0,...Xp-1)

jackz007 发表于 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                                       ;
                for(k = 0 ; k < n - 1 ; k ++) R = R    ;
                R = 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)             ;
      }
      printf("\n")                           ;
}

int main(void)
{
      int R , k , n , p                   ;
      n = 100 , p = 5                        ;
      for(k = 0 ; k < n ; k ++) R = 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>

898822345 发表于 2019-10-10 21:59:40

为什么我K的赋值会报错的。{:10_266:}

898822345 发表于 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;
                for(k = 0 ; k < n - 1 ; k++) R =R;
                R =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);       
        }
                   printf("\n");
        int main(void)
        {
                int R,k,n,p    ;
                n = 100 , p=5;
                for(k = 0 ; k<n ; k++)R = k + 100;
                show(R,n);
                rol(R,n,p);
                printf("\n");
                show(R , n);
                printf("\n");
        }
}

898822345 发表于 2019-10-10 22:01:36

我看着打的一边打一边改。不过还是报错{:10_285:}

刘晨1108 发表于 2019-10-11 14:23:12

898822345 发表于 2019-10-10 21:59
为什么我K的赋值会报错的。

#include <stdio.h>
long longa;
long longn,p;

intmain(intargc, char const *argv[])
{
scanf("%d%d",&p,&n);
long long i=0;
for(i=0;i<n;i++)
{
    scanf("%lld",&a);
}
p%=n;
//printf("%d\n",p);
for(i=p;i<n;i++)
   {
    printf("%lld ",a);
   }
for(long longi=0;i<p;i++)
   {
    printf("%lld%llc",a,i==p-1?'\n':' ');
   }
return 0;
}
我自己搞的,可以借鉴一下

898822345 发表于 2019-10-12 21:58:06

刘晨1108 发表于 2019-10-11 14:23
#include
long longa;
long longn,p;


谢谢,兄弟
页: [1]
查看完整版本: C语言,