您的位置:

用c语言编写程序模拟tlb,如何用c语言编写程序

本文目录一览:

用C语言编写二进制数运算模拟程序

用数组模拟就行。

思路:

1、将输入转化成二进制数,逆序存入数组中。

2、用两数组模拟四则运算,并将运算的结果存入第三个数组中。

3、逆序输出第三个数组。

希望对你有帮助!

用C语言编写程序 提示用户输入一个数字并显示该数 使用字符模拟七段显示器效果

#include stdio.h

#include string.h

#define MAX_DIGHTS 10

const int segments[10][7] = {

    {1, 1, 1, 1, 1, 1, 0}, /* 0 */

    {0, 1, 1, 0, 0, 0, 0}, /* 1 */

    {1, 1, 0, 1, 1, 0, 1}, /* 2 */

    {1, 1, 1, 1, 0, 0, 1}, /* 3 */

    {0, 1, 1, 0, 0, 1, 1}, /* 4 */

    {1, 0, 1, 1, 0, 1, 1}, /* 5 */

    {1, 0, 1, 1, 1, 1, 1}, /* 6 */

    {1, 1, 1, 0, 0, 0, 0}, /* 7 */

    {1, 1, 1, 1, 1, 1, 1}, /* 8 */

    {1, 1, 1, 1, 0, 1, 1}  /* 9 */

};

char dights[3][MAX_DIGHTS * 4];

void clear_dight_array(void);

void process_dights_array(int dight, int position);

void print_dights_array(void);

int main(void) {

    unsigned char numbers[MAX_DIGHTS];

    int ch, i = 0, j;

    clear_dight_array();

    printf("Enter a number: ");

    while ((ch = getchar()) != EOF  ch != '\n')

        if (i  MAX_DIGHTS  ch = '0'  ch = '9')

            process_dights_array(ch - '0', i++);

    print_dights_array();

    return 0;

}

void clear_dight_array(void) {

    memset(dights, ' ', sizeof dights);

}

void process_dights_array(int dight, int position) {

    int n = position * 4;

    if (segments[dight][0])

        dights[0][n + 1] = '_';

    if (segments[dight][1])

        dights[1][n + 2] = '|';

    if (segments[dight][2])

        dights[2][n + 2] = '|';

    if (segments[dight][3])

        dights[2][n + 1] = '_';

    if (segments[dight][4])

        dights[2][n]     = '|';

    if (segments[dight][5])

        dights[1][n]     = '|';

    if (segments[dight][6])

        dights[1][n + 1] = '_';

}

void print_dights_array(void) {

    int i, j;

    for (i = 0; i  3; i++) {

        for (j = 0; j  MAX_DIGHTS * 4; j++) {

            putchar(dights[i][j]);

        }

        putchar('\n');

    }

}

用c语言编写一个计算机程序

我对你提出的问题的题意的理解是编一个计算器程序。。。。。。。。。如果要是那样子的话我给出代码:

#include stdio.h

int main()

{

char cp;

int a, b;

scanf("%d %c %d", a, cp, b);

if (cp == '-')printf("%d", a - b);

else if(cp == '+')printf("%d", a + b);

else if (cp == '*')printf("%d", a * b);

else if (cp == '%')printf("%d", a % b);

return 0;

}

如果要知道这几个符号在机器中的实现机理的话:

+和-不说了*就相当于多做几遍加法。而%是用位运算之类的方法进行运算的所以%的效率最低

不知道是不是你的编译器有问题我的程序运行起来是得15的

你是否正确输入了????

用c语言编写程序,谢谢!!

纯模拟,看上去有点复杂,可是一点算法都没有。。。

#includeiostream

using namespace std;

int main()

