Написал код, вроде правильный,но вылезли ошибки от которых я не могу избавиться даже смотря ответы на зарубежных форумах. Вставил код целиком. Пишу в Atom компилирую через gcc
Вот что выдает компилятор:
spoiler
C:\Users\Firetheestle\YandexDisk\ТТИТ\Labs>gcc Kimlaba7.c -o Kimlaba7.exe
Kimlaba7.c: В функции :
Kimlaba7.c:20:23: ошибка: invalid type argument of unary <*> (have )
printf("%2d \n",*(X+i*4+j));
^
Kimlaba7.c: В функции :
Kimlaba7.c:31:19: ошибка: invalid type argument of unary <*> (have )
int i=0,j=0,max=*(X+i*4+j),maxj=0;;
^
Kimlaba7.c:34:14: ошибка: invalid type argument of unary <*> (have )
if(max>*(X+i*4+j)){
^
Kimlaba7.c:35:13: ошибка: invalid type argument of unary <*> (have )
max=*(X+i*4+j);
^
Kimlaba7.c:39:5: ошибка: invalid type argument of unary <*> (have )
*(X+i*4+max)=0;
^
Kimlaba7.c: В функции :
Kimlaba7.c:45:8: предупреждение: при передаче аргумента 1 указатель преобразуется в целое без приведения типа
VVOD(A);
^
Kimlaba7.c:6:5: замечание: expected but argument is of type
int VVOD(int X){
^
Kimlaba7.c:46:9: предупреждение: при передаче аргумента 1 указатель преобразуется в целое без приведения типа
VIVOD(A);
^
Kimlaba7.c:15:5: замечание: expected but argument is of type
int VIVOD(int X){
^
Kimlaba7.c:47:15: предупреждение: при передаче аргумента 1 указатель преобразуется в целое без приведения типа
MAXANDOBMEN(A);
^
Kimlaba7.c:30:5: замечание: expected but argument is of type
int MAXANDOBMEN(int X){
Компилирую командой:
gcc Kimlaba7.c -o Kimlaba7.exe
А вот сам код:
/*
Дана матрица В(8,8). Заменить в каждой строке матрицы
максимальный элемент нулем.
*/
#include<stdio.h>
int VVOD(int X){
int i,j;
printf("Vvedite massive:\n");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
scanf("%d",X+i*4+j );
}
}
}
int VIVOD(int X){
int i,j,k=0;
printf("Vivod massiva \n");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("%2d \n",*(X+i*4+j));
k++;
if(k==4){
printf("\n");
k=0;
}
}
}
}
int MAXANDOBMEN(int X){
int i=0,j=0,max=*(X+i*4+j),maxj=0;;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(max>*(X+i*4+j)){
max=*(X+i*4+j);
maxj=j;
}
}
*(X+i*4+max)=0;
}
}
int main(){
int A[4][4];
VVOD(A);
VIVOD(A);
MAXANDOBMEN(A);
}
Помогите пожалуйста разобраться ;з
ПРОБЛЕМА РЕШЕНА ВОТ РАБОЧИЙ КОД:
/*
Дана матрица В(8,8). Заменить в каждой строке матрицы
максимальный элемент нулем.
*/
#include<stdio.h>
int VVOD(int* X){
int i,j;
printf("Vvedite massive:\n");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
scanf("%d", X+i*4+j );
}
}
}
int VIVOD(int* X){
int i,j,k = 0;
printf("Vivod massiva \n");
for(i=0; i < 4; i++){
for(j=0; j < 4; j++){
printf("%3d", *(X+i*4+j));
k++;
if(k == 4){
printf("\n");
k = 0;
}
}
}
}
int MAXANDOBMEN(int* X){
int i = 0, j = 0, k = 0,max = 0, maxj = 0;
for(i = 0; i < 4; i++){
max = *(X+i*4+j);
for(j = 0; j < 4; j++){
if(max < *(X+i*4+j)){
max = *(X+i*4+j);
maxj = j;
}
}
j=0;
*(X+i*4+maxj) = 0;
}
}
int main(){
int A[4][4];
VVOD(*A);
VIVOD(*A);
MAXANDOBMEN(*A);
VIVOD(*A);
}