Кто-то может объяснять мне, что является тем, что это делает в векторе?

Вам оставила проблема, что я это сделал, но не понимаю

счетчик [ты замечаешь [i]] ++;

Реализовывать программу, где мы просим последовательность замечаний (целые числа между 0 и 10). Последовательность заканчивается, когда вмешивается число меньшее, чем 0 или превышающий 10, или если мы ввели 30 замечаний. Программа должна получать список частот (число повторений) каждого из замечаний.

И это решение, которое я применил. Функционируй, но я хочу знать, какую функцию он делает, он командует ее, что я поместил наверху...

#include <stdio.h>

#include <stdlib.h>
#define MAX 10
#define CONT 11

int main()
{
 int notas[MAX],auxiliar,i=0,numero_notas = 1, contador[CONT],j;

 printf("Introduce la nota: ");
 scanf("%i", &auxiliar);

 while (auxiliar >= 0 && auxiliar <= 10 && i < MAX)
 {
  notas[i]= auxiliar;
  i++;

  printf("Introduce la nota : ");
  scanf("%i", &auxiliar);


 }
 numero_notas = i;


 for ( i = 0 ; i < CONT ; i++)
 {
  contador[i]=0;
 }  

 for ( i = 0; i < numero_notas; i++)
 {
    **contador[notas[i]]++;**
 }

 for ( i = 0 ; i < MAX ; i++)
 {
  printf("El numero %i esta %i veces\n",i,contador[i]);
 }


}
0
задан 27.03.2016, 06:29
2 ответа

Главным образом переменная "счетчик" - array, в который ты соглашаешься на Ваши положения посредством другого array имени, ты "замечаешь"

В каждое положение счетного array складываешь один, это - то, что делает "++"


, то, что он не умел бы говорить тебе, потому что ты используешь array, чтобы определять picisines другого, вместо того, чтобы использовать двухмерный array

C ++ Мульти-пространственный Arrays

En donde, определять ось для счетчика и другого для замечаний.

1
ответ дан 24.11.2019, 14:41

То, что ты делаешь, является использованием техники, чтобы иметь несколько счетчиков в то же время. Представь, что у тебя есть так называемая договоренность notas, размера N и они просят у тебя показывать, сколько замечаний в договоренности равны 10. Тогда, чтобы добиваться задания, ты определяешь переменную, которая будет счетчиком, ты это инициализируешь со стоимостью 0 и потом пробегаешь договоренность так что, если у какого-то замечания есть стоимость 10, ты добавляешь 1 к счетчику. Это представляется со следующим кодом:

//definir un contador e inicializarlo con valor 0
int contador = 0;
int notaAContar = 10;
//recorrer el arreglo notas
for (int i = 0; i < N; i++) {
    //si la nota es igual a la nota a contar
    //entonces se agrega 1 al contador
    if (notas[i] == notaAContar) {
        contador++;
    }
}
printf("Total de notas con valor %d: %d\n", notaAContar, contador);

Сейчас, что упражнение просит у тебя, состоит в том, чтобы получать список частот (число повторений) каждого из замечаний. А именно, что ты должен рассказывать, сколько раз существует каждое замечание в договоренности. В этом случае, у замечаний только может быть стоимость между 1 и 10, из-за которого ты потребовал бы 10 переменных, которые действовали бы как счетчики. Вместо этого, что ты реализуешь, состоит в том, чтобы создавать договоренность, где каждая будка будет счетчиком каждого замечания. Твоя так называемая договоренность счетчиков contador нуждайся достаточно в месте для всех замечаний, и как договоренности начинают в индексе 0, что ты делаешь, состоит в том, чтобы определять размер этой договоренности как замечания, что ты нуждаешься в том, чтобы считать + 1. Потом, ты инициализируешь стоимость договоренности в 0, и в конце концов ты начинаешь считать. Часть подсчета определена в линии, которую ты консультируешь:

//recorrer el arreglo de notas
for ( i = 0; i < numero_notas; i++) {
    //como en este caso estamos contando TODAS las notas
    //no se necesita un if por cada nota
    //en su lugar se accede a la posición del contador
    //y se agrega 1
    contador[notas[i]]++;
}

Линии наверху могут писаться этого другого способа:

for ( i = 0; i < numero_notas; i++) {
    //el valor de notas[i] siempre va a ir entre 1 y 10
    //y lo podemos colocar en una variable llamada nota
    int nota = notas[i];
    //como nota va entre 1 y 10 y estos son indices validos
    //para el arreglo, solo accedemos a esa posición del arreglo
    //y agregamos 1 en el contador
    contador[nota]++;
}
1
ответ дан 24.11.2019, 14:41

Счетная договоренность обладает возможной стоимостью замечаний 0 в 10, оба включая.

В чем дело?

Ввиду того, что, каждое положение счетчика совпадает со стоимостью замечания:

Псевдокод:

Si hacemos contador[5]++; estaremos contando la nota 5
Si hacemos contador[9]++; estaremos contando la nota 9
Si hacemos contador[X]++; estaremos contando la nota X

Для такого случая, если мы делаем:

contador[ nota[i] ]++; estaremos contando la nota "nota[i]" según lo que valga.

Тогда чтобы облагать налогом все замечания, просто мы делаем цикл, который пробегал бы замечания как в коде, который ты выдвигаешь.

1
ответ дан 03.12.2019, 22:48