广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2761 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
风云人物 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x6 鲜花 x57
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
文章表情[C/C++] 斜矩阵,请问有高手可以给我方向吗??
今天老师出了一个课堂练习题,但是我解不出来!!希望有高手可以给我方向,提供我一点头绪!!
题目是请使用者输入一整数n,
假如n=2,列出一2*2矩阵

1 3
2 4

假如n=3,列出一3*3矩阵

1 3 6 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



叶的离去,是风的追求?还是树的不挽留?
献花 x0 回到顶端 [楼 主] From:台湾教育部 | Posted:2005-11-23 21:58 |
心无定所 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x6
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

矩阵...你是高中生吗?? 我记得没错的话...学测是不会考矩阵的...


献花 x0 回到顶端 [1 楼] From:台湾中华电信 | Posted:2005-11-23 22:14 |
风云人物 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x6 鲜花 x57
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

楼上的大大你在搞笑吗??
学测考C语言吗= =??


叶的离去,是风的追求?还是树的不挽留?
献花 x0 回到顶端 [2 楼] From:台湾教育部 | Posted:2005-11-23 22:25 |
youchun
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x26
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

第一题由左下往右上递增, 我现在不知道有何较好的方法

第二题可以采用两层回圈并由奇偶数列来区分
复制程式
for(i = 0; i < n; i++) {
  if(i % 2 == 0) { // 递增
    for( j = (i * n); j < (i+1) * n; j++ ) {
      printf("%d\t", j);
    }
  } else { // 递减
    for( j = ( i+1) * n; j > (i * n); j-- ) {
      printf("%d\t", j);
    }
  }
  printf("\n");
}

--
应该还有更好的方式


献花 x0 回到顶端 [3 楼] From:台湾中华电信 | Posted:2005-11-24 17:50 |
rakish
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

复制程式
main()
{
  int c=0,r=0,count=1;
  int i=0,j=0,n=5;
  int a[9][9];

  for(i=0;i<n;i++){
    for(j=0;j<=i;j++){
      a[c][r]=count;
      a[n-1-c][n-1-r]=n*n-count+1;
      if(c-1<0){c=i+1;r=0;}else{c--;r++;}
      count++;
    }
  }
}

n=4 说明
i j
0 0   [0,0]=1, [3,3]=16

1 0   [1,0]=2 ,[2,3]=15
1 1   [0,1]=3 ,[3,2]=14

2 0   [2,0]=4 ,[1,3]=13
2 1   [1,1]=5 ,[2,2]=12
2 2   [0,2]=6 ,[3,1]=11

3 0   [3,0]=7 ,[0,3]=10
3 1   [2,1]=8 ,[1,2]=9
3 2   [1,2]=9 ,[2,1]=8
3 3   [0,3]=10,[3,0]=7

好久没写C搂...现在都用什么compiler阿??

相同的方法..第二题用一个回圈应该可以搞定
发现在Z整除n 的时候会转一次方向


[ 此文章被rakish在2005-11-24 21:16重新编辑 ]


人一但长大了
就发现世上的事不像想的那么好
你总是会一天天长大的
会看得越来越清楚
献花 x1 回到顶端 [4 楼] From:台湾 | Posted:2005-11-24 20:54 |
mmpo
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x5
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

复制程式
#include <stdio.h>
#include <stdlib.h>

int main(){
       int i1,i2,j1,j2,k;       
       int num=1,**n;
       
       printf("input a number :");
       scanf("%d",&k);
       n=(int**)malloc(sizeof(int*)*k);
       n[0]=(int*)malloc(sizeof(int)*k*k);
       for(i1=1;i1<k;i1++)
              n[i1]=n[0]+k*i1;
       
       for(i1=0,i2=0 ; (i1<k)&&(i2<k)  ; (i1==k-1)&&i2++,(i1!=k-1)&&i1++)       
              for(j1=i1,j2=i2; (j1>-1)&&(j2<k) ;j1--,j2++)
                     n[j1][j2]=num++;

       for(i1=0;i1<k;i1++){
              for(i2=0;i2<k;i2++)
                     printf("%5d",n[i1][i2]);
              printf("\n");
       }
        //system("pause");
        return 0;
}


复制程式
#include <stdio.h>
#include <stdlib.h>

int main(){
       int i,j,k,num=1;
       int **n;
       
       printf("input a number :");
       scanf("%d",&k);
       n=(int**)malloc(sizeof(int*)*k);
       n[0]=(int*)malloc(sizeof(int)*k*k);
       for(i=1;i<k;i++)
              n[i]=n[0]+k*i;
       
       for(i=0;i<k;i++)
              for( (i+1)%2&&(j=0) , (i+1)%2==0&&(j=k-1)   ; j<k&&j>-1 ;      (i+1)%2&&(j++),(i+1)%2==0&&(j--))
                     n[i][j]=num++;
       
       for(i=0;i<k;i++){
              for(j=0;j<k;j++)
                     printf("%3d",n[i][j]);
              printf("\n");
       }
  //system("pause");
}







献花 x1 回到顶端 [5 楼] From:台湾中华电信 | Posted:2005-11-26 10:18 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.050699 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言