C语言
#include <stdio.h>
#include <string.h>
int isInteger(char* str) {
//判断某个字符串a是否为整数形式 ,是返回1,不是返回0
int len = strlen(str);
int res = strspn(str, "0123456789");
if (res >= len) {
return 1;
}
else {
return 0;
}
}
int strToInt(char* a) {
//字符串转数字,如果a不是整数类型返回-1
if (isInteger(a)) {
return atoi(a);
}
else {
return -1;
}
}
int main() {
char name[5];
char number[5];
char an1[5];
char an2[5];
int i = 0, j, k;
for (i = 0; i++; i < 5) {
printf("请输入学生的姓名,学号,以及成绩:");
scanf_s(&name[i]);
scanf_s(&number[i]);
scanf_s(&an1[i]);
scanf_s(&an2[i]);
}
printf("姓名 学号 成绩1 成绩2 平均成绩\t");
for (i = 0; i++; i < 5) {
j = strToInt(an1[i]);
k = strToInt(an2[i]);
printf("%s %d\t\n", name[i], number[i], an1[i], an2[i], (j+k)/2);
}
return 0;
}
只运行部分
暂无
正常输出学生的相关信息
首先你要输入5个学生,但char name[5]只是一个学生的名字,不是5个学生的。应该把四个学生信息定义为结构体
typedef struct _student
{
char name[20];
char number[20];
int score1,score2;
}student;
student stu[5];
for(int i=0;i<5;i++)
{
scanf_s("%s",stu[i].name,20);
scanf_s("%s",stu[i].number,20);
scanf_s("%d",&stu[i].score1);
scanf_s("%d",&stu[i].score2);
}