#include<stdio.h>
#include<string.h>
#define N 100
typedef struct AA
{
char name[20]
char phone[12]
char e_mail[30]
char relation[20]
}AA
/*1。输入新联系人2。删除指定的联系人(输入姓名,若找掉则删除该联系人的信息)
3。根据输入的与本人关系,显示联系信息4。显示所有联系人的信息设计菜单*/
int input__(AA * s)
{
int len = 0,i = 0,n
printf("请输入要添加的联系人个数,上限为%d个\n",N)
scanf("%d",&n)
for(i=0i<ni++)
{
printf("请依次输入第%d联系人的姓名、电话、邮箱以及与本人的关系(中间使用空格隔开即可):\n",i)
scanf("%s%s%s%s",s[i].name,s[i].phone,s[i].e_mail,s[i].relation)
}
return n
}
void delete__(AA *s,int *n)
{
int i = 0,j = 0,status = 0
char ca[20] = ""
printf("请输入要删除的联系人的姓名\n")
scanf("%s",ca)
for(i=0i<*ni++)
{
if(!strcmp(ca,s[i].name))
{
*n = *n-1
status = 1
for(j=ij<*nj++)
{
s[j] = s[j+1]
}
break
}
}
if(status == 0)
printf("没有找到要删除的人的信息\n")
else
printf("删除成功\n")
}
void show__relation(AA *s,int n)
{
int i = 0,status = 0
printf("请输入与联系人的关系\n")
char ca[20] = ""
scanf("%s",ca)
for(i=0i<ni++)
{
if(!strcmp(ca,s[i].relation))
{
printf("name:%15s\tphone:%15s\ne-mail:%15s\trelation:%15s\n",s[i].name,s[i].phone,s[i].e_mail,s[i].relation)
status = 1
}
}
if(!status)
printf("没有找到相应的信息\n")
}
void show__all(AA *s,int n)
{
int i = 0
for(i = 0 i <n i++)
{
printf("name:%15s\tphone:%15s\ne-mail:%15s\trelation:%15s\n",s[i].name,s[i].phone,s[i].e_mail,s[i].relation)
}
}
int main(void)
{
AA a[N]
int n = 0
int i
while(1)
{
printf("0------退出系统\n1------输入联系人信息\n2------删除指定联系人信息\n")
printf("3------显示与本人关系相通的联系人信息\n4------显示所有联系人的信息\n")
scanf("%d",&i)
if(i == 0)
break
switch(i)
{
case 1:n = input__(a)break
case 2:
if(n == 0)
{
printf("你还没有添加信息,请先添加信息:\n")
break
}
else
{
delete__(a,&n)
break
}
case 3:
{
if(n == 0)
{
printf("你还没有添加信息,请先添加信息:\n")
break
}
else
{
show__relation(a,n)
break
}
}
case 4:
{
if(n == 0)
{
printf("你还没有添加信息,请先添加信息:\n")
break
}
else
{
show__all(a,n)
break
}
}
default:
printf("您的选择有误,请重新选择\n")
break
}
}
return 0
}
//看看~~~刚刚写完~
//题意中的,菜单界面指的是什么?下面的code是之前写的#include<stdio.h>
//计算子串在父串中出现的次数
int strCount(char * str, char * sFind){
int count = 0
for(int i = 0 str[i]!='\0'i++){
int j = 0
for(j = 0 str[i+j]!='\0'&&sFind[j]!='\0'j++){
if(str[i+j]!=sFind[j])
break
}
if(sFind[j] == '\0')
count++
}
return count
}
int main(){
char a[1000]
char b[1000]
scanf("%s %s", a, b)
printf("%d\n", strCount(a, b))
return 0
}
#include <stdio.h>#include <stdlib.h>
#define STU_NUM 10 /*宏定义学生的数量*/
struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/
{
char stu_id[20]/*学生学号;*/
float score[3]/*三门课成绩;*/
float total/*总成绩;*/
float aver/*平均成绩;*/
}
/*排序用一个函数来实现*/
void SortScore(student *stu,int n)
{
student stud
for(int i = 0i <n-1i++)
for(int j = i+1 j <nj++)
{
if(stu[i].total <stu[j].total)
{
stud = stu[i]
stu[i] = stu[j]
stu[j] = stud
}
}
}
int main( )
{
student stu[STU_NUM]/*创建结构体数组中有10个元素,分别用来保存这10个人的相关信息。*/
/*输入这十个学生的相关信息*/
for(int i = 0i<STU_NUMi++)
{
printf("请输入第%d个学生的学号:",i+1)
scanf("%s",&stu[i].stu_id)
printf("输入第%d个学生的数学成绩:",i+1)
scanf("%f",&stu[i].score[0])
printf("输入第%d个学生的英语成绩:",i+1)
scanf("%f",&stu[i].score[1])
printf("输入第%d个学生的计算机成绩:",i+1)
scanf("%f",&stu[i].score[2])
stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2]
stu[i].aver = stu[i].total/3
}
printf("\n")
SortScore(stu,STU_NUM)/*调用排序函数*/
/*输出排序后的各学生的成绩*/
for(i = 0 i <STU_NUMi++)
{
printf("序号: %d\t",i)
printf("学号:%s\t",stu[i].stu_id)
printf("数学:%f\t",stu[i].score[0])
printf("英语:%f\t",stu[i].score[1])
printf("计算机:%f\t",stu[i].score[2])
printf("平均成绩:%f\t",stu[i].aver)
printf("总分:%f\t",stu[i].total)
printf("\n\n")
}
return 0
}
注:(源程序中主要标识符含义说明)
#define STU_NUM 10 /*宏定义学生的数量*/
struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/
{
char stu_id[20]/*学生学号;*/
float score[3]/*三门课成绩;*/
float total/*总成绩;*/
float aver/*平均成绩;*/
}