Hola
Porque almacenas la variable letra en un array, debería ser solo una variable de tipo char.
Lo otro que observo es que en el scanf donde capturas el valor de la variable letra no colocas el simbolo ampersand que es necesario para capturar el valor.
Asi me quedo despues de unos cambios.
Código C:
Ver original#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
int main(){
char cad[25];
char letra;
int flag =0;
int i=0, strpos;
clrscr();
printf("introduce una cadena de 25 caracteres:\n"); printf("introduce un caracter a buscar:\n"); //encontrar la primera ocurrencia de un caracter dentro de la cadena.
for(i=0;(i<25) && (cad[i]!='\0') ;i++){
if(cad[i]==letra){
flag = 1;
strpos = i;
break;
}
}
if (flag == 1){
printf("la primera ocurrencia de la letra %c se encuentra en la posicion %d de la cadena %s :\n",letra
,strpos
, cad
); }else{
printf("No se encontraron ocurrencias de %c en %s:\n", letra
,cad
); }
return 0;
}
Prueba y comenta
Saludos