{

int n,m,;

cinnm;

if (((n%4==0) and (n%100!=0)) or (n%400==0))

{

cout"Leap year,";

if (m==1) cout"Winter,31"endl;

if (m==2) cout"Winter,29"endl;

if (m==3) cout"Spring,31"endl;

if (m==4) cout"Spring,30"endl;

if (m==5) cout"Spring,31"endl;

if (m==6) cout"Summer,30"endl;

if (m==7) cout"Summer,31"endl;

if (m==8) cout"Summer,31"endl;

if (m==9) cout"Fall,30"endl;

if (m==10) cout"Fall,31"endl;

if (m==11) cout"Fall,30"endl;

if (m==12) cout"Winter,31"endl;

} else

{

cout"Common year,";

if (m==1) cout"Winter,31"endl;

if (m==2) cout"Winter,28"endl;

if (m==3) cout"Spring,31"endl;

if (m==4) cout"Spring,30"endl;

if (m==5) cout"Spring,31"endl;

if (m==6) cout"Summer,30"endl;

if (m==7) cout"Summer,31"endl;

if (m==8) cout"Summer,31"endl;

if (m==9) cout"Fall,30"endl;

if (m==10) cout"Fall,31"endl;

if (m==11) cout"Fall,30"endl;

if (m==12) cout"Winter,31"endl;

}

return 0;

}

望采纳。。。

用C语言编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程进行调度。

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

struct PCB {

char NAME[10]; /*进程名*/

int ROUND; /*进程轮转时间片*/

int REACHTIME; /*进程到达时间*/

int CPUTIME; /*进程占用CPU时间*/

int COUNT; /*计数器*/

int NEEDTIME; /*进程完成还要的CPU时间*/

char STATE; /*进程的状态*/

struct PCB *NEXT; /*链指针*/

};

struct LINK { /*PCB的链结构*/

struct PCB *RUN; /*当前运行进程指针*/

struct PCB *READY; /*就绪队列头指针*/

struct PCB *TAIL; /*就绪队列尾指针*/

struct PCB *FINISH; /*完成队列头指针*/

};

void INIT(LINK *); /*对PCB的链结构初始化*/

void INSERT(LINK *); /*将执行了一个单位时间片数且还未完成的进程的PCB插到就绪队列的队尾*/

void FIRSTIN(LINK *); /*将就绪队列中的第一个进程投入运行*/

void PRINT(LINK *); /*打印每执行一个时间片后的所有进程的状态*/

void PR(PCB *); /*打印一个进程的状态*/

int CREATE(LINK *,int); /*创建新的进程*/

void ROUNDSCH(LINK *); /*按时间片轮转法调度进程*/

void main() {

LINK pcbs;

int i;

INIT(pcbs);

i=0;

printf("创建5个进程\n\n");

while(i5) {

if(CREATE(pcbs,i+1)==1) {

printf("进程已创建\n\n");

i++;

}

else

printf("进程创建失败\n\n");

}

FIRSTIN(pcbs);

ROUNDSCH(pcbs);

}

void ROUNDSCH(LINK *p) {

PCB *pcb;

while(p-RUN!=NULL) {

pcb=(PCB *)malloc(sizeof(PCB));

strcpy(pcb-NAME,p-RUN-NAME);

pcb-ROUND=p-RUN-ROUND;

pcb-REACHTIME=p-RUN-REACHTIME;

pcb-CPUTIME=p-RUN-CPUTIME;

pcb-COUNT=p-RUN-COUNT;

pcb-NEEDTIME=p-RUN-NEEDTIME;

pcb-STATE=p-RUN-STATE;

pcb-NEXT=p-RUN-NEXT;

pcb-CPUTIME++;

pcb-NEEDTIME--;

pcb-COUNT++;

if(pcb-NEEDTIME==0) {

pcb-NEXT=p-FINISH-NEXT;

p-FINISH-NEXT=pcb;

pcb-STATE='F';

p-RUN=NULL;

if(p-READY!=p-TAIL)

FIRSTIN(p);

}

else {

p-RUN=pcb;

if(pcb-COUNT==pcb-ROUND) {

pcb-COUNT=0;

if(p-READY!=p-TAIL) {

pcb-STATE='W';

INSERT(p);

FIRSTIN(p);

}

}

}

PRINT(p);

}

}

void INIT(LINK *p) {

p-RUN=NULL;

p-TAIL=p-READY=(PCB *)malloc(sizeof(PCB));

p-READY-NEXT=NULL;

p-FINISH=(PCB *)malloc(sizeof(PCB));

p-FINISH-NEXT=NULL;

}

