当前位置: 代码迷 >> C语言 >> 哪位有空帮我做道题啊
  详细解决方案

哪位有空帮我做道题啊

热度:184   发布时间:2004-10-31 19:37:00.0
哪位有空帮我做道题啊

写一函数,使一个二维整形数组(3*3)转置,即行列互换

在主函数中输入和输出数组

[此贴子已经被作者于2004-10-31 19:48:32编辑过]

搜索更多相关的解决方案: 整形  

----------------解决方案--------------------------------------------------------

int m,n,i,j,y[3][3],x[3][3]; scanf("%d,%d",&a,&b); for (m=0,m<3,++m) {for(n=0,n<3,++n) scanf("%d",y[m][n]);} for(i=0,i<a,++i) {for(j=0,j<b,++j) x[i][j]=y[j][i]; }

好了差不多就这样了头尾自己加吧


----------------解决方案--------------------------------------------------------

gvtbs,写的程序先不说语法有错,在逻辑上也是错的先贴出我的:

#include <stdio.h>

void main() { int i,j,temp,x[3][3]; //input the array! for (i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&x[i][j]); } //change the x array! for(i=0;i<3-1;i++) { for(j=i+1;j<3;j++) { temp=x[i][j]; x[i][j]=x[j][i]; x[j][i]=temp; } }//end of change^ }


----------------解决方案--------------------------------------------------------

楼上的那种不错

我是想要这种格式的

fun()

{.......}

main()

{......

}

这种


----------------解决方案--------------------------------------------------------
太简单了!!我马上改
----------------解决方案--------------------------------------------------------
赫赫,有难度啊!!
----------------解决方案--------------------------------------------------------
main()
{
        int a[3][3],temp,i,j;
        for(i=0;i&lt;3;i++)
                for(j=0;j&lt;3;j++)
                {
                        printf("input a[%d][%d]",i,j);
                        scanf("%d",&amp;a[i][j]);
                }
        for(i=0;i&lt;3;i++)
                for(j=i+1;j&lt;3;j++)
                {
                        temp=a[i][j];
                        a[i][j]=a[j][i];
                        a[j][i]=temp;
                }
        for(i=0;i&lt;3;i++)
                for(j=0;j&lt;3;j++)
                        printf("%d",a[i][j]);
        getch();
}
----------------解决方案--------------------------------------------------------

惭愧啊!!没想到指针还挺深奥的有更好的方法!!发短信告诉我!!!

下面是我的程序:

#include <stdio.h> #include <stdlib.h>

//使用本函数请注意规范――x为一正二维整形数组的首元素的首地址!!n为纬数!! void fun(int * x,int n) { int i,j,temp; if(n<=0) exit(1); for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { temp=*((int *)x+i*n+j); *((int *)x+i*n+j)=*((int *)x+j*n+i); *((int *)x+j*n+i)=temp; } } }

void main() { int i,j,x[3][3]; //input the array! for (i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&x[i][j]); }

//change the x array! fun(&x[0][0],3); //printf the array!! for (i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d ",x[i][j]); printf("\n"); } }


----------------解决方案--------------------------------------------------------

[QUOTE]惭愧啊!!没想到指针还挺深奥的有更好的方法!!发短信告诉我!!![/QUOTE]

阁下果然行


----------------解决方案--------------------------------------------------------

写一个函数又不是什么有必要写那么多吗??晕啊

只要明白就行


----------------解决方案--------------------------------------------------------
  相关解决方案