Pregunta en lenguaje C, recompensa de 100 puntos
/*?
La primera pregunta: Se sabe que N (<=50) estudiantes de una determinada clase han realizado exámenes en 3 cursos, incluidos matemáticas avanzadas, inglés y lengua C. 3 ¿Las calificaciones del curso?
y la puntuación total de los tres cursos se almacenan en una matriz bidimensional, y los nombres de los estudiantes se almacenan en otra matriz de caracteres bidimensional.
Ordene los nombres de los estudiantes por puntuación total (de mayor a menor) y genere los resultados de la clasificación (número de serie y nombre).
?
*/?
#include?"stdafx.h"?
#include?"stdio.h"?
struct?scoreInfo{?
int?scoreMath;?
int?scoreProC;?
int?scoreEng;?
int? scorSum;?
};?
struct?studentInfo{?
char?name[20];?
struct?scoreInfo ?_scoreInfo;?
};?
void?inputInfo(struct?studentInfo?*stu,int?n)?
{?
int?i?=?0;?
for(i?=?0;?i?
{?
printf("Nombre del %d estudiante:",i+1);?
gets(stu[i].name);?
printf( " La puntuación de matemáticas del estudiante %d:",i+1);?
scanf("%d",&stu[i]._scoreInfo.scoreMath);?
getchar ();?
printf("Puntuación en lenguaje C del estudiante %d:",i+1);?
scanf("%d",&stu[i] ._scoreInfo .scoreProC);?
getchar();?
printf("La puntuación de inglés del %d estudiante: ",i+1);?
scanf("%d",&stu[i]._scoreInfo.scoreEng);?
getchar();?
}?
printf (" \n");?
}?
void?outputInfo(struct?studentInfo?*stu,int?n)?
{?< /p >
int?i?=?0;?
para?(i?=?0;?i?
{ ?
stu[i]._scoreInfo.scorSum?=?stu[i]._scoreInfo.scoreEng?+?stu[i]._scoreInfo.scoreMath?
+?stu[ i] ._scoreInfo.scoreProC;?
}?
printf("Nombre\tPuntuación de Matemáticas\tPuntuación de Idioma\tPuntuación de Inglés\tPuntuación Total\n");? p>for?(i?=?0;?i?
{?
printf("%s\t %d\t\ t%d\t\t%d\t\t%d\n",stu[i].nombre,stu[i]._scoreInfo.scoreMath,?stu?
[i]._scoreInfo .scoreProC?
,stu[i]._scoreInfo.scoreEng,stu[i]._scoreInfo.scorSum);?
}?
}?
void?arry_max_to_min(struct?studentInfo?*stu,int?n)?
{?
int?indexi;? p>
int?indexj;?
struct?studentInfo
?_temp;?
//?struct?stdentInfo?*ptemp;?
//?ptemp?=?stu;?
para?(indexi ?=?0;?indexi?
{?
para?(indexj?=?indexi+1;?indexj?
{?
if?(stu[indexi]._scoreInfo.scorSum?
{?
_temp?=?stu[indexj];?
stu[indexj]?=?stu[indexi];?
stu[indexi] ?=?_temp;?
}?
}?
}?
printf("Las puntuaciones totales están ordenadas desde las más altas a bajo :\n");?
para?(indexi?=?0?;?indexi?
{?
printf("%s\t%d\t\t%d\t\t%d\t\t%d\n",stu[indexi].nombre,stu[indexi]._scoreInfo.scoreMath, ?stu ?
[indexi]._scoreInfo.scoreProC?
,stu[indexi]._scoreInfo.scoreEng,stu[indexi]._scoreInfo.scorSum);?
}?
}?
int?main()?
{?
int?studentNum;? p>
struct?studentInfo?stu[50];?
printf("Ingrese el número de estudiantes:");?
scanf("%d",&studentNum );?
getchar();?
inputInfo(stu,studentNum);?
outputInfo(stu,studentNum);?
arry_max_to_min( stu,studentNum);?
return?0;?
}?
Ejecutar resultado:?
Entrar el número de estudiantes: 3 ?
¿El nombre del primer estudiante: Jack?
La puntuación de matemáticas del primer estudiante: 89?
La puntuación de lenguaje C del primer estudiante: 86 ?
La puntuación de inglés del primer estudiante: 96?
El nombre del segundo estudiante: Tom?
La puntuación de matemáticas del segundo estudiante: 95 ?
La puntuación en lenguaje C del segundo estudiante: ¿94?
La puntuación en inglés del segundo estudiante: ¿92?
El nombre del tercer estudiante: Star ?
El tercero puntuación de matemáticas del estudiante: 98?
Puntuación de lenguaje C del tercer estudiante: 78?
puntuación de inglés del tercer estudiante: 89?
¿Nombre de puntuación C? ¿Puntuación de idioma? ¿Puntuación de inglés?
¿Jack?89?86?96?271?
¿Tom? ¿Estrella?98?78?89?265?
Puntuaciones totales de mayor a menor:?
¿Tom 95?94?92?281?
Jack? ?89?86?96?271?
Estrella?98?78?89?265?
Presione ?any?ke
y?to?continue?
/*?
Segunda pregunta: Escribir función fun(char?s[?],?int?num[?]) cuya función es Contar el número de apariciones de caracteres numéricos, letras mayúsculas, ?
letras minúsculas y caracteres de espacio en la cadena ?s?, y los resultados estadísticos se almacenan en la matriz numérica. Rediseñe la función principal y llame a la función divertida para lograr la función esperada.
?
*/?
#include?"stdafx.h"?
#include?"stdio.h"?
#include?"string.h"?
void?fun(char?*s,?int?*num)?
{?
int? longitud;?
int?index;?
int?sum_number?=?0;?
int?sum_char?=?0;?
int?sum_spac?=?0;?
int?sum_CHAR?=?0;?
longitud?=?strlen(s);?
¿para?(index?=?0;?index?
{?
si?((*s?>=?' 0')?&&?(*s?<=?'9')?)?
{?
número_suma++;?
}? p>
¿si?((*s?>=?'a')?&&?(*s?'z')?)?
{?
sum_char++;?
}?
si?((*s?>=?'A')?&&?(*s?<=?'Z')?) ?
{?
sum_CHAR++;?
}?
si?(*s?==?0x20?)?
{?
sum_spac++;?
}?
s++;?
}?
num[0]?=?sum_number;?
num[1]?=?sum_CHAR;?
num[2]?=?sum_char;?
num[3]?=?sum_spac;?
}?
int?main()?
{?
char?testarry[50];?
int?num[4];//Se usa para poner números num[0], num[1] letras mayúsculas, num[2] letras minúsculas, num [3]¿El número de números de espacio?
//num?=?(int?*)malloc(sizeof(int)?*?4);?
printf(" Introduzca la cadena: ");?
gets(testarry);?
fun(testarry,num);?
//?printf(" %s",testarry);?
printf("Número de números: %d\nNúmero de letras mayúsculas: %d\nNúmero de letras minúsculas: %d\nEspacios y números Número: %d\n ",?
núm[0],núm[1],núm[2],núm[3]);?
retorno?0; ?
}?
Resultado de ejecución:?
Ingrese la cadena: 12345?AFASDFE?74897?asfdasf?
Número numérico de letras: 10? p>
Número de letras mayúsculas: 7?
Número de letras minúsculas: 7?
Número de espacios y dígitos:
¿Presionar? ¿Alguna?clave?para?continuar?
La tercera pregunta:?
#include?"stdafx.h"?
#include?"stdio.h "?
int?main()?
{?
int?i;?
int?j;?
int?k;?
int?half?=?0;?
char?prin;? p>
prin?=?'A';?
¿para?(i?=?0;?i?26;?i++)?
{?
prin?=?'A';?
for?(j?=?26-i-1;j?>?0;?j--)? p>
{?
printf("?");?
}?
para?(k?=?1;?k< =?2*i+1?;k++)?
{?
mitad?=?k;?
si?(--mitad?< =?i)?
{?
printf("%c",prin++);?
}?
¿otra cosa?
{?
printf("%c",--prin?-?1);?
}?
} ?
printf("\n");?
}?
return?0;?
}?
Resultado de ejecución:?
A?
ABA?
ABCBA?
ABCDCBA?
¿ABCDEFGHIJIHGFEDCBA?
¿ABCDEFGHGFEDCBA?
¿ABCDEFGFEDCBA?
¿ABCDEFGHGFEDCBA?
¿ABCDEFGHIHGFEDCBA?
ABCDEFGHIJIHGFEDCBA? p>
¿ABCDEFGHIJKJIHGFEDCBA?
¿ABCDEFGHIJKLKJIHGFEDCBA?
¿ABCDEFGHIJKLMLKJIHGFEDCBA?
¿ABCDEFGHIJKLMNMLKJIHGFEDCBA?
ABCDEFGHIJKLMNONMLKJIHGFEDCBA?
¿ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA?
ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA?
ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA?
¿Presione?alguna?tecla?para?continuar?
[Nota adicional:]Vence a Baidu ha bloqueado espacios y TAB en la columna, por lo que no se puede ver el efecto.
Si es necesario, ¿puedes enviarme un correo electrónico? El efecto de impresión no se puede ver arriba. Jaja
Presiona?cualquier?tecla?para?continuar