Подсчет количества нулей в матрице - C (СИ)

  1. Не могу написать программу которая считает количество нулевых елементов в матрице. Мне сказали что её можно написать за 5 минут, у меня невыходит!C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include <stdio.h> #include <conio.h> main() { int s[3][3]; int i,j,o,a,b,c; o=0;a=0;b=0;c=0; printf("Vvedite matricu 3x3\n"); for(i=0;i<=2;i=i+1){   for(j=0;j<=2;j=j+1){                       scanf("%d", &s);                      }} for(i=0;i<=2;i=i+1){  for(j=0;j<=2;j=j+1){                      if(s[i][j]==0){o=o+1;}                      }}                      printf("Vsego v matrice nulei: %d\n", o); for(i=0;i<=0;i++){  for(j=0;j<=2;j=j+1){                      if(s[i][j]==0){a=a+1;}                      }}                      printf("V pervoy stroke nulei: %d\n", a); for(i=1;i<=1;i++){  for(j=0;j<=2;j=j+1){                      if(s[i][j]==0){b=b+1;}                      }}                      printf("V vtoroy stroke nulei: %d\n", b); for(i=2;i<=2;i++){  for(j=0;j<=2;j=j+1){                      if(s[i][j]==0){c=c+1;}                      }}                      printf("V tretey stroke nulei: %d\n", c);                      getch();//PAUSE                                             }


textual

Код:

#include <stdio.h>
#include <conio.h>
 
int main()
{
    int s[3][3];
    int sum=0,o;
 
    printf("Введите матрицу 3x3\n");
 
    for(int i=0;i<=2;i++)
        for(int j=0;j<=2;j++)
            scanf("%d", &s[i][j]);
 
    for(int i=0; i<=2; i++)
    {
        o=0;
        for(int j=0; j<=2; j++)
            if(s[i][j] == 0)
            {
                o++;
                sum++;
            }
        printf("\nстрока # %d нулей = %d",i+1,o);
    }
 
    printf("\nВсего нулей в матрице : %d\n", sum);
    getch();
    return 0;
}


