Olá! 
  
Estou tentando fazer um código para um trabalho de cálculo numérico. O programa tem que receber o intervalo inicial (a, B) e o número de iterações (i) e mostrar as iterações pelo metódo da Bisseção para achar as raizes da equação:  f(x)=(x-4)^1/2+x-9, cuja raiz está entre o intervalo 7 e 8. 
  
  
O código que eu montei foi esse: 
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    #include <iostream>
    main()
    {        int a,b,i,k,c;
             float x,fx,fa;
     c=0;
     while (c!=1) {
                 printf("Digite o primeiro numero do intervalo inicial:");
            scanf("%d",&a);
                    printf("\n");
            printf("Digite o último numero do intervalo inicial:");
            scanf("%d",&b);
                    printf("\n");
                 
            if (a>7||b<8){
            printf("Erro, a raiz não se encontra nesse intervalo. Favor digitar outro.");     
                               printf("\n");
            } else {
                c=1;
            }
        }
            printf("Digite o numero de iteracoes:");
            scanf("%d",&i);
                    printf("\n");
               
    for (k=1; k<=i; k++) {
    x=((a+b)/2);
    fx=(sqrt(x-4))+x-9;
    fa=(sqrt(a-4))+a-9;
      
    if(fx*fa<0){
    a=x;}
    else {
    b=x;}
    printf("x%f=%f",&k,&x );
                   printf("\n");
    }
    }
    
O que está acontecendo: Não importa o valor que eu coloque, o resultado sai sempre o mesmo e errado. Suspeito que algo esteja errado na sintaxe e os números digitados não estão sendo armazenados corretamente. Algo pode estar errado nas operações em si também. 
  
o log de erro do compiler foi esse: 
 Compiler: TDM-GCC 4.7.1 64-bit
Executing  g++.exe...
g++.exe "C:\Users\Fernanda\Desktop\Untitled1.cpp" -o "nul"   -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include"  -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc
nul.exe: final close failed: File truncated
collect2.exe: error: ld returned 1 exit status
Execution terminated
  
  
Agradeço qualquer ajuda.