Ну по логике, наверное, достаточно одного взвешивания. Получаем при этом некоторую массу в граммах. Затем смотрим, сколько нам не хватает граммов до 40 грамм - это и будет количество фальшивых монет. Например: Получили 40 г. Значит все 4 монеты весят 10 г. Получили 39 г. Значит имеем три монеты по 10 г и одну 9 г. Т.е. одна фальшивая. Получили 38 г. Значит имеем 2 монеты по 10 г и две по 9 г. Т.е. две фальшивки. Получили 37 г. Значит одна 10 г и три по 9 г. Т.е. три фальшивки. Получили 36 г. значит имеем 4 монеты по 9 г, то есть все 4 фальшивые. Так вот как-то...
using namespace std;
int main() {
int mat[3][3];
int k;
int size=0;
int * arr=0;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
cin>>mat[i][j];
if (mat[i][j]>0){
arr=(int*)realloc(arr,sizeof(int)*(++size));
arr[size-1]=mat[i][j];
}
}
}
for(int i=0;i<size;i++){
cout<<arr[i];
}
delete arr;
cin.get();
cin.get();
return 0;
}
Например:
Получили 40 г. Значит все 4 монеты весят 10 г.
Получили 39 г. Значит имеем три монеты по 10 г и одну 9 г. Т.е. одна фальшивая.
Получили 38 г. Значит имеем 2 монеты по 10 г и две по 9 г. Т.е. две фальшивки.
Получили 37 г. Значит одна 10 г и три по 9 г. Т.е. три фальшивки.
Получили 36 г. значит имеем 4 монеты по 9 г, то есть все 4 фальшивые.
Так вот как-то...