C/C++
Как в языке си ввести с клавиатуры сначала количество чисел последовательности, а потом саму последовательность
Я пыталась через while и for , но у меня в последовательности всегда лишнее число появляется
Для этого динамические массивы есть. Пример с вводом массива чисел типа int длины n и выводом их квадратов в столбик:
#include
#include
#include
int main()
{
int i, n, *A;
long long a;
printf("n: ");
scanf("%d", &n);
A = (int*)malloc(n * sizeof(int));
for (i = 0; i < n; ++i) scanf("%d", &A[i]);
for (i = 0; i < n; ++i)
{
a = A[i];
a *= A[i];
printf("%lld\n", a);
}
free(A); getchar(); getchar(); return 0;
}
Есть ещё массивы изменяемой длины, но это нестандарт! Да, кстати, если элементы последовательности хранить не нужно (например, если они сразу обрабатываются), то и массив тогда не нужен. Вот пример с вычислением среднего арифметического последовательности n элементов типа double: #include
int main()
{
int i, n;
double a, s = 0.;
printf("n: ");
scanf("%d", &n);
for (i = 0; i < n; ++i)
{
printf(">> ");
scanf("%lf",&a);
s += a;
}
printf("Average: %f\n", s / n);
getchar(); getchar(); return 0;
}
Dima 64
Огромное Вам спасибо
>Я пыталась через while и for , но у меня в последовательности всегда лишнее число появляется
Ну так уменьши количество итераций на 1, в чем загвоздка-то?
Ну так уменьши количество итераций на 1, в чем загвоздка-то?
#include
#include
#include
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
void flush(void) {
while (getchar() != '\n') { ; }
}
int main(void) {
int* sequence = NULL;
size_t length = 0;
size_t i = 0;
int a = 10;
int b = 100;
printf("Length: ");
scanf("%zu", &length);
flush();
sequence = (int*)malloc(length * sizeof(int));
if (sequence == NULL) exit(0);
while (i < length) {
sequence[i] = RAND(a, b);
++i;
}
printf("Sequence:");
for (i = 0; i < length; ++i) {
printf("%3i", sequence[i]);
}
puts("");
free(sequence);
getchar();
return 0;
}
#include <stdio.h>
int main(){
int n; printf("n: "); scanf("%d",&n); int a[n];
printf("%d numbers: "); for(int i=0;i<n;i++)scanf("%d",&a[i]);
}
int main(){
int n; printf("n: "); scanf("%d",&n); int a[n];
printf("%d numbers: "); for(int i=0;i<n;i++)scanf("%d",&a[i]);
}
Похожие вопросы
- Как ввести строчный массив через scanf_s в языке Си
- Помогите добавить ввод чисел в массив матрицы на языке Си
- Код работает некорректно. Язык Си. Нахождение максимального отрицательного элемента матрицы и замена его числом.
- Ввести с клавиатуры символ и преобразовать его в символ верхнего регистра. Как сделать без библиотеки string?
- Решить задачу на языке СИ
- Написать код на языке си
- Написать программу на языке Си
- Помогите с решением задачи на языке СИ
- Язык си Найти все делители натурального числа N и вывести их в порядке возрастания и убывания.
- Си!!! БЕЗ УКАЗАТЕЛЕЙ, ЯЗЫК СИ