LinuxForum.Fans
Тема

Калькулятор на си без функций библиотек

Автор: Moritto 4 сообщений 1476 просмотров
15.07.2017 21:41 #424319
text

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

int findChar(char str[], char c) { for(int i=0; i<strlen(str); i++) { if(str[i] == c) return i; } return -1; }

int first(char str[], char copy[], int x) { if(x==0) return -1; for(int i=0; i<x; i++) { copy[i] = str[i]; } return 0; }

int end(char str[], char copy[], int x) { if( (strlen(str)-1) == x) return -1; int cpy=0; for(int i=x+1; i<strlen(str); i++) { copy[cpy] = str[i]; cpy++; } return 0; }

int main() { char text[100]; int x1,x2,x3,x4; char copy1[50], copy2[50]; while(1) { printf("Введите числа и знак: "); fgets(text, 100, stdin); text[strlen(text)-1]='\0'; x1 = findChar(text, '+'); x2 = findChar(text, '-'); x3 = findChar(text, '/'); x4 = findChar(text, '*'); if(x1 == -1 && x2==-1 && x3==-1 && x4==-1) printf("Неверный знак\n"); else { if(x1!=-1) { if( (first(text, copy1, x1))==0 ) { if( (end(text, copy2, x1))==0 ) { int num1=atoi(copy1); int num2=atoi(copy2); printf("Результат: %d\n", num1+num2); } else printf("Второй операнд не указан\n"); } else printf("Первый операнд не указан"); } else if(x2!=-1) { if( (first(text, copy1, x2))==0 ) { if( (end(text, copy2, x2))==0 ) { int num1=atoi(copy1); int num2=atoi(copy2); printf("Результат: %d\n", num1-num2); } else printf("Второй операнд не указан\n"); } else printf("Первый операнд не указан"); } else if(x3!=-1) { if( (first(text, copy1, x3))==0 ) { if( (end(text, copy2, x3))==0 ) { int num1=atoi(copy1); int num2=atoi(copy2); printf("Результат: %d\n", num1/num2); } else printf("Второй операнд не указан\n"); } else printf("Первый операнд не указан"); } else if(x4!=-1) { if( (first(text, copy1, x4))==0 ) { if( (end(text, copy2, x4))==0 ) { int num1=atoi(copy1); int num2=atoi(copy2); printf("Результат: %d\n", num1*num2); } else printf("Второй операнд не указан\n"); } else printf("Первый операнд не указан"); } for(int i=0;i<50;i++) { copy1[i]=' '; copy2[i]=' '; } } } return 0; }

Здесь использовано минимум библиотечных функций поэтому это хакерский код.

16.07.2017 00:57 #424325
"Moritto" написал:
минимум библиотечных функций поэтому это хакерский код

Это неправильный и очень плохой критерий.

16.07.2017 12:45 #424334
bormant написал:
[quote="Moritto"]минимум библиотечных функций поэтому это хакерский код

Это неправильный и очень плохой критерий.[/quote]
Мне пофиг на ваше мнение

16.07.2017 13:02 #424335

Moritto, если вам неинтересно мнение то вас никто не держит тут.

Войдите или зарегистрируйтесь, чтобы ответить.