Programaçaõ em C

Boa Pessoal , venho hoje aqui ver se poderiam me ajudar. Não Está printando na Tela o nome,.
Desde já muito obrigado a todos

#include <stdio.h>
#include <locale.h>
#include<stdio.h>

int main()
{
setlocale(LC_ALL,“Portuguese”);

float notas[3];
char nome[15];
int presenca[1];

printf("\n BEM VINDO PROFESSOR \n Vamos avaliar o Aluno:");
printf("\n Nome do Aluno: "); scanf("%s",nome);
printf("\n 1º Nota do Aluno: "); scanf("%f",&notas[0]);
printf("\n 2º Nota do Aluno: "); scanf("%f",&notas[1]);
printf("\n 3º Nota do Aluno: "); scanf("%f",&notas[2]);
printf("\n Para Finalizarmos Informe a Presença do %s no Semestre: ",nome); scanf("%d",&presenca[0]);


presenca[1] = ( presenca[0] * 100 ) / 80;
notas[3] = ( notas[0] + notas[1] + notas[2] ) / 3;

if ( presenca[1] < 75 && presenca[0] < 81 && notas[3] < 31){
    printf("\n O Aluno: %s Está Reprovado por Falta, com apenas %d de Presença",nome,presenca[1]);

}else if (notas[3] < 7.0  && presenca[0] < 81 && notas[3] < 31){
    printf("\n O Aluno: %s Está Reprovado por Média, com apenas %.2f de Media",nome,notas[3]);

}else if ( presenca[0] < 81 && notas[3] < 11){
    printf("\n O Aluno: %s está Aprovado",nome);

}else{
    printf("\n Verifique os Lançamentos dos Dados");
}

return 0;

}

Bem… vamos lá. Não sei quem está te dando aula de C, mas tá meio enrolado né?

Primeira coisa… Joga fora essa história de locale. Vc provavelmente não vai trabalhar com a linguagem C, ela está sendo usada apenas como um meio para aprender a programar. Sua tela não precisa ficar linda nem apresentar acentos e outros caracteres especiais.

Continuando… Pq presenca é um array de uma posição ao invés de uma variável inteira? Vc acessa as posições 0 e 1 do array presenca, o que não faz sentido, pois está definido com uma posição. Parece que você precisa de dois valores, um para a presença em si, outro para a porcentagem em relação à 80 aulas, então teria que declarar como int presenca[2]; Fazendo isso, seu programa passa a funcionar para o caso do teste da presença.

Vc errou novamente na declaração do array notas, pois ele têm três posições e você usa 4, inclusive para propósitos diferentes (igual na presença). Acredito que seja um exercício sobre arrays e que você é obrigado a usar…

Vc mistura critérios de verificação das entradas com condições para apresentar o resultado ao usuário… Mistura também valores armazenados nos arrays presenca e notas com mais de um sentido. Enfim, eu reescreveria seu programa assim:

#include <stdio.h>
#include <stdio.h>
#include <string.h>

int main() {

    float notas[3];
    float media;

    char nome[15];

    int presenca;
    float porcentagemPresenca;


    printf( "BEM VINDO PROFESSOR\n" );
    printf( "Vamos avaliar o Aluno:\n" );

    printf( "Nome: ");
    fgets( nome, 15, stdin );    // faz a leitura de uma string do jeito "certo"
    nome[strlen(nome)-1] = '\0'; // remove pulo de linha

    for ( int i = 0; i < 3; i++ ) {
        printf( "Nota %d: ", i + 1 );
        scanf( "%f", &notas[i] );
    }

    printf( "Para finalizarmos, informe a presenca do %s no semestre: ", nome );
    scanf( "%d", &presenca );

    // aqui vem a validação, que deveria vir antes na entrada de cada dado,
    // usando um do ... while
    if ( notas[0] < 0 || notas[0] > 10 ||
         notas[1] < 0 || notas[1] > 10 ||
         notas[2] < 0 || notas[2] > 10 ||
         presenca < 0 || presenca > 80 ) {

        printf( "Verifique os lancamentos dos dados" );

    } else {

        porcentagemPresenca = ( presenca * 100 ) / 80;
        media = ( notas[0] + notas[1] + notas[2] ) / 3;

        printf( "O aluno %s ", nome );

        if ( porcentagemPresenca < 75 ){
            printf( "esta reprovado por falta, com apenas %.2f%% de presenca", porcentagemPresenca );
        } else if ( media < 7 ){
            printf( "esta reprovado por media, com apenas %.2f de media", media );
        } else {
            printf( "esta aprovado!" );
        }

    }

    return 0;

}

Em tempo, algo mais apropriado, com a validação dos valores na entrada, seria assim:

#include <stdio.h>
#include <stdio.h>
#include <string.h>

int main() {

    char nome[15];
    float notas[3];

    float media;
    int presenca;
    float porcentagemPresenca;


    printf( "BEM VINDO PROFESSOR\n" );
    printf( "Vamos avaliar o Aluno:\n" );

    printf( "Nome: ");
    fgets( nome, 15, stdin );    // faz a leitura de uma string do jeito "certo"
    nome[strlen(nome)-1] = '\0'; // remove pulo de linha

    for ( int i = 0; i < 3; i++ ) {

        do {

            printf( "Nota %d (0 a 10): ", i + 1 );
            scanf( "%f", &notas[i] );

            if ( notas[i] < 0 || notas[i] > 10 ) {
                printf( "O valor da nota %d deve ser de 0 a 10!\n", i + 1 );
            }

        } while ( notas[i] < 0 || notas[i] > 10 );

    }

    printf( "Para finalizarmos, informe a presenca do aluno %s no semestre:\n", nome );

    do {

        printf( "Presenca (0 a 80): " );
        scanf( "%d", &presenca );

        if ( presenca < 0 || presenca > 80 ) {
            printf( "O valor da presenca deve ser de 0 a 80!\n" );
        }

    } while ( presenca < 0 || presenca > 80 );


    porcentagemPresenca = ( presenca * 100 ) / 80;
    media = ( notas[0] + notas[1] + notas[2] ) / 3;


    printf( "O aluno %s ", nome );

    if ( porcentagemPresenca < 75 ){
        printf( "esta reprovado por falta, com apenas %.2f%% de presenca", porcentagemPresenca );
    } else if ( media < 7 ){
        printf( "esta reprovado por media, com apenas %.2f de media", media );
    } else {
        printf( "esta aprovado!" );
    }

    return 0;

}

Ainda da para melhorar mais, mas não acredito que seja necessário e talvez vc ainda não tenha visto nas aulas o que seria preciso.

Abraço e bons estudos!