Похожие ответы
  1. Всем привет. Нужно создать диаграмму количества слов в предложениях на си. Пользователь вводит несколько предложений, а программа потом выводит диаграмму количества слов в предложениях. Помогите, пожалуйста, понять, как решить эту задачу? Не могу разобраться, как вывести на экран несколько разных по высоте столбиков подряд. Нашёл вот такую прогу, которая решает задачу, но не могу понять как всё-таки она выводит символы, чтобы получалась вертикальная диаграмма?C++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 #include #include #include   #define IN 1 #define OUT 0   int main() {     setlocale(LC_ALL, "rus");       int kod = 1;     int i, k, c, nw, state;     int diagramma[20], np, maxw;           do {         state = OUT;     nw = 0; // кол-во слов     np = 0; // кол-во предл.     maxw = 0; // максимальное кол-во слов       for (i = 0; i<20; i++)         diagramma[i] = 0;         printf("Напишите предложения, обязательно оканчивающиеся на знаки: '.' '!' '?' (Окончите комбинацией клавиш Ctrl+Z)\n");           while ((c = getchar()) != EOF)         {             if (c == '.' || c == '...' || c == '!' || c == '?')                 np++;             if (c == ' ' || c == '\n' || c == '\t')             {                 state = OUT;             }             else if (state == OUT)             {                 state = IN;                 diagramma[np]++;                 if (diagramma[np] > maxw)                     maxw = diagramma[np];                 nw++; // слова             }         }         if (np == 0) np = 1;         i = 0;         printf("\nДиаграмма количества слов в предложениях:\n");         for (i = maxw; i>0; i--) // строки         {             for (k = 0; k <= np; k++) // колво предложений             {                 if (diagramma[k] == i)                 {                     printf(" *", diagramma[k]);                     diagramma[k]--;                 }                 else { printf("  "); }             }             printf("\n");         }         printf("Хочешь еще? 0 - да, 1 - нет \n");         scanf("%d", &kod);     } while (kod == 0);       return 0; }В этой проге не понимаю, например, что такое state, что такое diagramma и ещё кое-что. Объясните, пожалуйста, кому не сложно. Спасибо.

  1. Всем привет. Необходимо подсчитать количество символов в словах введенной строки. И все бы хорошо, но вот условия для циклов получаются ооочень длинными, целый день голову ломаю не могу понять как этого избежать. PS В условиях задачи написано, что из функций для работы со строками можно использовать только strlen().C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include #include int main () {     int i=0, j=0, x=0;     char str[1000]={NULL};     int val_letter[1000];     gets (str);     while (str[i]!=NULL)     {         while(((str[i]>64 && str[i]<91)||(str[i]>96 && str[i]<123))) /* И это только английские буквы =) */         {             x=x+1;             i++;         }         if ( str[i-1]!=str[-1] && ((str[i-1]>64 && str[i-1]<91)||(str[i-1]>96 && str[i-1]<123))) /* А дальше еще страшнее)*/         {             val_letter[j]=x;             x=0;             j++;             }             i++;     }     for (i=0;i

  1. помогите разобраться с этим заданием. Нужно дополнить код функциями, чтобы выполнялась задача: определение количества заданного символа в заданной строкеC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 #include #include   int how_many(char ch, char sentence[]) {     int count = 0;     int position;       // **********************************************************************             // **********************************************************************       return count; }     void clean_up(char ch) {     while (ch != EOF && ch != '\n')         ch = getchar(); }     int main() {     char ch;     char sentence[1024];       do {                 printf("Enter a character: ");                   ch = getchar();             clean_up(ch);                   if (ch < ' ' || ch > '~') {             printf("That was not a legal character. Try again.\n");         }         } while (ch < ' ' || ch > '~');           printf("Enter a sentence: ");           fgets(sentence, 1024, stdin);           printf("The character '%c' is in the sentence %d times.\n", ch, how_many(ch, sentence));       return 0; }

  1. Здравствуйте. Необходимо подсчитать в произвольной строке слова-числа, т.е., например, строка: qwer1234 asdf 345 ds123sda 12 123dsfs Получаем: 345 12 стаж месяц). вот что у меня получилось. Спасибо.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #include #include #include #include   int main() {     char x[100];     int k;       printf("Vvedite stroku: ");     fflush(stdin);     gets(x);       if(x[0]==' ')         k=0;     else         k=1;       for(int i=0; x[i]!='\0'; i++)     {         if(x[i]==' ' && x[i+1]!=' ' && x[i+1]!='\0')             k++;        }     printf("\n\nKolichestvo slov: %d\n", k);          int k1=0;             for(int i=0; x[i]!='\0'; i++)     {         if((x[i]>='0' && x[i]<='9') || (x[i]>='a' && x[i]<='z') || (x[i]>='A' && x[i]<='Z'))         k1++;     }       printf("\n\nKolichestvo bukv i cifr: %d\n", k1);           getch();     return 0; }Добавлено через 9 минут забыл добавить. нельзя использовать функцию isdigit Спасибо.

  1. Сделал код с помощью которого можно зеркально отразить введенное слово. Надо подсчитать количество букв которое остаётся на своих местах при отражении слова. Помогите, кто в силах C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include   int main (void) {    int i=0,dlinna=0;      char vvod[255];    printf("Input word: \n");    gets(vvod);     while (vvod[i]!=0){          dlinna=dlinna+1;          i++;     }     printf("Lenght is=%i \n",dlinna);     printf("Inverted word is: \n");         for(i=dlinna-1;i>=0;i--)       {          printf("%c",vvod[i]);       }         return 0; }

  1. Добрый день всем! Прошу помощи - не могу найти ошибку в коде, неправильно считает сумму элементов после минимального по модулю элемента. Спасибо откликнувшимся заранее. Условие задания: В одномерном массиве, состоящем из n вводимых с клавиатуры элементов, вычислить Сумму модулей элементов массива, расположенных после минимального по модулю элемента; Код С:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include #include #include #include #include #include   void mf(double*, int); void main() {     setlocale(LC_CTYPE, "Russian");     double *A;     int i, An;     system("cls");     fflush(stdin);     printf("Введите размер массива А:\n");     scanf_s("%d", &An);     A = new double[An];     if (A == NULL) {         printf("Предел размерности");         exit(0);     }     for (i = 0; i < An; i++)     {         printf("\n Введите значения массива А [%d]=", i);         scanf_s("%lf", A + i);     }     mf(A, An);     delete[]A;     _getch(); } void mf(double *A1, int An1) {     double  sum = 0;     int i1, min;     for (i1 = 0; i1 < An1; i1++)     {         printf("A[%d]=%.2lf;\n", i1, *(A1 + i1));         min = fabs(double (i1));         if (fabs (*(A1 + i1)) < min);         min = i1;     }     for (i1 = min; i1 < An1; i1++);     {         sum += fabs(*(A1 + i1));                 printf("\n Rezult=%4d", sum);             }     _getch();   }

  1. Доброго времени суток.Задача состоит в том , чтобы подсчитать сумму чисел в строке, слова в которой могут состоять только из цифр или букв.Моя проблема состоит в том, что я не могу понять как сказать компилятору не считывать каждый символ в строке. Для лучшего пояснения что мне нужно, прибегну к математике, если я введу asd 55 posd 41, в коде ниже sum = 18, мне нужно чтобы sum = 96C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 include #include #include #include void main() {     setlocale(LC_ALL, "Rus");     int i;     int sum = 0;     char *str;     str = (char *)malloc(10);       printf("Введите строку:");       gets(str);        for (i = 0;str[i] != 0; i++)     {         if (str[i] >= '0' && str[i] <= '9' )         {             sum += str[i] - '0';         }     }     printf("sum=%d\n", sum);       return 0; }

  1. нужно написать программу которая открывает файл в текстовом режиме считывает числа и вивлдить количество чисел меньших среднее арифметическое. я вроде код написал но выбивает ошибку if statement missing ) через не могу программу запустить вообщеC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include #include void function() {   int i, sum = 0, mas[5], kil=0;     float sera;       for (i = 0; i <= 4; i++)    {     scanf ("%d", &mas[i]);     sum += mas[i];     }     sera=sum/5;       for(i=0; i<4;i++) {     if (mas[i] < sera)  kil++;        }      printf("%d", kil);       return ;     } int main() {   FILE *f;   if ( f = fopen("LAB922.txt", "r")! = NULL)  { function(); }        else printf("Nevdalos vidkryty");   fclose(f);     return 0; }

  1. Прошу натолкнуть на мысль как решить данную задачу: "Дана строка. Необходимо определить количество слов, которые слева и справа читаются одинаково (палиндромы). Слова разделены пробелами." Из условий для сдачи: доп. массивы - нельзя, функции из - нельзя. В моём представлении, нужно как-то разбить на лексемы без strtok и далее в лексемах сравнить символы с кодами ASCII? И можно ли, когда строку с помощью strtok разбил на лексемы и внёс их в массив указателей, далее каждый указатель на строку(полученную лексему) внести в новый массив, чтоб в массиве строка была посимвольно сохранена? Пример: была строка "Скоро сдача работы" -> далее стал массив из 4 указателей -> затем первый указатель, ктр косвенно адресует строку "Скоро", как-то внести в новый массив посимвольно. Заранее спасибо. 1 курс заочки, могу изъясняться как колхоз, т.к. до этого программирование ассоциировалось с тетрисом.

  1. Написать программу, которая запрашивает у пользователя текст, а затем подсчитывает в нем сумму количества букв и количества гласных букв.операции подсчета количества чего-либо в строке должны быть реализованы в виде отдельных функций.