| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 918 人关注过本帖
标题:for 循环语句
只看楼主 加入收藏
月下无痕4
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-1-27
结帖率:75%
收藏
已结贴  问题点数:18 回复次数:2 
for 循环语句
for 循环的疑惑
题目:
C语言有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

#include<stdio.h>
#include<stdlib.h>
#define N 5
#define M 3
void main()
{   
    void move(int a[N],int n,int m);
    int a[N],i;
    printf("enter %d ge zhengshu:\n",N);
    for(i=0;i<N;i++)
        scanf("%d",(a+i));
    move(a,N,M);
    for(i=0;i<N;i++)
        printf("%5d",a[i]);

}

void move(int a[],int n,int m)
{

      int temp;
      int *p,*a_end;
      a_end=a+n-1;
      temp=*(a_end);
      for(p=a_end;p<a;p--)  // 此处 p<a 单步调试上为何直接就跳过了 for循环
      {
          *(p)=*(p-1);
      }
      *a=temp;
      m--;
      if(m>0) move(a, n, m);


}
搜索更多相关主题的帖子: include C语言 
2016-02-05 17:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:9 
“此处 p<a 单步调试上为何直接就跳过了 for循环” --- 能问出这个问题的人,难道看不出应该改 p<a 为 p>a 呀?!

顺便说一句,如果是考试的话,给个60分无所谓;如果是平时作业的话,只能给0分。因为老师既然布置这道题,就是希望你能了解一下旋转算法,而不是用最烂的方法得到个答案,建议你参考一下C++中的std::rotate,看看她用的是哪些算法。
2016-02-06 08:40
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:9 
给个通用的代码你参考。
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define N 10
#define M 2

void main()
{
    int a[N]={0,1,2,3,4,5,6,7,8,9};
    int tmp[M];  //Array to store M numbers
    
    int i,j;
    for(i=N-M,j=0;i<N;i++,j++)
    {
        tmp[j]=a[i];
    }
    
    for(i=N-1;i>=M;i--)
    {
        a[i]=a[i-M];
    }
    
    for(i=0;i<M;i++)
    {
        a[i]=tmp[i];
    }
    
    for(i=0;i<N;i++)
    {
        printf("%d\b\b",a[i]);
    }
    printf("\n");
}

   唯实惟新 至诚致志
2016-02-06 13:02
快速回复:for 循环语句
数据加载中...
 
   



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

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