鱼C论坛

 找回密码
 立即注册
查看: 2940|回复: 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)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. void rol(int * R , const int n , const int p)
  3. {
  4.         int d , k , x                                            ;
  5.         for(d = 0 ; d < p ; d ++) {
  6.                 x = R[0]                                         ;
  7.                 for(k = 0 ; k < n - 1 ; k ++) R[k] = R[k + 1]    ;
  8.                 R[n - 1] = x                                     ;
  9.         }
  10. }

  11. void show(const int * R , const int n)
  12. {
  13.         int k                                    ;
  14.         for(k = 0 ; k < n ; k ++) {
  15.                 if(! (k % 10)) {
  16.                         if(k) printf("\n")       ;
  17.                         printf("\t")             ;
  18.                 } else {
  19.                         printf(" ")              ;
  20.                 }
  21.                 printf("%3d" , R[k])             ;
  22.         }
  23.         printf("\n")                             ;
  24. }

  25. int main(void)
  26. {
  27.         int R[100] , k , n , p                   ;
  28.         n = 100 , p = 5                          ;
  29.         for(k = 0 ; k < n ; k ++) R[k] = k + 100 ;
  30.         show(R , n)                              ;
  31.         rol(R , n , p)                           ;
  32.         printf("\n")                             ;
  33.         show(R , n)                              ;
  34.         printf("\n")                             ;
  35. }
复制代码

  1. C:\Bin>g++ -o x x.c

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

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


  23. C:\Bin>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-10 21:59:40 | 显示全部楼层
为什么我K的赋值会报错的。
小甲鱼最新课程 -> https://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");
        }
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-10 22:01:36 | 显示全部楼层
我看着打的一边打一边改。不过还是报错
小甲鱼最新课程 -> https://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;
}
我自己搞的,可以借鉴一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢,兄弟
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 12:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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