Example input: 20 10 5 20 2 20 20 20 2 2 0
Output:
(20*5)
(10*1)
(5*1)
(2*3)
Я только начал программировать этот семестр и нуждался в помощи по проекту. Прошу прощения, если мой вопрос неясен.Целесообразные целые числа, использующие программирование на С
Так что в основном я должен вводить положительные целые числа до ввода «0», чтобы закончить программу. Мне не разрешено использовать массивы (что бы это ни значило).
#include <stdio.h>
int main()
{
int number, count=0
while(1)
{
scanf("%d",&number);
if (number!=0)
{
count++; continue;
}
else
{
printf("%d*%d",number,count);
break;
}
return 0;
}
Как хранить эти несколько номеров, так что я бы не перекрывать предыдущий номер и для увеличения числа повторяющихся на 1 каждый раз, когда он вошел? Я не могу попросить моего профессора о помощи; он просто говорит мне, чтобы он сделал это.
«Определенное инженерное устройство управляется с помощью ввода последовательных чисел (целых чисел). Если есть запуск одного и то же число, устройство может оптимизировать свою производительность. Таким образом, мы хотели бы организовать данные так, чтобы указать, что запуск идет. Напишите программу C, что читает последовательность чисел и печатает каждый пробег чисел в форме (n * m), где m - это число, повторяемое n раз. Обратите внимание, что запуск может состоять из всего лишь одного номера. Номера ввода заканчиваются нулем, что останавливает устройство ».
Почему вы не можете использовать массивы под вопросом? Вы хотите подсчитать частоту, которая может быть эффективно решена с помощью массивов. Для идеи вы можете проверить [этот пост] (http://stackoverflow.com/questions/11053607/count-how-many-times-an-element-occurs-in-an-array-java). –
Если он специально сказал, что вы не можете использовать массивы, вы можете использовать связанный список, но я думаю, что это противоречит духу задания. – IllusiveBrian
Извините, что он должен быть номером –