c muy muy basico

Pues tengo 2 dudas. Estoy haciendo un programa que resuelve ecuaciones de 2 grado introducioendo los 3 terminos. Ya se que no es gran cosa pero solo llevo un dia con c.
os pongo el codigo y os pregunto

#include <stdio.h>
#include <math.h>

void main()
{

   double s1,s2,r;
   int a,b,c;
   printf("Este programa te permite resolver, con facilidad, ecuaciones de segundo grado.\nVersion Beta 0.1.Creado por Jose Carlos.\n");
   printf("\n");
   printf("Introduce el coeficiente x^2: ");
   scanf("%i", &a);
   printf("Introduce el coeficiente x:  ");
   scanf("%i", &b);
   printf("Introduce el termino independiente:  ");
   scanf("%i", &c);
   r =(b*b - 4 * a * c);   

   printf("\n");
            
   s1 = (-b + sqrt(r))/(2*a);
   s2 = (-b - sqrt(r))/(2*a);

   if (r < 0 && s1 == s2)
      printf("LA ECUACION NO TIENE SOLUCION REAL");
   
   if (r >= 0 && s1 == s2)
      printf("LA ECUACION TIENE UNA SOLUCION DOBLE\n\nLa solucion de la ecuacion es:\n\n Solucion: %f:",s1);
   
   if (s1 != s2 && r > 0)
      printf("LA ECUACION TIENE DOS SOLUCIONES REALES DISTINTAS\n\nLas soluciones de la ecuacion son:\n\n Solucion 1: %f\n Solucion 2: %f",s1,s2);
   
   

   printf("\n");
   printf("\n");
}


Weno no os riais del codigo que seguramente es muy mejorable pero es como se me ocurre. Pues si mirais tengo las variables de entrada de datos enteras ( int) y las de salida double. Yo quisiera poder instroducir numeros decimales pero es q si pongo double todas las variables despues no me resuelve nada, porq pasa algo extraño no se. Y la otra es q no se como se pone en c elevado a algo porq al principio puse esto "^" pero no me lo reconoce y si mirais e tenido q poner "b*b" y eso qeda muy feo.
Weno a ver si podeis hacer algo. Adjunto el programa y el codigo.

http://www.coriadelrio.com/centauro/ecuacion.exe <-------programa
http://www.coriadelrio.com/centauro/ecuacion.cpp <-------- codigo fuente
Para elevar un Numero a Cualkier potencia en C Primero debes cargar la libreria Matematica (Math.h) de esta manera:

#include

y luego usar la funcion pow,por ejemplo pow(x,y)

X es el numero y Y es la Potencia

2^3 = pow(2,3) = 8

Espero ke te sirva ;)

Un Salu2 ¡¡
La respuesta de razielus es la buena. Tambien hay un hilo oficial de C mas abajo que seguro que te ayudan mejor ;)
Bueno, el programa es una solucion valida, aunque si la hubirea puesto en cualquier examen de programacion me hubieran matado, realmente es muy mejorable, mira mi alternativa.

#include
#include

void main()
{

double s1,s2,r,s;
int a,b,c;
printf("Este programa te permite resolver, con facilidad, ecuaciones de segundo grado.\nVersion Beta 0.1.Creado por Jose Carlos.\n");
printf("\n");
printf("Introduce el coeficiente x^2: ");
scanf("%i", &a);
printf("Introduce el coeficiente x: ");
scanf("%i", &b);
printf("Introduce el termino independiente: ");
scanf("%i", &c);
printf("\n");

r =(b*b - 4 * a * c);

/* lo mas correcto es verificar primero si se cumple la precondicion para la existencia de soluciones reales */

if ( r < 0 ) printf("LA ECUACION NO TIENE SOLUCION REAL");
/* si es cumplida la premisa de que !(r<0) se verifica que r no sea 0 , si r es 0 esto implica que
su raiz es 0 por lo que ambas soluciones de la ecuacion es la misma, debido a que la unica manera
que A+b = A-b es que b sea 0 , siempre que A y b sean rales */
else if (r = 0 ){
/* se calcula la solucion asuminedo que r=0 y por lo tanto su raiz es 0 */

s1 = (-b)/(2*a);
printf("LA ECUACION TIENE UNA SOLUCION DOBLE\n\nLa solucion de la ecuacion es:\n\n Solucion: %f:",s1);
};
/* en caso de r!=0 implica la existencia de dos soluciones, i como para llegar aqui hemos tenido que verificar
que previamente que !(r<0) se cumpla, se cumplen las dos premisas previas */
else {
/* calculamos primero la raiz y se lo asignamos a r para luego calcular las soluciones, esto no es obligatorio
pero hacelera la ejecucion, para un ejmeplo tan simple no es relevante pero para funciones de uso intensibo se
nota la diferencia de tiempo de ejecucion*/

r = sqrt(r);
s1 = (-b + r )/(2*a);
s2 = (-b - r )/(2*a);
printf("LA ECUACION TIENE DOS SOLUCIONES REALES DISTINTAS\n\nLas soluciones de la ecuacion son:\n\n Solucion 1: %f\n Solucion 2: %f",s1,s2);
};
};

printf("\n");
printf("\n");
}
asias a todos por las respuestas. Sí, has pensado mejor que yo lo de las condiciones jejejeje
4 respuestas