Нужно исправить ошибку в программе - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д