Hola,
Lo primero lo que dice Puyover, para comparar se utiliza ==, sin embargo en este caso estas comparando strings (cadenas de caracteres) y esa comparación de C solo admite comparaciones entre enteros, reales, caracteres y poco mas (seguro que algo me dejo) pero no strings. Por tanto tienes que hacer uso de la librería string.h para ello añades al codigo:
#include <string.h>
Luego para comparar cadenas, usas la función strcmp(cadena1, cadena2), si la función devuelve 0 esque son iguales (tienen 0 caracteres diferentes).
Por otro lado, si no me equivoco, tu declaración de char si; solo declaras un caracter, no una cadena (solo podrías almacenar 'a' o 'b' etc) para almacenar una cadena tienes que usar lo siguiente:
char cadena[100]; // seria una cadena de hasta 100 caracteres, la forma facil.
char *cadena2; // Luego deberias reservar memoria para los caracteres que quieras con malloc (mucho complicar me parece)
// en el main
cadena2 = (char *)malloc(sizeof(char) * numero_de_caracteres_que_quieres_meter);
// al final tendrias que liberar memoria
free(cadena2);
Además para leer de la entrada estandar una cadena deberías usar lo siguiente:
scanf("%s", cadena); // el %s significa que lees un string y lo metes en cadena que es un array (el de antes)
Bueno espero haberme explicado algo, al final la cosa debería quedar asi:
#include <stdio.h>
#include <string.h> // para manejo de strings
int main()
{
char si[100]; // es una cadena no solo un caracter
printf("blablabla?\n");
scanf("%s", si);
if (strcmp("ble", si) == 0)
printf ("blublublublu");
else
printf ("blibliblibli");
}
Espero haberte servido de ayuda y si me he pasao explicando algo lo siento, pero se hace lo que se puede, si necesitas algo más ya sabes,
un saludo!
Para mas ayuda yo uso esta web:
http://www.cplusplus.com en ingles si, pero es genial.