プログラミングC言語 至急!!

C言語関連21閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

0

その他の回答(2件)

0

(kaz********さん) 例: #include<stdio.h> void reverse(int a[],int b[],int n){ int i; for(i=0;i<n;i++){ b[n-1-i]=a[i]; } } int main(){ int a[20],b[20]; int i,n; printf("data of number(1~20) >"); scanf("%d",&n); if(n<1 ||n>20){ puts("Input error!!"); return 1; } for(i=0;i<n;i++){ printf("No.%d >",i+1); scanf("%d",&a[i]); } reverse(a,b,n); printf("a[]: "); for(i=0;i<n;i++){ printf("%d ",a[i]); } printf("\nb[]: "); for(i=0;i<n;i++){ printf("%d ",b[i]); } puts(""); return 0; } ~~~~~~~~~~~~~~~~~~~ data of number(1~20) >5 No.1 >1 No.2 >2 No.3 >3 No.4 >4 No.5 >5 a[]: 1 2 3 4 5 b[]: 5 4 3 2 1

0

配列要素数nの最大値が不明なので、 動的メモリ確保malloc使ってみました。 #include <stdio.h> #include <stdlib.h> void reverse(int a[],int b[],int n){ int i; for(i=0;i<n;i++){ b[i]=a[n-1-i]; } } int main(){ int *a,*b; int i,n; printf("n="); scanf("%d",&n); a=(int*)malloc(sizeof(int)*n); b=(int*)malloc(sizeof(int)*n); for(i=0;i<n;i++){ scanf("%d",a+i); } reverse(a,b,n); for(i=0;i<n;i++){ printf("%d ",*(b+i)); } return 0; }