| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3577 人关注过本帖
标题:用调用函数的方法转换矩阵,,结果出不来,求指教。、。。
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 7楼 C初见
当时有点发懵,,现在改了 那还不行,。
2017-03-05 09:50
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 5楼 九转星河
还是输不出来。。。 为什么要改成j=i+1???
2017-03-05 09:52
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 6楼 云团
你的这个也数不出来,,,我刚试了。。
void fun(int (*a)[N]) 你问什么定义成不需要返回值的函数,,(*a)[N])这一点是什么意思??
 { int i,j,t;
  for(i=0;i<N/2;i++)
   for(j=i;j<N;j++)    还有这一点。。。
2017-03-05 09:58
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
#include<stdio.h>
#define n 3
int main()
{
    int i,j;
    int a[n][n];
    void matrix(int a[3][3]);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    }
    printf("\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%3d",a[i][j]);
            
         printf("\n");
    }
    matrix(a);
    printf("转换后的矩阵为:\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%3d",a[i][j]);
            
        printf("\n");
    }
    return 0;
}
void matrix(int a[3][3])                      //还有为什么要不需要返回值的函数???用int为什么不可以??
{
    int i,j,t;
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
               {
                   t=a[i][j]; //为什么要这一步。
                   a[i][j]=a[j][i];                   //只要中间这个为什么输不出来。。???
                   t=a[j][i];//还有这个。
            }
    }
}
              

  



[此贴子已经被作者于2017-3-5 10:38编辑过]

2017-03-05 10:08
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
t=a[j][i];//还有这个。-----a[j][i]=t;

图片附件: 游客没有浏览图片的权限,请 登录注册

~~~~~~~~~~~~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-05 10:42
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 15楼 九转星河
我的不对。、、、为什么要加这两个 ???还有为什么要用void函数,,这不是有返回值a[i][j]吗?
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-03-05 11:03
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:4 
程序代码:
#include <stdio.h>
#define N 10
void
fun( int ( *a )[ N ], int I );

int
main( void )
{
    int a[ N ][ N ];
    int i, j, k;

    for( i = 0, k = 0; N > i; i++ )
        for( j = 0; N > j; j++, k++ )
            a[ i ][ j ] = k;


    fun( a, N );

    for( i = 0; N > i; i++ )
    {
        for( j = 0; N > j; j++ )
            printf( "%2d ",a[ i ][ j ] );
        printf( "\n" );
    }
    return 0;
}


void
fun( int ( *a )[ N ], int I )
{
    int i, j;
    int temp;

    for( i = 0; I > i; i++ )
    {
        for( j = i + 1; N > j; j++ )
        {
            temp = a[ i ][ j ];
            a[ i ][ j ] = a[ j ][ i ];
            a[ j ][ i ] = temp;
        }
    }
}



[此贴子已经被作者于2017-3-5 15:54编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-03-05 12:38
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 17楼 renkejun1942
为什么必须要用viod函数。?
2017-03-05 12:47
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 18楼 花脸
又没有返回值,当然是void。

修改了一下,用3,4,5做了测试,应该没问题了。

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2017-3-5 12:50编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-03-05 12:49
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 19楼 renkejun1942
不需要返回数组的值吗??你看下我的为什么不对
#include<stdio.h>
#define n 3
int main()
{
    int i,j;
    int a[n][n];
    void matrix(int a[3][3]);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    }
    printf("\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%3d",a[i][j]);
            
         printf("\n");
    }
    matrix(a);
    printf("转换后的矩阵为:\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%3d",a[i][j]);
            
        printf("\n");
    }
    return 0;
}
void matrix(int a[3][3])      
{
    int i,j,t;
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
               {
                   t=a[i][j]; //为什么要这一步。
                   a[i][j]=a[j][i];                   //只要中间这个为什么输不出来。。???
                   t=a[j][i];//还有这个。
            }
    }
}
              
2017-03-05 12:53
快速回复:用调用函数的方法转换矩阵,,结果出不来,求指教。、。。
数据加载中...
 
   



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

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