求c语言大佬求解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37428942/article/details/79833413
#include<stdio.h>
main()

{

    char b,c='y';
scanf("%c", &b);
printf("\n");
if (b == 'Y')
        c=getchar();
printf("%c",c);

}

各位c语言大神请看这一个简短的代码,我从键盘输入b的值得时候输入的是Y,按了enter键之后直接就结束了,没有出入c的值,为什么它没让我在键盘重新输入c的值呢?求大神解答,另外碰巧发现输入Yg之后,才会把c的值输出来,这又是为什么呢?求各位大神解答,加急!附上两幅图以供参考。


展开阅读全文

大佬注释c语言数据结构线性表

10-20

求大佬帮忙注释一下,初学小白,什么都看不懂nnn```n #include n#include n#include n#define OK 1n#define ERROR -1n#define MaxSize 100ntypedef int status;ntypedef struct stun char name[20];n int age;n int no;nStu;ntypedef struct sqlistn Stu *Elem;n int length;nSqlist;nstatus Init_List(Sqlist *L)nn L->Elem=(Stu *)malloc(MaxSize*sizeof(Stu));n if(!L->Elem)n n printf("Allocation Error!\n");n return ERROR;n n L->length=0;n return OK;nnstatus Insert_List(Sqlist *L,int pos,Stu *s)nn int k;n if(pos<1 || pos>L->length+1)n return ERROR;n for(k=L->length-1;k>=pos-1;k--)n L->Elem[k+1]=L->Elem[k];n printf("Input information of the new student (name age number):\n");n scanf("%s %d %d",s->name,&s->age,&s->no);n L->Elem[pos-1]=*s;n L->length++;n return OK;nnstatus Del_List(Sqlist *L,char *name)nn int i;n if(L->length==0)n return ERROR;n for(i=0;ilength;i++)n if(strcmp(name,L->Elem[i].name)==0)n break;n if(i==L->length)n n printf("Can not find %s.\n",name);n return ERROR;n n while(ilength-1)n n L->Elem[i]=L->Elem[i+1];n i++;n n L->length--;n return OK;nnvoid Output(Sqlist *L)nn int i;n printf("The elements in the list:\n");n for(i=0;ilength;i++)n printf("student %d: %20s %3d %8d\n",i+1,L->Elem[i].name,L->Elem[i].age,\n L->Elem[i].no);n printf("\n");nnint main()nn Sqlist L;n Stu s;n int i,n;n char name[20];n Init_List(&L);n printf("Input the number of the students.\n");n scanf("%d",&n);n for(i=1;i<=n;i++)n Insert_List(&L,i,&s);n Output(&L);n printf("Input the position of the new student.\n");n scanf("%d",&n);n Insert_List(&L,n,&s);n Output(&L);n printf("Input the name of the student to be deleted.\n");n scanf("%s",name);n Del_List(&L,name);n Output(&L);n return OK;nnn```nn 问答

c语言 运行出错 大佬帮忙

05-28

#include n#includen#includen#includenn//定义全局变量nint isEmpty=0;//标志,判断链表是否为空 nn//!!!定义单链表结构体!!! ntypedef struct Noden int NUM;//类型总数 n char NAME[100];//各类型名称 n int num; //各类型下的货物总数n struct Node*next;nNode;nn//函数声明 nNode*create(int n,Node*L);nNode*input(Node*L);nNode*output(Node*L);nNode*outnum(Node*L);nNode*outname(Node*L);nNode*current(Node*L);nvoid search(Node*L);nvoid print(Node*L);nvoid searchnum(Node*L);nvoid searchname(Node*L);nvoid display(Node*L);n//========新增加的函数========nNode*append(Node*L); nn//主函数nvoid main()nn int x;n int n;//初次输入的大小 n Node *L;n if(!(L=(Node *)malloc(sizeof(Node)))) //分配空间n n printf("\n");n exit(1);n n n printf("欢迎使用我的仓库管理系统!\n"); n while(1);n n //主菜单开始 n printf("==========================\n");n printf("1.显示货物类型列表\n");n printf("2.增加货物类型\n");n printf("3.删除货物类型\n");n printf("4.货物入库\n");n printf("5.货物出库\n");n printf("6.库存显示\n");n printf("7.退出\n");n printf("==========================\n");n //主菜单结束n printf("选择1-7:");n scanf("%d",&x); n switch(x)n n case 1:;break;n case 2:create(n,L);break;n case 3:;break;n case 4:;break;n case 5:;break;n case 6:;break;n case 7:;break;n default:printf("input error!\nplaese input1-7");n n n nnnnnn//函数n//1.创建链表节点nNode*create(int n,Node*L)nn Node*pTail=L; n L->next=NULL;n Node*p;n p=(Node*)malloc(sizeof(Node));n if(p==NULL)n n printf("申请内存空间失败!\n");n n //利用尾插建立单链表 n int i;n for(i=1;i<=n;i++)n n printf("请输入第%d种类型编号:\n",i);n scanf("%d",&p->NUM);n printf("请输入第%d种类型名称:\n",i);n scanf("%s",&p->NAME);n printf("请输入第%d种类型库存:\n",i);n scanf("%d",&p->num);n pTail->next=p;n pTail=p;n n p->next=NULL;n return L; n n![图片说明](https://img-ask.csdn.net/upload/201805/28/1527489393_274380.png)n欢迎下面就运行不了了 问答

C语言

06-25

