Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2010, 13:03   #1
dutik
Новичок
Джуниор
 
Регистрация: 28.04.2010
Сообщений: 1
По умолчанию чтение, обработка и вывод строк. (C)

написала программу, она работает всё как надо, но надо написать используя другие функции.помогите плизз

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*function initialization*/
char *bbin( int s );

int main(){
/*arrays initialization*/
char c[255];
int res[16];
/*variables initialization*/
int rs=0; int j=0;
int k=0; int i=0;
int rez=0; int count=0;
/*fill nil values into array*/
while (i<=15) { res[i]=-1; i++; }
/*starting reading cycle*/
i=0;
while (i==0) {
/*getting string from the standart input buffer*/
fgets(c,256,stdin);
/*string parsing*/
rez=sscanf(c,"%d %d", &j, &k);
/*checking values*/
if (rez==2 && j>=0 && j<=15 && (k==1 || k==0) ) {
res[j]=k;
count++;
} else {
if (rez!=2) {
j=0; k=0;
if (c[0]=='.') {
i=1;
} else {
printf("Error! Wrong value. Please try again.\n");
}
} else {
if (j<0 || j>15) printf("Warning! Parameters range - 0 to 15, your input %d\n", j);
if (k!=1 && k!=0) printf("Warning! Values range - 0 to 1, your input %d\n", k);
}
}
}
/*show parameters with 1 value*/
i=0;
while (i<=15) {
if (res[i]==1) printf("%s %d\n",bbin(i), res[i]);
i++;
}
i=0;
/*show parameters with zero value*/
while (i<=15) {
if (res[i]==0) printf("%s %d\n",bbin(i), res[i]);
i++;
}
/*show parameters without value*/
i=0;
while (i<=15) {
if (res[i]==-1) printf("%s -\n",bbin(i));
i++;
}
return 0;
}

/*function for converting decimal to binary*/
char *bbin( int s ) {
/*preparing pointer*/
char (*d) = (char*) malloc(5) ;
int i=0;
while (i<=3) {
*(d+i)='0';
i++;
}
*(d+i)='\0';
i=0;
/*getting binary value*/
while (s!=0){
if (s % 2>0) *(d+(3-i))='1'; else *(d+(3-i)) ='0';
s = s / 2;
i++;
}
return d;
}
dutik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение опеределенных строк из файла Dennis777 Помощь студентам 6 14.11.2009 21:59
Чтение ASCII строк из PE файла Flippp Общие вопросы C/C++ 3 19.08.2009 12:30
Чтение частей строк из *.txt файлов HTL Общие вопросы Delphi 4 04.04.2009 20:50
Чтение строк из файла (С++) counter Помощь студентам 2 05.11.2008 02:02