首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

送分啦,回答一个C有关问题

2012-09-17 
送分啦,回答一个C问题C/C++ code#include stdafx.hvoid main(){void chnum(int a[3][3])int a[3][3],m,

送分啦,回答一个C问题

C/C++ code
#include <stdafx.h>void main(){    void chnum(int a[3][3]);    int a[3][3],m,n;    for(m=0;m<3;m++)    {        for(n=0;n<3;n++)        {            scanf("%d",&a[m][n]);        }    }    printf("该数组成员依次为:\n");    for(m=0;m<3;m++)    {        for(n=0;n<3;n++)        {            printf("a[%d][%d]=%d,",m,n,a[m][n]);        }    }    printf("\b。\n");    printf("调整后的数组成员依次为:\n");    chnum(a);}void chnum(int a[3][3]){    int m,n,t;    for(m=0;m<3;m++)    {        for(n=0;n<3;n++)        {            t=a[m][n];            a[m][n]=a[n][m];            a[n][m]=t;        }    }    for(m=0;m<3;m++)    {        for(n=0;n<3;n++)        {            printf("a[%d][%d]=%d,",m,n,a[m][n]);        }    }    printf("\b。\n");}


这个是关于3*3数组行和列互换位置的函数(即原先的行变成对应的列),可是我测试的时候,发现行和列上的数据都没互换,难道是我的函数写错啦?可是,我检查发现应该也没问题的,不知道出在哪里了?
请大侠帮忙看看。

[解决办法]
不能传二维数组,只能传指针和一维数组,比如void chnum(int a[], int rows, int cols),然后a[m][n]可以用a[m * cols + n]来表达。
[解决办法]
最好
void chnum(int a[3][3])
-》
void chnum(int **a)

[解决办法]
楼主的错误是把 数组的值对调了两次最后还是原来的样子, 正如楼主说的要层层递缩。你那种方法就是只用户矩阵的对角线一半了,原来的两半都用,所以被交换了两次,所以还是原来的值。
[解决办法]
C/C++ code
#include <stdio.h>void check_sum(int a[3][3]){    int i,j,t;    for(i = 0;i < 3;i++){        for(j = 0;j < 3;j++){            if(i >j)            {            t = a[i][j] ;            a[i][j] = a[j][i];            a[j][i] = t;            }        }    }}int main(void){    int a[3][3] = {0};    char i,j;    puts("Please Input Your Number:");    for(i = 0;i < 3;i++){        for(j = 0;j < 3;j++){            scanf("%d",&a[i][j]);        }    }            for(i = 0;i < 3;i++){        for(j = 0;j < 3;j++){            printf("%d ",a[i][j]);            if(j==2)puts(" ");        }    }    check_sum(a);    for(i = 0;i < 3;i++){        for(j = 0;j < 3;j++){            printf("%d ",a[i][j]);            if(j==2)puts(" ");        }    }    return 0;} 

热点排行
Bad Request.