【TUM-EI-Programmieren】406 SMS

#include <stdio.h>
#include <stdlib.h>


struct SMS 
{
	char number[14];
	char text[161];

	struct SMS *next;
};


struct Queue 
{
	struct SMS *front;
	struct SMS *back;
};


void push(struct Queue *queue, struct SMS *new)
{
 if(queue->front == NULL)
 {
     queue->front = queue->back = new;
 }
 else
 {
     queue->back->next=new;
     new->next=NULL;
     queue->back=new;
 }
}




struct SMS *pop(struct Queue *queue)
{
    struct SMS * buf;
 if(queue->front == NULL) return NULL;
 if(queue->front == queue->back) 
 {
     buf = queue->front;
     queue->front = queue->back=NULL;
     return buf;
 }
 buf = queue->front;
 queue->front=queue->front->next;
 return buf;
}



int main()
{
	char response = 'n';
	struct Queue queue = {NULL, NULL};
	struct SMS *sms = NULL;


	do
	{
		sms = (struct SMS *) malloc(sizeof(struct SMS));

		printf("Zielnummer: ");
		scanf("%13s", sms->number);

		printf("SMS-Text: ");
		scanf("%160s", sms->text);

		push(&queue, sms);

		printf("Weitere SMS (j/n): ");
		scanf(" %c", &response);

	} while (response != 'n' && response != 'N');

	printf("\n");	
	while( (sms = pop(&queue)) )
	{
		printf("Sende ... \n");
		printf("%s - %s\n", sms->number, sms->text);
		printf("      ... fertig\n\n");
		free(sms);
	}

	printf("\nEine weitere SMS kommt an ...\n\n");
	sms = (struct SMS *) malloc(sizeof(struct SMS));

	printf("Zielnummer: ");
	scanf("%13s", sms->number);
	
	printf("SMS-Text: ");
	scanf("%160s", sms->text);
		
	push(&queue, sms);

	printf("\n");
	sms = pop(&queue);
	printf("Sende ... \n");
	printf("%s - %s\n", sms->number, sms->text);
	printf("      ... fertig\n\n");
	free(sms);

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值