C/C++

Как в языке си ввести с клавиатуры сначала количество чисел последовательности, а потом саму последовательность

Я пыталась через while и for , но у меня в последовательности всегда лишнее число появляется
D6
Dima 64
265
Для этого динамические массивы есть. Пример с вводом массива чисел типа 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;
}
Ток Фьюжен
Ток Фьюжен
66 573
Лучший ответ
Dima 64 Огромное Вам спасибо
>Я пыталась через while и for , но у меня в последовательности всегда лишнее число появляется
Ну так уменьши количество итераций на 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]);
}