Witam!
Jestem początkujący i chciałbym by ktoś zerknął na owy kod i podpowiedział czy jest on w miarę dobrze napisany, optymalny a może da się go zrobić krócej? Doradził co do ewentualnych zmian.
#include <stdio.h>
void wpisz(int *a, int *b){
printf("Podaj a = ");
scanf("%d", a);
printf("Podaj b = ");
scanf("%d", b);
}
void text(int *n){
printf("Jakie działanie chcesz wykonać? \n1 - dodawanie\n2 - odejmowanie\n3 - mnozenie\n4 - dzielenie\n5 - reszta z dzielenia\n6 - koniunkcja bitowa(AND)\n7 - alternatywa bitowa(OR)\n8 - alternatywa rozłączna(XOR)\n9 - negacja bitowa\nPodaj numer operacji: ");
scanf("%d", n);
}
void dod(int a, int b){
int suma;
suma = a + b;
printf("%d + %d = %d \n", a,b, suma);
}
void ode(int a, int b){
int roznica;
roznica = a - b;
printf("%d - %d = %d \n", a, b, roznica);
}
void mnoz(int a, int b){
int iloczyn;
iloczyn = a * b;
printf("%d * %d = %d \n", a, b, iloczyn);
}
void dziel(int a, int b){
float iloraz;
iloraz = a / b;
printf("%d // %d = %.2f\n", a, b, iloraz);
}
void mod(int a, int b){
int modulo;
modulo = a % b;
printf("%d %% %d = %d\n", a, b, modulo);
}
void kon(int a, int b){
int koniunkcja;
koniunkcja = a & b;
printf("%d & %d = %d\n", a, b, koniunkcja);
}
void albit(int a, int b){
int alternatywab;
alternatywab = a | b;
printf("%d | %d = %d\n", a, b, alternatywab);
}
void altroz(int a, int b){
int rozlaczna;
rozlaczna = a ^ b;
printf("%d ^ %d = %d", a, b, rozlaczna);
}
void neg(int a, int b){
int neg1, neg2;
neg1 = ~a;
neg2 = ~b;
printf("~%d = %d\n~%d = %d\n", a, neg1, b, neg2);
}
int main(){
int a;
int b;
int n;
wpisz(&a,&b);
text(&n);
switch (n){
case 1:
dod(a,b);
break;
case 2:
ode(a,b);
break;
case 3:
mnoz(a,b);
break;
case 4:
dziel(a,b);
break;
case 5:
mod(a,b);
break;
case 6:
kon(a,b);
break;
case 7:
albit(a,b);
break;
case 8:
altroz(a,b);
break;
case 9:
neg(a,b);
break;
default:
printf("Zły wybór!");
}
return 0;
}