我是大一新生 我们有个考试 这个题目里的NEW 函数不知道啥意思,我们还没有学习呢。现在急须此题答案。偶见各位的帖子感觉的专业,所以小弟甚激动。特意求救于各位。因时间问题作业需要明天交所以希望大家帮个忙,答案需要特简单的 知识点都是基本的因为我不是这个专业的学生 所以学习的只是基础。。。。rn 课程设计任务书rnrn一、题目:03混合数据排序 rn二、目的与要求rn1. 目的:rn(1)通过该题目的设计,培养学生综合利用C++语言解决问题的能力,使学生理解和掌握C++中组的应用及排序算法,将所学知识转化为分析和设计简单实际问题的能力,并学会查资料和工具书,进行创新设计。rn(2)提高学生建立程序文档、归纳总结的能力。rn2. 基本要求: rn(1)要求用C++语言编程,在Visual C++环境下调试完成;rn(2)要求使用C++的结构体和自定义函数完成设计;rn(3)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。rn(4)程序调试通过后,完成程序文档的整理,加必要的注释。rn三、设计方法和基本原理rn1. 课题功能描述rn开发一个排序程序,用户输入长度(数据个数)可变的数据,输入字母,则按字符排序;输入数字,则按数字排序;输入字母和数字的混合数据,则首先区分数字和字母,然后各自排序。rn2. 基本原理rn1) 通过ASCII判断输入的是否为字母;rn2)用两个数组各自保存字符和数字。rn3. 问题解决方案(编程要求):rn编写程序,实现区分混合数据并实现排序,并且由用户选择升序或降序两种方式。rn例如:输入数据“A B D 3 5 6 4 F E”,则排序结果如选择“降序”如下图所示:、rn rn四、主要技术问题的描述:rn通过两个一维数组保存两种类型的数据,由于数组的大小不确定,可使用new函数分配数组存储空间。排序的算法可使用冒泡法或比较互换法,或其他方法。rn五、创新要求rn实现对字符串和数字的混合排序。rn六、课程设计的考核方式及评分方法rn1.考核方式rn(1) 学生要提交书面课程设计报告(A4纸打印);并将设计报告的电子文档、.cpp源文件和.h头文件放到一个文件夹里(如果是基于MFC的编程,另外还包括源程序的压缩包)上传到所对应班级的学生名称相应文件夹中。rn(2) 课程设计结束时,在机房当场验收。教师提供测试数据,由学生运行所设计的系统,检查运行结果是否正确,并回答教师提出的有关问题。rn2.评分方法rn根据出勤率、课程设计期间纪律、课程设计运行结果、课程设计报告及答辩情况综合评分。rn七、书写设计报告的要求(详细内容见“设计报告模板”)rn八、说明:课程设计的有关文档,“设计报告模板”和“课程设计要求”请在下载任务书处。 论坛

解,C语言,改错

10-31

#include rn#include rntypedef struct PCB_type rnrnrn char name ; //进程名rn int state ; //进程状态 rn // 2--表示"执行"状态rn // 1--表示"就绪"状态 rn // 0--表示"阻塞"状态rn int cpu_time ; //运行需要的CPU时间(需运行的时间片个数)rnPCB_type;rntypedef struct QueueNodernrn struct PCB_type PCB;rn struct QueueNode *next;rnQueueNode;rntypedef struct Queue rnrn struct QueueNode *head, *tail;rnQueue;rnstruct Queue rq,bq,runq; //ready队列、blocked队列、run队列rnvoid createq(struct Queue *q) //创建队列rnrn q->head=(QueueNode*) malloc(sizeof(QueueNode));rn q->tail=q->head; rn q->head->next=NULL;rnrnvoid enterq(struct Queue *q, struct QueueNode *x) //x结点入队列qrnrn x->next=NULL;rn q->tail->next=x;rn q->tail=x; rnrnstruct QueueNode* deleteq(struct Queue *q) //删除队首结点rnrnrn QueueNode *p;rn if(q->head==q->tail)return NULL;rn p=q->head->next; rn q->head->next=p->next;rn if(q->tail==p)q->tail=q->head;rn return p;rnrnvoid dispatch() //模拟调度函数rnrn int count=0;rn int counter=5;//唤醒处于阻塞队列队首进程的时间片rn QueueNode *p,*m;rn while((rq.head!=rq.tail)||(bq.head!=bq.tail))rn rn if(rq.head!=rq.tail)rn rn p=deleteq(&rq);rn enterq(&runq,p);rn p->PCB.state=2;rn printf("%c",p->PCB.name);rn p->PCB.cpu_time--;rn if(p->PCB.cpu_time>0)rn rn p->PCB.state=1;rn enterq(&rq,p); rn runq.head =runq.tail; rn rn else rn rn runq.head =runq.tail;rn free(p);rn rn rn rn rn count++; rn if(count==counter)rn rn if(bq.head!=bq.tail)rn rn m=deleteq(&bq);rn m->PCB.state=1;rn enterq(&rq,m);rn count=0;rn rn rn rnrnvoid main() //主函数,ready=2,blocked=3rnrn QueueNode r[2];rn QueueNode b[3];rn createq(&rq);rn createq(&bq);rn createq(&runq);rn for(int i=0;i<2;i++)rn rn printf("请输入就绪队列成员:");rn scanf("%c,%d,%d",&r[i].PCB.name,&r[i].PCB.cpu_time,&r[i].PCB.state);rn getchar();rn enterq(&rq,&r[i]);rn rn rn for(int j=0;j<3;j++)rn rn printf("请输入阻塞队列成员:");rn scanf("%c,%d,%d",&b[j].PCB.name,&b[j].PCB.cpu_time,&b[j].PCB.state);rn getchar();rn enterq(&bq,&b[j]);rn rn dispatch();rnrn 论坛

没有更多推荐了,返回首页