Ir ao conteúdo
  • Cadastre-se

Programa Quase Completo


lucas_duzo

Posts recomendados

Se algume puder me ajudar agradeço desde já;

este programa é para inserir dados do aluno, ordenar e exibir, pois na hora de inserir somente o R.A do aluno é que está sendo gravado e ele esta orenando corretamente, ou seja, eu preciso completar os registro do aluno com seu nome, nota1 e nota 2 me ajudem

#Não se esqueça de colocar as tags de spoiler e code no seu código.


#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

/* definicao do no da lista */
typedef struct aluno {
int ra;
char nome;
float nota1;
float nota2;

struct aluno *prox;
} aluno;

char tela(void ); /* Tela com menu de opções */
void insere ( aluno *);
void ordenar( aluno *);
void busca ( aluno *, int , aluno **, aluno **);

int main()
{
aluno *ptlista; /* ponteiro para inicio da lista */
char opcao; /* escolha do usuario */
int sair = 0; /* em 1 indica fim de programa */

if (( ptlista = ( aluno *) malloc(sizeof( aluno)) ) == NULL )
{
puts("Nao há espaço.");
exit(1);
}
ptlista->ra = -1;
ptlista->prox = NULL;

do {
opcao = tela();
switch (opcao) {
case 'i':
insere(ptlista);
break;
case 'o':
ordenar(ptlista);
break;
case 's':
sair = 1;
break;
default:
puts("Opcao invalida.");
break;
}
} while (!sair);
exit(0);
}


char tela () {

char opcao, linha[80];

puts("Qual a sua opcao?");
puts("[O]RDENAR, [i]NSERIR, [s]AIR");
fgets(linha, 80, stdin);
sscanf(linha, "%c", &opcao);
return tolower(opcao);
}

/* procura no na lista */
void busca ( aluno *ptlista, int x, aluno **ant, aluno **ponte) {
/* *ptlista ponteiro para inicio da lista
x elemento a ser procurado
**ant ponteiro para ponteiro do elemento anterior
**pont ponteiro para ponteiro do elemento procurado
*/
aluno *ptr;

*ant = ptlista; /* aponta no anterior */
*ponte = NULL; /* aponta no procurado, se nao achar retorna nulo */
ptr = ptlista->prox; /* aponta no procurado */

while (ptr) { /* procura enquanto houver chance */
if (ptr->ra < x) { /* ainda nao chegou no no */
*ant = ptr;
ptr = ptr->prox;
}
else { /* pode ser aqui */
if (ptr->ra == x) *ponte = ptr; /* achou */
ptr = NULL; /* nao estava na lista */
}
}
}

/* lista a lista ;-) */
void ordenar ( aluno *pont) {
int i=0;

pont = pont->prox;
while (pont) {
printf("R.A do Aluno %d = %dn", i++, pont->ra);
printf("Nome do Aluno %c = %cn", i++, pont->nome);
printf("Primeira Nota do Aluno %f = %fn", i++, pont->nota1);
printf("Segunda Nota do Aluno %f = %fn", i++, pont->nota2);
pont = pont->prox;
}
}

/* insere elemento na lista */
void insere ( aluno *ptlista) {

aluno *pt, /* ponteiro para o novo no a inserir */
**ant, /* ponteiro para ponteiro na lista */
**pont; /* ponteiro para ponteiro do no anterior */
int p_ra;
char p_nome;
float p_nota1;
float p_nota2;
char linha[80];

printf("Digite o Numero do RAt:");
fgets(linha, 80, stdin); sscanf(linha, "%d", &p_ra);
printf("Digite o Nome do Alunot:");
fgets(linha, 80, stdin); sscanf(linha, "%c", &p_nome);
printf("Digite a Primeira Notat:");
fgets(linha, 80, stdin); sscanf(linha, "%f", &p_nota1);
printf("Digite a Segunda Notat:");
fgets(linha, 80, stdin); sscanf(linha, "%f", &p_nota2);

ant = ( aluno **) malloc(sizeof ( aluno *));
pont = ( aluno **) malloc(sizeof ( aluno *));

busca (ptlista, p_ra, ant, pont);

if (!*pont) {
pt = ( aluno *) malloc(sizeof( aluno));
pt->ra = p_ra;
pt->prox = (*ant)->prox;
(*ant)->prox = pt;


} else puts("Elemento ja existe na tabela.");
}

Link para o comentário
Compartilhar em outros sites

