Olá, sou um completo iniciante em C. Preciso criar um código que classifique as notas de 1 a 100 de 1-5 e A-F, com o programa que faz a conversão em um ficheiro separado. O programa funcionava bem para uma variável, mas ao alterar a variável para uma matriz começou a dar o erro
"undefined reference to `WinMain'
[Error] ld returned 1 exit status"
#include <stdio.h>
int main(){
int i, j;
int a[i];
int s, gru;
printf("Intruduce the number os students ", &s);
fflush(stdout);
scanf("%d", &s);
printf("Intruduce their grades\n");
fflush(stdout);
for (i = 0; i<s; i++) {
printf("a[%d] = ", i);
fflush(stdout);
scanf("%d", &a[i]);}
for (i=0; i<s; i++){
if (a[i]<51){
gru=2;}
if (a[i]>50 && a[i]<69);{
gru=3;}
if (a[i]>69 && a[i]<=85){
gru=4;}
if (a[i]>85 && a[i]<=100){
gru=5;}
printf("Grade: %d %d \n", a[i], gru);
fflush(stdout);
}
return 0;
}
Alterei o programa e consegui fazer funcionar para as notas 1-5, (embora continue a dar erro esse erro) mas não para A-F.
Código funcional, mas com erro:
#include <stdio.h>
#include "dz5 2.c"
int main(){
int i, a[100], s;
printf("Introduce the number of students ");
fflush(stdout);
scanf("%d", &s);
if (s > 100)
s = 100;
printf("Introduce their grades\n");
fflush(stdout);
for (i = 0; i<s; i++) {
printf("a[%d] = ", i);
fflush(stdout);
scanf("%d", &a[i]);
printf("Grade %d: %d, %s \n ", a[i], gradru(a[i]);
fflush(stdout);
}
return 0;
}
int gradru(int v){
if (v > 85) return 5;
else if (v > 68) return 4;
else if (v > 50) return 3;
else if (v >= 0) return 2;
return 0;
}
Programa completo:
#include <stdio.h>
#include "dz5 2.c"
int main(){
int i, a[100], s;
printf("Introduce the number of students ");
fflush(stdout);
scanf("%d", &s);
if (s > 100)
s = 100;
printf("Introduce their grades\n");
fflush(stdout);
for (i = 0; i<s; i++) {
printf("a[%d] = ", i);
fflush(stdout);
scanf("%d", &a[i]);
printf("Grade %d: %d, %s \n ", a[i], gradru(a[i]), gradus(a[i]));
fflush(stdout);
}
return 0;
}
int gradru(int v){
if (v > 85) return 5;
else if (v > 68) return 4;
else if (v > 50) return 3;
else if (v >= 0) return 2;
return '-';
}
char gradus(int v){
if (v > 94) return 'A';
else if (v > 85) return 'B';
else if (v> 68) return 'C';
else if (v > 60) return 'D';
else if (v > 50) return 'E';
else if (v >= 0) return 'F';
return 0;
}