二次元配列の要素を別の配列へ入れて処理を行ったのち、もともとあった二次元配列の場所へ新しく処理を行った要素を入れたいのですが、あまり適切に処理することができず、困っております。
例えば、i[25][25]という配列に要素が入っており、その要素を新しく作成した二次元配列n[25][25]に昇順になるように入れて、処理を行った後に元の配列i[25][25]の要素があった場所へ処理を行った要素を入れたいというのが大まかですがやりたいと思っていることです。
処理を行う要素の座標を記憶しておきたいのですがうまく考えることができません。
抽象的な質問で申し訳無いのですが、詳しい方宜しければ回答お願い致します。
配列の要素の座標を記憶したい
Re: 配列の要素の座標を記憶したい
意味があんまり理解できてませんが・・こういうことでしょうかね・・・。
3行3列で、数字入力すると小さいもの順に配列に入っていると思います。何か参考になるといいのですが・・。
3行3列で、数字入力すると小さいもの順に配列に入っていると思います。何か参考になるといいのですが・・。
#include<stdio.h>
#define N 3
int main(void){
int a[N][N],n=0,i,j;
int b[N*N],temp;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
scanf("%d",&a[i][j]);
b[n]=a[i][j];
n++;
}
}
for(i=N*N;i>0;i--){
for(j=0;j<i-1;j++){
if(b[j]>b[j+1]){
temp=b[j]; b[j]=b[j+1]; b[j+1]=temp;
}
}
}
n=0;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
a[i][j]=b[n];
n++;
}
}
putchar('\n');
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("%d ",a[i][j]);
}
putchar('\n');
}
return 0;
}
Re: 配列の要素の座標を記憶したい
やりたいことがよくわからないですが、要素の座標を記憶したければ要素の座標を記憶すればいいのではないでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)