#Não se esqueça de colocar as tags de spoiler e code no seu código.Reincidencia será considerada infração


#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
main()
{
int i,j,cont,linha,coluna;
char velha[4][4],num[4][4],jogada;
char vence,empate,jog1,jog2,valor='o',impate,resp;






for(i=0;i<=3;i++){
for(j=0;j<=3;j++){
velha[i][j]=' ';
num[i][j]=' ';// esvasia a matriz
}
}
do{
if(jogada<=10){
system("cls");
printf("n");
}
for(i=0;i<=3;i++){
for(j=1;j<=3;j++){
// controla o prounch.valor
if(velha[i][j]=='x' || velha[i][j]=='o')
printf("%s",&velha[i][j]);
else
printf(" ");//deixa espaço em branco
if(j<=2)
printf("%c",-77);//desenha coluna
}
printf(" n");
if(i<=2)// controla a exibição da ultima linha
for(cont=1;cont<=15;cont++){
printf("%c",-60);//desenha linhas
if(cont == 5 || cont == 10)
printf("%c",-59);// caracter + junção
}
printf("n");
}
if(vence == 1){
if(jogada %2==0)
printf("resultado:"x"venceun");
else
printf("resultado:"o"venceun");
goto fim;//termina o jogo

if(empate ==1){
printf("resultadoé o jogo empatoun");
goto FIM;
if(jogada %2!=0)
{
printf("vez do jogador 1:%s="x"n",jog1);
valor = 'x';
}
else
{
printf("vez do jogador 2:%s="o"n",jog2);
valor='o';
}
volta:;
do{
printf("informe o numero da linha:");
scanf("%s",&linha);
if(linha>3)
printf("o numero da linha não pode q 3n");
if(linha<1)
printf(" o numero da linha não pode ser menor q 3 ");
}while(linha >3 || linha<1);
do{
printf("informe o numero da coluna:n");
scanf("%s",&coluna);
printf(" o numero da coluna é maior q 3n");
if (coluna<1)
printf(" o numero da coluna é maior q 1n");
}while(coluna>3 || coluna<1);
if(num[linha][coluna]==1){//verifica se a jogada foi execultada
printf("ja executadan");
goto volta;
}
else
{
velha[linha][coluna]=valor;//coloca o valor 'x' ou 'o'
num[linha][coluna]=1;
}
//verificar as linhas
if(velha[1][1]=='x' && velha[1][2]=='x'&& velha[1][3]=='x')vence=1;
if(velha[2][1]=='x' && velha[2][2]=='x'&& velha[3][3]=='x')vence=1;
if(velha[3][1]=='x' && velha[3][2]=='x'&& velha[3][3]=='x')vence=1;

if(velha[1][1]=='o' && velha[1][2]=='o'&& velha[1][3]=='o')vence=1;
if(velha[2][1]=='o' && velha[2][2]=='o'&& velha[2][3]=='o')vence=1;
if(velha[3][1]=='o' && velha[3][2]=='o'&& velha[3][3]=='o')vence=1;
//verifica as colunas
if(velha[1][1]=='x' && velha[2][1]=='x'&& velha[3][1]=='x')vence=1;
if(velha[1][2]=='x' && velha[2][2]=='x'&& velha[3][2]=='x')vence=1;
if(velha[1][3]=='x' && velha[2][3]=='x'&& velha[3][2]=='x')vence=1;

if(velha[1][1]=='o' && velha[2][1]=='o'&& velha[3][1]=='o')vence=1;
if(velha[1][2]=='o' && velha[2][2]=='o'&& velha[3][2]=='o')vence=1;
if(velha[1][3]=='o' && velha[2][3]=='o'&& velha[3][3]=='o')vence=1;

//verifica a diagonal
if(velha[1][1]=='x'&& velha[2][2]=='x' && velha[3][3]=='x')vence=1;
if(velha[1][3]=='x'&& velha[2][2]=='x' && velha[3][1]=='x')vence=1;
if(velha[1][1]=='o'&& velha[2][2]=='o' && velha[3][3]=='o')vence=1;
if(velha[1][3]=='o'&& velha[2][2]=='o' && velha[3][1]=='o')vence=1;
jogada++;//importa as jogadas
if(jogada > 9)
impate=1;//jogo empaotu
}while(jogada > 1);
fim:;
printf(" deseja jogar novamente? (s/n):n");
scanf("%s",&resp);
system("cls");
}while(resp=='s' || resp=='s');
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...