int CREATE(LINK *p,int n) {

PCB *pcb,*q;

pcb=(PCB *)malloc(sizeof(PCB));

flushall();

printf("请输入第%d个进程的名称:\n",n);

gets(pcb-NAME);

printf("请输入第%d个进程的轮转时间片数:\n",n);

scanf("%d",(pcb-ROUND));

printf("请输入第%d个进程的到达时间:\n",n);

scanf("%d",(pcb-REACHTIME));

pcb-CPUTIME=0;

pcb-COUNT=0;

printf("请输入第%d个进程需运行的时间片数:\n",n);

scanf("%d",(pcb-NEEDTIME));

pcb-STATE='W';

pcb-NEXT=NULL;

if(strcmp(pcb-NAME,"")==0||pcb-ROUND=0||pcb-NEEDTIME=0) /*输入错误*/

return 0;

q=p-READY;

while(q-NEXT!=NULLq-NEXT-REACHTIME=pcb-REACHTIME)

q=q-NEXT;

pcb-NEXT=q-NEXT;

q-NEXT=pcb;

if(pcb-NEXT==NULL)

p-TAIL=pcb;

return 1;

}

void FIRSTIN(LINK *p) {

PCB *q;

q=p-READY-NEXT;

p-READY-NEXT=q-NEXT;

q-NEXT=NULL;

if(p-READY-NEXT==NULL)

p-TAIL=p-READY;

q-STATE='R';

p-RUN=q;

}

void INSERT(LINK *p) {

PCB *pcb;

pcb=(PCB *)malloc(sizeof(PCB));

strcpy(pcb-NAME,p-RUN-NAME);

pcb-ROUND=p-RUN-ROUND;

pcb-REACHTIME=p-RUN-REACHTIME;

pcb-CPUTIME=p-RUN-CPUTIME;

pcb-COUNT=p-RUN-COUNT;

pcb-NEEDTIME=p-RUN-NEEDTIME;

pcb-STATE=p-RUN-STATE;

pcb-NEXT=p-RUN-NEXT;

p-TAIL-NEXT=pcb;

p-TAIL=pcb;

p-RUN=NULL;

pcb-STATE='W';

}

void PRINT(LINK *p) {

PCB *pcb;

printf("执行一个时间片后的所有进程的状态:\n\n");

if(p-RUN!=NULL)

PR(p-RUN);

if(p-READY!=p-TAIL) {

pcb=p-READY-NEXT;

while(pcb!=NULL) {

PR(pcb);

pcb=pcb-NEXT;

}

}

pcb=p-FINISH-NEXT;

while(pcb!=NULL) {

PR(pcb);

pcb=pcb-NEXT;

}

}

void PR(PCB *p) {

printf("进程名:%s\n",p-NAME);

printf("进程轮转时间片:%d\n",p-ROUND);

printf("进程到达时间:%d\n",p-REACHTIME);

printf("进程占用CPU时间:%d\n",p-CPUTIME);

printf("计数器:%d\n",p-COUNT);

printf("进程完成还要的CPU时间:%d\n",p-NEEDTIME);

printf("进程的状态:%c\n\n",p-STATE);

}

如何用C语言编写一个简单的程序!

上了大学有很多同学都在学习C语言,C++就是C语言的一种,那么怎么用c语言写一个简单的程序hello world呢,下边来给大家演示一下

工具/材料

电脑,c语言软件

01

鼠标左键双击c语言软件,打开,打开后界面如图,点击关闭即可

02

点击上方程序窗口左上角的文件,选择新建

03

在打开的窗口中选择文件,下边一般是第四个 c++Source file,输入文件名(hellw.c),一定要以“.c”为后缀结尾

04

进入编辑页面在,页面编辑源代码就可以

#includestdio.h

void main()

{

printf("hello world!"\n);

}

然后选择保存,打印,输出运行。

05

输出的效果就是这样了,一个简单的c语言程序就写好了

特别提示

所有的输入都要在英文半角的情况下输入,不然程序会不能识别,会报错。