c
1#include <stdio.h> 2 3void move_array(int *s, int *d, int n ); 4void show_array( int *x, int n ); 5 6int main(void) 7{ 8 int n = 0; 9 int a[6]; 10 a[0] = 3; 11 a[1] = 5; 12 a[2] = 7; 13 a[3] = 9; 14 a[4] = 11; 15 a[5] = 13; 16 17 int b[6]; 18 19 b[0] = 0; 20 b[1] = 0; 21 b[2] = 0; 22 b[3] = 0; 23 b[4] = 0; 24 b[5] = 0; 25 26 move_array(&a[6], &b[6], 6); 27 show_array(&a[6], n); 28 29 return 0; 30} 31 32void move_array(int *s, int *d, int n ) 33{ 34 *s = *d; 35 return; 36} 37 38 39void show_array( int *x, int n ) 40{ 41 printf("A:"); 42 for (int i = 0; i < n; i++) 43 { 44 printf("%d",*x); 45 } 46 putchar('\n'); 47 48 printf("B:"); 49 for (int i = 0; i < n; i++) 50 { 51 printf("%d",n); 52 } 53 putchar('\n'); 54 55}
やりたい事
main関数の二つの配列をmobe_arrayに渡し、関数内で入れ替えたのを今度はshow_arrayに渡してshow_array内で入れ替えた配列を表示させたい。
変更点
c
1void move_array(int *s, int *d, int n ) 2{ 3 int tmp = 0; 4 for (int i=0; i < n; i++) 5 { 6 tmp = *s; 7 *s = *d; 8 *d = tmp; 9 } 10 11 return; 12}
c
1void show_array( int *x, int n ) 2{ 3 printf("A:"); 4 printf("B:"); 5 for (int i = 0; i < n; i++) 6 { 7 printf("%d",x[i]); 8 } 9 10}
c
1#include <stdio.h> 2 3void move_array(int *s, int *d, int n ); 4void show_array( int *x, int n ); 5 6int main(void) 7{ 8 int a[6]; 9 a[0] = 3; 10 a[1] = 5; 11 a[2] = 7; 12 a[3] = 9; 13 a[4] = 11; 14 a[5] = 13; 15 16 int b[6]; 17 18 b[0] = 0; 19 b[1] = 0; 20 b[2] = 0; 21 b[3] = 0; 22 b[4] = 0; 23 b[5] = 0; 24 25 26 move_array(&a[6],&b[6], 6); 27 show_array(a, 6); 28 show_array(b, 6); 29 30 return 0; 31} 32 33void move_array(int *s, int *d, int n ) 34{ 35 int tmp = 0; 36 for (int i=0; i < n; i++) 37 { 38 tmp = s[i]; 39 s[i] = d[i]; 40 s[i] = tmp; 41 } 42 return; 43} 44 45 46void show_array( int *x, int n ) 47{ 48 printf("A:"); 49 printf("B:"); 50 for (int i = 0; i < n; i++) 51 { 52 printf("%d",x[i]); 53 } 54 55}
変更した現段階のコードを質問に追記すると何が問題か判断しやすいです。追記するときは元のコードを書き換えてしまうのではなく、「## 追記 (2018-05-24 11:30)」のように一区切り入れて追加していくと後で見直した時にどんな修正をしたのかわかりやすいですよ。
回答1件
あなたの回答
tips
プレビュー