[問題] dev c++陣列運算的問題
老師出了一題二維矩陣的題目,小弟使用的方法是圖法煉鋼,
不知道有無其他方法可以解決這個題目,煩請大家幫忙,謝謝
題目說明如下:
有一浮點數的二維矩陣(3乘6),把每一列所有可能產生
1.00~2.00的值列出來。
小弟的idea是把所有可能列出來,如下並附上程式碼
先列出第一列所有可能產生介於1.00~2.00的組合
第二列第三列以此類推
(0,0)介於1.00~2.00
(0,0)+(0,1) 介於1.00~2.00
(0,0)+(0,1)+(0,2) 介於1.00~2.00
(0,0)+(0,1)+(0,2)+ (0,3) 介於1.00~2.00
(0,0)+(0,1)+(0,2)+ (0,3)+(0,4) 介於1.00~2.00
(0,0)+(0,1)+(0,2)+ (0,3)+(0,4)+(0,5) 介於1.00~2.00
(0,1)介於1.00~2.00
(0,1)+(0,2) 介於1.00~2.00
(0,1)+(0,2)+(0,3) 介於1.00~2.00
(0,1)+(0,2)+(0,3)+ (0,4) 介於1.00~2.00
(0,1)+(0,2)+(0,3)+ (0,4)+(0,5) 介於1.00~2.00
(0,2)介於1.00~2.00
(0,2)+(0,3) 介於1.00~2.00
(0,2)+(0,3)+(0,4) 介於1.00~2.00
(0,2)+(0,3)+(0,4)+ (0,5) 介於1.00~2.00
(0,3)介於1.00~2.00
(0,3)+(0,4) 介於1.00~2.00
(0,3)+(0,4)+(0,5) 介於1.00~2.00
(0,4)介於1.00~2.00
(0,4)+(0,5) 介於1.00~2.00
(0,5) 介於1.00~2.00
程式碼:
#include<stdio.h>
#include<stdlib.h>
#define row 3
#define col 6
int main(void)
{
int i=0,j=0;
float a[row][col]={{0.25,0.50,0.80,1.00,1.125,0.875},
{0.3333,0.1667,0.4167,0.70,0.7833,0.6667},
{0.375,0.4375,0.1875,0.125,0.25,0.3125}};
/*第一列所有可能*/
/*以(0,0)為基準*/
printf("第一列選到的結果為:\n");
for(i=0;i<1;i++)
{
for(j=0;j<1;j++)
{
if((a[i][j]>=1.00)&&(a[i][j]<2.00))
printf("第%d個\n",j);
else if((a[i][j]+a[i][j+1]>=1.00)&&(a[i][j]+a[i][j+1]<2.00))
printf("第%d,%d個\n",j,j+1);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]<2.00))
printf("第%d,%d,%d個\n",j,j+1,j+2);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]<2.00))
printf("第%d,%d,%d,%d個\n",j,j+1,j+2,j+3);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]+a[i][j+4]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]+a[i][j+4]<2.00))
printf("第%d,%d,%d,%d,%d個\n",j,j+1,j+2,j+3,j+4);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]+a[i][j+4]+a[i][j+5]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]+a[i][j+4]+a[i][j+5]<2.00))
printf("第%d,%d,%d,%d,%d,%d個
\n",j,j+1,j+2,j+3,j+4,j+5);
}
}
/*以(0,1)為基準*/
for(i=0;i<1;i++)
{
for(j=1;j<2;j++)
{
if((a[i][j]>=1.00)&&(a[i][j]<2.00))
printf("第%d個\n",j);
else if((a[i][j]+a[i][j+1]>=1.00)&&(a[i][j]+a[i][j+1]<2.00))
printf("第%d,%d個\n",j,j+1);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]<2.00))
printf("第%d,%d,%d個\n",j,j+1,j+2);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]<2.00))
printf("第%d,%d,%d,%d個\n",j,j+1,j+2,j+3);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]+a[i][j+4]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]+a[i][j+4]<2.00))
printf("第%d,%d,%d,%d,%d個\n",j,j+1,j+2,j+3,j+4);
}
}
/*以(0,2)為基準*/
for(i=0;i<1;i++)
{
for(j=2;j<3;j++)
{
if((a[i][j]>=1.00)&&(a[i][j]<2.00))
printf("第%d個\n",j);
else if((a[i][j]+a[i][j+1]>=1.00)&&(a[i][j]+a[i][j+1]<2.00))
printf("第%d,%d個\n",j,j+1);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]<2.00))
printf("第%d,%d,%d個\n",j,j+1,j+2);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]<2.00))
printf("第%d,%d,%d,%d,%d個\n",j,j+1,j+2,j+3,j+4);
}
}
/*以(0,3)為基準*/
for(i=0;i<1;i++)
{
for(j=3;j<4;j++)
{
if((a[i][j]>=1.00)&&(a[i][j]<2.00))
printf("第%d個\n",j);
else if((a[i][j]+a[i][j+1]>=1.00)&&(a[i][j]+a[i][j+1]<2.00))
printf("第%d,%d個\n",j,j+1);
else
if((a[i][j]+a[i][j+1]+a[i][j+2]>=1.00)&&(a[i][j]+a[i][j+1]+a[i][j+2]<2.00))
printf("第%d,%d,%d個\n",j,j+1,j+2);
}
}
/*以(0,4)為基準*/
for(i=0;i<1;i++)
{
for(j=4;j<5;j++)
{
if((a[i][j]>=1.00)&&(a[i][j]<2.00))
printf("第%d個\n",j);
else if((a[i][j]+a[i][j+1]>=1.00)&&(a[i][j]+a[i][j+1]<2.00))
printf("第%d,%d個\n",j,j+1);
}
}
/*以(0,5)為基準*/
for(i=0;i<1;i++)
{
for(j=5;j<6;j++)
{
if((a[i][j]>=1.00)&&(a[i][j]<2.00))
printf("第%d個\n",j);
}
}
/*第二列所有可能*/
/*待續......*/
/*第三列所有可能*/
/*待續......*/
system("pause");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.146.55
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1398656600.A.79A.html
→
04/28 12:40, , 1F
04/28 12:40, 1F
→
04/28 13:30, , 2F
04/28 13:30, 2F
→
04/28 14:09, , 3F
04/28 14:09, 3F
→
04/28 14:10, , 4F
04/28 14:10, 4F
→
04/28 14:40, , 5F
04/28 14:40, 5F
→
04/28 14:48, , 6F
04/28 14:48, 6F
→
04/28 14:50, , 7F
04/28 14:50, 7F
→
04/28 14:57, , 8F
04/28 14:57, 8F
→
04/28 15:30, , 9F
04/28 15:30, 9F
→
04/28 15:31, , 10F
04/28 15:31, 10F
→
04/28 15:33, , 11F
04/28 15:33, 11F
→
04/28 15:33, , 12F
04/28 15:33, 12F
→
04/28 15:34, , 13F
04/28 15:34, 13F
→
04/28 15:41, , 14F
04/28 15:41, 14F
→
04/28 15:43, , 15F
04/28 15:43, 15F
→
04/28 20:38, , 16F
04/28 20:38, 16F
→
04/28 22:03, , 17F
04/28 22:03, 17F
→
04/28 23:10, , 18F
04/28 23:10, 18F
→
04/29 00:37, , 19F
04/29 00:37, 19F
推
04/29 01:39, , 20F
04/29 01:39, 20F
推
04/29 15:01, , 21F
04/29 15:01, 21F
→
04/29 15:04, , 22F
04/29 15:04, 22F
→
04/29 15:05, , 23F
04/29 15:05, 23F
→
04/29 15:06, , 24F
04/29 15:06, 24F
→
04/30 05:29, , 25F
04/30 05:29, 25F
→
04/30 05:29, , 26F
04/30 05:29, 26F
→
04/30 05:30, , 27F
04/30 05:30, 27F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章