我需要编写一个代码来实现这一点:您输入姓名和名字以及成绩。仅对于 >= 10 的成绩,您使用反向排序打印学生的姓名和名字。示例:
鲍勃 迪伦 12 罗伯特 帕特 9 克里斯 斯特罗齐 15 乔什 站 11
会给 :
克里斯·斯特罗齐 15 鲍勃·迪伦 12 乔什·斯塔 11.
我的错误在 strcpy 行:
函数“strncpy”的参数太少| assing 'strncpy' 的参数 1 使指针从整数而不进行强制转换
char tab_nom[N][M] ;
char tab_prenom[N][M] ;
float tab_notes[N];
char tmp_n, tmp_p;
int i,j,tmp;
for (i=0;i<N;i++)
{
printf("Saisissez le nom %d :", i+1);
scanf("%s",tab_nom[i]);
printf("Saisissez le prenom %d :", i+1);
scanf("%s",tab_prenom[i]);
printf("Saisissez la note %d :", i+1);
scanf("%f",&tab_notes[i]);
}
for (i=0;i<N;i++)
{
for(j=0; j< N-1 ; j++)
{
if (tab_notes[j] < tab_notes[j+1])
{
tmp=tab_notes[j];
tab_notes[j]=tab_notes[j+1];
tab_notes[j+1]=tmp;
strcpy(tmp_n,tab_nom[j]);
strcpy(tab_nom[j],tab_nom[j+1]);
strcpy(tab_nom[j+1],tmp_n);
strcpy(tmp_p,tab_prenom[j]);
strcpy(tab_prenom[j],tab_prenom[j+1]);
strcpy(tab_prenom[j+1],tmp_p);
}
}
}