| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:如果是相应的行无素对调。该如何改?
只看楼主 加入收藏
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
结帖率:100%
收藏
 问题点数:0 回复次数:1 
如果是相应的行无素对调。该如何改?
/*程序定义了N*N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]
),函数的功能是:使数组第一列元素中的值与最后一列元素中的值对调、第二列元素的
值与倒数第二列中的值对调、……、其他依次类推。

注意:部分源程序给出如下。
请勿改动主函数main和其它函数中的任何去何内容,仅在函数fun的花括号中填入你编写
的若干语句。
试题程序。*/
# include <stdlib.h>
# include <stdio.h>
# include <time.h>
#define N 5
/* 本题的第一个for()循环用于控制行,而内嵌的for()用于在同一行中将列与列对调,
当i为0时a[m][i]为第m行的第一列元素,a[m][N-1-i]为第m行的最后一列的元素,正好
符合调换的要求。依次类推。*/
void fun(int a[][N])
{
    int i ,m,t;
    for(m=0; m<N; m++)
        for(i=0; i<N/2; i++)
        {
            t = a[m][i];
            a[m][i] = a[m][N-1-i];
            a[m][N-1-i] = t;
        }
}

main()
{
    int a[N][N],i,j;
    srand((unsigned)time(NULL));
    printf("***** The array *****\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            a[i][j] = rand()%30;
            printf("%4d",a[i][j]);
        }
      printf("\n");
    }
    fun(a);
    printf("***** The result *****\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
            printf("%4d",a[i][j]);
           printf("\n");
        
    }
   
    return 0;
}
如题。
搜索更多相关主题的帖子: 源程序 include fun 如何 
2011-07-29 22:53
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
void fun(int a[][N],int c,int r,int cool)
{
    if(cool >= c)
        return ;
    int i,j,k;
    for(i = 0;i<r;i++)
    {
        int temp = a[cool][i];
        a[cool][i] = a[c-1][i];
        a[c-1][i] = temp;
    }
    fun(a,c-1,r,cool+1);
}

main()
{
    int a[N][N],i,j;
    srand((unsigned)time(NULL));
    printf("***** The array *****\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            a[i][j] = rand()%30;
            printf("%4d",a[i][j]);
        }
      printf("\n");
    }
    fun(a,N,N,0);
    printf("***** The result *****\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
            printf("%4d",a[i][j]);
           printf("\n");
       
    }
   
    return 0;
}
递归交换

                                         
===========深入<----------------->浅出============
2011-07-30 09:28
快速回复:如果是相应的行无素对调。该如何改?
数据加载中...
 
   



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

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