当前位置:首页 » 编程语言 » c语言中s00
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中s00

发布时间: 2023-05-23 02:33:25

‘壹’ 在c语言中&s[0].name和要s[0].name有什么区别

在c语言中&表示取地址运算符
&s[0].name表示s[0]的name成员的地址,s[0].name表示是s[0]的name成员。
根据你的描述,name成员应该属于字符串,而C语言中规定,字符串的串名就是其首地址,所以s[0].name就是地址,&s[0].name反而就错了。

‘贰’ c语言中int n,s=0是表示n=0,s=0吗

不是,只是定义了两个int变量,n没有初始化,要想n=0,s=0,可以n=s=0;

‘叁’ 这道c语言怎么写

根据题意:

要验证学号输入,应该有一个学生名单。

所以我定义了init函数来初始化一个学生名单,只是测试用数据,你想要手动输入学生名单,请修改该函数。

由于实现动态刷新信息,用到getch来暂停刷新,这个函数头文件conio在windows下有效,你要是使用的其他操作系统,可以自定义类似函数来替换,或者直接删除所有getch()和system("cls")语句。

命令符的输入验证按照题目要求。

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include <string.h>

#include <conio.h>

#define STUN 5//学生最大人数

#define CN 100//输入命令符号字符串最大个数

typedef struct stu//学生个人信息,如想添加比如班级、年级等,自行添加

{

char id[20];//学号

char name[10];//姓名

float score;//成绩

}STU;

STU *init();//初始化一组学生信息

void showStus(STU *stus);//打印学生信息

void cmdA(STU *);//录入学生成绩,判断等级

void cmdH();

void cmdQ();

int cmdGet();//识别命令A、H、Q分别返回1、2、3。输入无效命令时返回0


int main()

{

int n=0;

STU *stus=NULL;

system("cls");

stus=init();

while(!n)

{

printf("[StuSc3] ");

n=cmdGet();

if(!n)

{

printf("命令必须以A、H、Q开头,不区分大小写,忽略空格和tab字符 ");

printf("按任意键返重新输入命令符。。。 ");

getch();

}

switch(n)

{

case 1:showStus(stus);cmdA(stus);break;

case 2:cmdH();break;

case 3:cmdQ();return 0;

}

n=0;

system("cls");

}

return 0;

}

STU *init()

{

int i;

char nstr[25];

static STU stus[STUN];

for(i=0;i<STUN;i++)

{

strcpy(stus[i].id,"S00");

itoa(i+1,nstr,10);

strcat(stus[i].id,nstr);

strcpy(stus[i].name,"学生");

strcat(stus[i].name,nstr);

stus[i].score=0;

}

return stus;

}

void showStus(STU *stus)//打印学生信息

{

int i;

printf("当前学生信息: ");

for(i=0;i<STUN;i++){

printf("学号:%s 姓名:%s 成绩:%.1f ",stus[i].id,stus[i].name,stus[i].score);

printf("%s%s%s ",stus[i].score>=85?"优秀":"",stus[i].score<85 && stus[i].score>=60?"合格":"",stus[i].score<60?"不合格":"");

}

printf(" ");

}

void cmdA(STU *stus)

{

STU *stuSave=NULL;

int i,flag;

char id[20];//学号

float score;//成绩

while(1)

{

printf("请输入学号及成绩:(输入END结束输入) ");

scanf("%s",id);

if(strcmp(id,"END")==0)

break;

flag=0;

stuSave=NULL;

for(i=0;i<STUN;i++)

if(strcmp(stus[i].id,id)==0)

{

flag=1;

stuSave=&stus[i];

break;

}

if(!flag)

{

printf("该学生不存在! 任意键重新输入。。。 ");

getch();

continue;

}

scanf("%f",&score);

if(score<0){

printf("成绩不能为负数! 任意键重新输入。。。 ");

getch();

continue;

}

stuSave->score=score;

system("cls");

showStus(stus);

}


}

void cmdH()

{

printf("使用帮助: ");

printf("输入命令符A、H、Q,不区分大小写,忽略开头的空格及tab字符,忽略之后所有字符 ");

printf("命令A:录入学生成绩,判断成绩等级 ");

printf("命令H:帮助文档 ");

printf("命令Q:退出程序 ");

printf("按任意键返回命令符输入。。。 ");

getch();

}

void cmdQ()

{

printf("再见! ");

printf("按任意键结束程序。。。 ");

getch();

}

int cmdGet()

{

char inStr[CN],*p=inStr;

printf("ST3> ");

scanf("%s",inStr);

while(*p!=0)

{

if(*p=='A' || *p=='a')

return 1;

if(*p=='H' || *p=='h')

return 2;

if(*p=='Q' || *p=='q')

return 3;

if(*p!=' ' && *p!=' ')//跳过空格和tab

{

printf("无效命令 ");

return 0;

}

p++;

}

return 0;

}

‘肆’ 在c语言中s[0]-'0是什么意思

s[0]是char型,一般用 s[0]-'0'表示整型,如果你想要s[0]的ASCII码值,你可以使用s[0]-'0',减‘0’,是因为字符‘0’对应的ASCII码值是0,这样相减的结果直接就是s[0]字符的ASCII码值。