Нужно исправить ошибку в программе - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана матрица А(M,N). Если среди элементов матрицы есть хотя бы одно простое число, отсортировать элементы ее строк по возрастанию значений.
#include<stdio.h> 
int main() 
{int a[20][20],i,j,m,n,g,k,f; 
puts ("Введите n и m"); 
scanf ("%d%d",&n,&m); 
for (i=0;i<m;i++); 
for (j=0;j<n;j++); 
scanf ("%d",&a[i][j]); 
for (i=2; i<=(n/2); i++) 
if((n%i)==0)//простое число 
//тут надо просмотреть все числа 
for (i=0; i<n; i++) 
for(k=i+1; k<n; k++) 
if(a[i]>a[k]) 
{f=a[i]; 
a[i]=a[k]; //сортировка по возрастанию 
a[k]=f; 
}
Выдает вот эту ошибку: 2.c:15: warning: assignment makes integer from pointer without a cast 2.c:16: lvalue expected >Exit code: 1

Решение задачи: «Нужно исправить ошибку в программе»

textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
 
int main() {
 int a[20][20],i,j,n,m,k,f; 
 puts ("Введите n и m"); 
 scanf ("%d %d",&n,&m); 
 printf ("\nSource:");
 for (i=0;i<n;i++) {
  printf ("\n");
  for (j=0;j<m;j++) {
   a[i][j]=rand()%100; //scanf ("%d",&a[i][j]); 
   printf ("%d ",a[i][j]);
  }
 }
 int is=0;
 for (i=0;i<n;i++) 
 for (j=0;j<m;j++) 
 for (k=2;k<=floor(sqrt(0.+a[i][j]));k++) 
 if (a[i][j]%k==0) { is=1; break; }
 printf ("\nDestination:");
 if (is) for (i=0;i<n;i++) {
  printf ("\n");
  for (j=0;j<m-1;j++) 
  for (k=j+1;k<m;k++) 
  if (a[i][j]>a[i][k]) {
   f=a[i][j]; a[i][j]=a[i][k]; a[i][k]=f;
  }
  for (j=0;j<m;j++) printf ("%d ",a[i][j]);
 } 
 else printf (" no simple number!");
 fflush(stdin); getchar(); return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы