Mógłby ktoś sprawdzić te programy? W sensie czy nie ma żadnych niepotrzebnych linijek czy można byłoby to napisać lepiej?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(int argc, char *argv[])
{
float a,b,wynik;
char *c=argv[2];
if (argc!=4)
{ printf("\nLiczba argumentow rozna od 4!\n");
} else{
a=atof(argv[1]);
b=atof(argv[3]);
switch (*c){
case '+' : wynik=a+b;
printf("\n %0.3f %s %0.3f = %0.3f \n",a,c,b,wynik);
break;
case '-' : wynik=a-b;
printf("\n %0.3f %s %0.3f = %0.3f \n",a,c,b,wynik);
break;
case 'x' : wynik=a*b;
printf("\n %0.3f %s %0.3f = %0.3f \n",a,c,b,wynik);
break;
case '/' :if(b==0) printf("nie mozna dzielic przez 0");
else {wynik=a/b;
printf("\n %0.3f %s %0.3f = %0.3f \n",a,c,b,wynik); }
break;
case 'p' : if(b<0 || a<0) printf("a musi byc wieksze lub rowne 0, b musi byc wieksze lub rowne 0");
else {wynik=pow(a,1.0/b);
printf("\n %0.3f %s %0.3f = %0.3f \n",a,c,b,wynik); }
break;
default : printf("Program wykonuje obliczenia (+,-,x,/,a p n(to jest pierwiastek z a stopnia n)) dzialanie nalezy wpisac przy wywolaniu programu w postaci np. a + b");
}
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
struct point
{
float x;
float y;
};
float odl (struct point a, struct point b);
int main()
{
struct point a, b;
printf("podaj wspolrzedne punktu a \n");
scanf("%f %f", &a.x, &a.y);
printf("podaj wspolrzedne punktu b\n");
scanf("%f %f", &b.x, &b.y);
printf("punkt a ma wspolrzedne (%.2f, %.2f)\n", a.x, a.y);
printf("punkt b ma wspolrzedne (%.2f, %.2f)\n", b.x, b.y);
printf("odleglosc miedzy a i b to %.2f\n", odl(a,b));
return 0;
}
float odl (struct point a, struct point b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
programy niby działają ale informatyk mi nie chce tego zaliczyć i nie wiem dlaczego...