Mon programme a besoin de ces fonctionnalités:Erreur dans strcmp() lorsque j'utilise une structure en tant que paramètre
NOTE: Je ne comprend pas les codes pour les numéros 1,2 & 4 depuis je les ai déjà fini. Le 3ème est mon problème.
- Le programme devrait permettre en permanence l'entrée de l'utilisateur aussi longtemps que l'utilisateur le souhaite. (Dynamiquement)
- Obtenir la note finale d'un étudiant (moyenne de frst_grade, scnd_grade, fnl_grade)
- Obtenez le nombre d'étudiants par collège.
- Obtenez le nom de l'élève en entrant s_id.
Mon problème est de savoir comment comparer l'entrée de recherche à l'entrée de l'utilisateur dans s_college pour obtenir le nombre d'étudiants. La seule façon dont je sais est en utilisant strcmp() mais il me donne cette erreur: conversion invalide de 'char' en 'const char *' [-fpermissive]
Alors comment puis-je comparer ces deux pour obtenir le nombre de étudiants par collège?
#include<stdio.h>
#include<string.h>
#include<conio.h>
int i,n,sum,search,num=0,ctr=0;
char answer,choice,choice2,search2;
struct record{
int s_id;
char s_name[100];
char s_course;
char s_college[5];
int s_scoress;
}id[100],name[100],course,college[100],scores;
struct s_scores{
int frst_grade;
int scnd_grade;
int fnl_grade;
}first,second,final;
void ADD();
void COLLEGE();
void ID();
void COLLEGE(){
printf("Enter college (abbreviation only)");
scanf("%s",&search2);
for(i=0;i<num;i++){
if(strcmp(college[i].s_college,search2)==0);
ctr++;
}
printf("The number of students in %s is %d",search2,ctr);
Votre' search2' est un 'char' et non une chaîne. Corrige le. – Ouss4
Augmentez le niveau d'avertissement de votre compilateur au maximum, puis corrigez le code jusqu'à ce que plus aucun avertissement ne soit émis. Ce "*' char search2; ... strcmp (..., search2) '*" devrait faire en sorte que le compilateur vous envoie un avertissement. Prenez des avertissements sérieux. – alk
Avez-vous par hasard un fichier de données dont vous êtes censé lire les valeurs? Si tel est le cas, cela serait également nécessaire ici pour prendre en charge des tests valides. –