Я написал программу, которая получает от пользователя серию чисел (<= 20), в то время как последний «0» означает конец серии (не включается в сохранение серии).2 массива (x, y) размером 20 (0-19 + 1 для '0') должны быть нулями, а m означает количество органов в массиве Y. </p>
Пользователь должен вводить числа по возрастанию (этоок 4ex 1,2,2,3,7,8, ..., 0) и заканчиваются на '0', конечно, если нет, появится соответствующее сообщение об ошибке, и программа отключится.
Мы можем быть уверены, что пользователь сохранит введенные цифры <= 20. </p>
Массив Y будет (если все было в порядке с массивом X) отсортированным массивом X, но без дубликатов.'m' будет числом органов в Y, за исключением, конечно, '0.
Функция SIFT должна организовывать массив Y только для печати из main ().
Пример:
Если пользователь сохранит в X: 1,1,2,3,5,5,5,6
На экране появится: m = 5 Y = 1,2, 3,5,6
Мой код:
#include <stdio.h>
#include <string.h>
void SIFT(int x_arr[ ], int y_arr[]);
int main ()
{
int x[20] = {0} , y[20] = {0};
int m=0,temp=0,curr=0,i=0,j=0;
printf("Please enter your numbers now:\n\n");
/*enter numbers one by one. if x[i+1] value < x[i] value, err msg.
when user want to end the series he must enter '0' which means end of string (it wont included in x[]) */
while ( ( temp = getchar() ) != '0' )
{
if (temp >= curr)
{
x[i] = temp;
curr = temp;
i++;
}
else
{
printf("The numbers are not at the right order !\n\nProgram will now terminate...\n\n");
}
}
SIFT(x,y);
for (i=0 ; y[i]=='0' ; i++) /*strlen(y) without ('0')'s includes*/
m++;
/*Prints m , y's organs*/
printf("\n\nm = %d",m);
printf("Y = ");
while (y[j]!='0')
{
printf ("%d ,",y[j]);
j++;
}
return 0;
}
void SIFT(int x_arr[ ], int y_arr[])
{
int i=0,j=0;
while (x_arr[i] != '0')
{
if (x_arr[i] == x_arr[i+1]) /*if current val. equals next val. -> jump dbl at x_arr*/
{
y_arr[j] = x_arr[i];
i+=2;
j++;
}
else
{
y_arr[j]=x_arr[i];
i++;
j++;
}
}
}
По какой-то неизвестной причине, для любого легального ввода я получаю "Числане в правильном порядке ... "сообщение об ошибке ...
Я буду более чем счастлив, если кто-то сможет это исправить, поэтому он должен работать должным образом, потому что до сих пор я вижу, что все в порядке.....
Спасибо :( ...