Нужно исправить ошибку в программе - C (СИ)
Формулировка задачи:
Дана матрица А(M,N). Если среди элементов матрицы есть хотя бы одно простое число, отсортировать элементы ее строк по возрастанию значений.
Выдает вот эту ошибку:
2.c:15: warning: assignment makes integer from pointer without a cast
2.c:16: lvalue expected
>Exit code: 1
#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; }
Решение задачи: «Нужно исправить ошибку в программе»
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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д