今天練了一下二維陣列
利用scanf將輸入的數值與自己相乘後,並將結果反著印出,最後一個輸入的數值第一個印出結果
.
.
.
.
.
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i,a,b,e;
int x[1][10];
printf("請任意輸入數值11~20");
while(i<1)
{
for(a=0;a<10;a++)
{
scanf("%d",&x[i][a]);
}
i++;
}
for(e=0;e<i;e++)
{
for(b=0;b<a;b++)
{
printf("%2d 乘 %2d 等於 ",x[e][b],x[e][b]);
printf("%3d\n",x[e][b]*x[e][b]);
}
}
}
這邊可以看到我將第一個索引值設成1是因為我們只有10筆資料,雖然可以直接用一維陣列將這題解決,但這是二維陣列練習我們就只要將索引值設為1即可。
利用scanf將輸入的數值存入第一索引值為0的陣列中,再利用scanf將數值存入第一索引值為1的陣列中,再將這兩個陣列相乘,將相乘後的值存入第一索引值為2的陣列中,並將結果印出。
.
.
.
.
.
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i,a,b;
int x[3][10];
for(i=0;i<2;i++)
{
printf("請任意輸入數值\n");
for(a=0;a<10;a++)
{
scanf("%d",&x[i][a]);
}
printf("\n");
}
for(b=0;b<a;b++)
{
x[2][b]=x[0][b]*x[1][b];
printf("%5d 乘 %5d 等於 %6d\n",x[0][b],x[1][b],x[2][b]);
}
}
與第二題前面敘述一樣利用scanf將值數入且存放到彼此的位置後。將第一索引值為0的第一個值與第一索引值為1的最後一個值相乘,將第一索引值為0的第二個值與第一索引值為1的倒數第二個值相乘,以此類推,並將結果印出。
.
.
.
.
.
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i,a,b,c,e=0;
int x[3][10];
for(i=0;i<2;i++)
{
printf("請任意輸入數值\n");
for(a=0;a<10;a++)
{
scanf("%d",&x[i][a]);
}
printf("\n");
}
for(b=10;b>0;b--)
{
x[2][e]=x[0][e]*x[1][b-1];
e++;
}
for(c=0;c<10;c++)
{
printf("%5d 乘 %5d 等於 %6d\n",x[0][c],x[1][a-1],x[2][c]);
a--;
}
}
接續第三題,將第三題的結果反著輸出,第一個相乘的最後一個印出。
#include <stdio.h>
#include <stdlib.h>
void main(void)//第3題
{
int i,a,b,c,e=0;
int x[3][10];
for(i=0;i<2;i++)
{
printf("請任意輸入數值\n");
for(a=0;a<3;a++)
{
scanf("%d",&x[i][a]);
}
printf("\n");
}
for(b=3;b>0;b--)
{
x[2][e]=x[0][e]*x[1][b-1];
e++;
}
for(c=3;c>0;c--)
{
printf("c=%d\n",c);
printf("%5d 乘 %5d 等於 %6d\n",x[0][c-1],x[1][a-3],x[2][c-1]);
a++;
}
}
這邊要特別注意,我們在第三題將第一索引值為1的最後一個值為第一個相乘,但我們這裡又再將結果反著輸出,也就是說這個陣列被我們轉了兩次。
Day13就到這啦BYE~