#include <stdlib.h>
#include <string.h>
#define N 30
typedef struct student
{
long number
char name[10]
float score[3]
float sum
float ave
} STUDENT
void swapfloat(float *x,float *y)
void swaplong(long *x,long *y)
void swapchar(char x[],char y[])
int main()
{
STUDENT stu[N]
int i,j,k,l,n
printf("请输入学生人数:")
scanf("%d",&n)
printf("请输竖罩滑入学号、姓名和各科成绩\n")
for(i=0i<ni++)
{
scanf("%ld,%s",&stu[i].number,stu[i].name)
stu[i].sum=0
for(j=0j<3j++)
{
scanf("%f",&stu[i].score[j])
stu[i].sum=stu[i].sum+stu[i].score[j]
}
stu[i].ave=stu[i].sum/3
}
char cx[10]
for(i=0i<n-1i++)
{
for(j=i+1j<nj++)
{
if(stu[j].sum>stu[i].sum)
{
for(k=0k<3k++)
{
swapfloat(&stu[j].score[k],&stu[i].score[k])
}
swapfloat(&stu[j].sum,&stu[i].sum)
swapfloat(&stu[j].ave,&stu[i].ave)
swaplong(&stu[j].number,&stu[i].number)
swapchar(stu[j].name,stu[i].name)
}
}
}
printf("请闷宴输入要查询余腊的学生姓名:")
scanf("%s",cx)
for(i=0i<ni++)
{
if(strcmp(cx,stu[i].name)==0)
printf("%s:%ld%6.1f%6.1f%6.1f 总分:%.1f,排名为第%d名\n",stu[i].name,stu[i].number,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,i+1)
}
system("PAUSE")
return EXIT_SUCCESS
}
void swapfloat(float *x,float *y)
{
float temp
temp=*x
*x=*y
*y=temp
}
void swaplong(long *x,long *y)
{
long temp
temp=*x
*x=*y
*y=temp
}
void swapchar(char x[],char y[])
{
char temp[10]
strcpy(temp,x)
strcpy(x,y)
strcpy(y,temp)
}
可以通过system 函数,调用dos命令taskkill实现关闭正在运行的应用程序。如
system("taskkill /im notepad.exe")
会关闭记事本镇宏应用。
system("taskkill \F /pid 1234 \T")
会强制结束pid为1234的进程及其子进程。
关于taskkill的详细描述如下:
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
参数列表:
/S system 指定要连接到的远程系统。
/U [domain\]user 指定应该在哪个用户上下文
执行这个命令。
/P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。
/F 指定要强行终止的进程。
/FI filter 指定筛选进或筛选出查询的的任务。
/PID process id 指定要终止的进程的PID。
/IM image name 指定要终止的进程的宴让图像名。通配符 '*'可用来指定所有图像名。
/T Tree kill: 终止指定的进程和任何由此启动的子进程。
/? 显示帮助/用法。
筛选器:
筛选器名 有效运算符 有效值
----------- --------------- --------------
STATUS eq, ne 运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 钟,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用,单位为 KB
USERNAME eq, ne 用户名,格式为
[domain\]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
注晌旅局意: 只有带有筛选器的情况下,才能跟 /IM 切换使用通配符 '*'。
注意: 远程进程总是要强行终止,
不管是否指定了 /F 选项。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)