C语言程序设计求助
题目如图迫不得已发个照片。
发帖目的:求个思路 本帖最后由 liyitong 于 2022-12-17 19:52 编辑
你是来抄答案的吧?
这需要什么思路?直接按照题目要求硬怼就行了,不需要算法和什么技巧。
——————————
你这是期末大作业吧?{:1_908:} 字典吧,如果没记错
Yron 发表于 2022-12-17 19:43
字典吧,如果没记错
可否具体说说 liyitong 发表于 2022-12-17 19:24
你是来抄答案的吧?
这需要什么思路?直接按照题目要求硬怼就行了,不需要算法和什么技巧。
—————— ...
巨巨救救我吧 定义一个结构体,字段有姓名、行程、健康码等要求的信息,定义一个结构体数组存放刚才定义的结构体,并用表上信息实例化结构体数组,随机将某结构体成员对应字段改为阳性,按上面的规则写个循环修改结构体数组里的数据就行了 注册个chatGPT帮你写吧 数据库可以用文件操作来实现,其他的定义好结构体即可 我怀疑这就是你的期末作业。。。 #include <stdio.h>
#include <string.h>
#define t "阴性"
#define f "阳性"
#define g "绿码"
#define r "红码"
#define y "黄码"
typedef struct geren
{
int id;
char name;
char shangwu;
char xiawu;
char hesuan;
char xcm;
} xinxijieguo;
xinxijieguo xinxi={{1} };
int create_geren(int id, char *name, char swxc, char xwxx, char *hesuan, char *xcm, int position)
{
xinxi.id = id;
strcpy(xinxi.name, name);
xinxi.shangwu = swxc;
xinxi.xiawu = xwxx;
strcpy(xinxi.hesuan, hesuan);
strcpy(xinxi.xcm, xcm);
return 0;
}
int create_all(char *s)
{
create_geren(1,"name1",'A','B',t,g,0);
create_geren(2,"name2",'C','D',t,g,1);
create_geren(3,"name3",'E','F',t,g,2);
create_geren(4,"name4",'A','D',t,g,3);
create_geren(5,"name5",'B','E',t,g,4);
create_geren(6,"name6",'F','A',t,g,5);
create_geren(7,"name7",'C','F',t,g,6);
create_geren(8,"name8",'E','B',t,g,7);
create_geren(9,"name9",'E','D',t,g,8);
create_geren(10,"name10",'A','C',t,g,9);
return puts(s);
}
int show_biaoti()
{
return printf("%5s %7s %9s %9s %9s %7s\n", "编号","姓名","上午行程","下午行程", "核酸信息","行程码");
}
int show(xinxijieguo xinxi, int bianhao=10, int tag=0)
{
int i=0;
if ( tag)
{
while (i<10)
{
if (xinxi.id==bianhao)
{
printf("%5d %7s %9c %9c %9s %7s\n", xinxi.id, xinxi.name , xinxi.shangwu , xinxi.xiawu , xinxi.hesuan , xinxi.xcm);
return i;
}
i++;
}
}
while (i<10)
{
if (xinxi.id)
{
printf("%5d %7s %9c %9c %9s %7s\n", xinxi.id, xinxi.name , xinxi.shangwu , xinxi.xiawu , xinxi.hesuan , xinxi.xcm);
}
i++;
}
return i;
}
int suiji_yang(int bianhao) //第一问,随机阳一个
{
if (bianhao>10 || bianhao<1)
{
return puts("未找到对应信息。");
}
else
{
show_biaoti();
strcpy(xinxi.hesuan, f);
strcpy(xinxi.xcm, r);
return show(xinxi, bianhao, 1);//参数1表示只显示bianhao所在的一行
}
}
int mijie_huangma(int bianhao) //第二问,行程码变黄
{
puts("同一时间去过同一地点的情况: ");
show_biaoti();
int i=0;
while(i<10)
{
if (xinxi.shangwu==xinxi.shangwu || xinxi.xiawu==xinxi.xiawu)
{
strcpy(xinxi.xcm, y);
show(xinxi, i+1 ,1);
}
i++;
}
return i;
}
int yangzhuanyin(int bianhao) //第三问,阴性转绿码,同行程都转
{ //其实就是改一下第二问的处理结果
if (strcmp(xinxi.hesuan,t)==0)
{
return puts("当前对象是阴性,无法执行阳转阴操作。");
}
show_biaoti();
int i=0;
while(i<10)
{
if (xinxi.shangwu==xinxi.shangwu || xinxi.xiawu==xinxi.xiawu)
{
strcpy(xinxi.hesuan, t);
strcpy(xinxi.xcm, g);
//show(xinxi, i+1 ,1);
}
i++;
}
show(xinxi,10);
return i;
}
int main()
{
int bianhao2,bianhao3;
create_all("一共创建了10组数据。");
show(xinxi);
printf("属于一个1-10之间的整数:");
scanf("%d",&bianhao2);
suiji_yang(bianhao2);
mijie_huangma(bianhao2);
printf("属于要阳转阴的编号:");
scanf("%d",&bianhao3);
yangzhuanyin(bianhao3);
//printf("%s %s %s %s %s\n",t,f,g,r,y);
return 0;
}
这两天居家养病,烧迷糊了,今天有点好转,做个题恢复恢复感觉。
题目不难,但是非常考验基础。没有什么高端操作,不需要设计分析算法。
结构体遍历和字符串比较即可解决所有问题。
页:
[1]
2