求一份100行左右的C语言程序,求4个C语言程序 每个100行左右 大一水平的
2008-06-30 回答
//鏈表問題
//電話薄實現:可以輸入,輸出,插入,刪除聯系人信息.
#include
#include
#include
typedef struct student
{
char address[20];
char name[20];
char mail[7];;
char phone[10];
struct student *next;
}LNode;
void creat_list( LNode **h ) //請輸入聯系人信息
{
LNode * p;
int i;
char temp_number[20];
(*h)=(LNode *)malloc(sizeof(LNode));
(*h)->next=NULL;
printf("請輸入聯系人信息:\n");
printf("請輸入聯系人姓名,以000結束\n");
scanf("%s",temp_number);
while(strcmp(temp_number,"000"))
{
p=(LNode *)malloc(sizeof(LNode));
strcpy(p->name, temp_number);
printf("請輸入聯系人地址\n");
scanf("%s",temp_number);
strcpy(p->address, temp_number);
printf("請輸入聯系人電話號碼\n");
scanf("%s",temp_number);
strcpy(p->phone, temp_number);
printf("請輸入聯系人郵政編碼\n");
scanf("%s",temp_number);
strcpy(p->mail, temp_number);
printf("請輸入聯系人姓名,以000結束\n");
scanf("%s",temp_number);
p->next=(*h)->next;
(*h)->next=p;
}
}
//輸出電話本
void print_list(LNode *L)
{
LNode *p;
printf("\t姓名\t地址\t郵政編碼\t電話號碼\n");
p=L->next;
//printf("\n1\n");
if(!p)
{
printf("error\n");
}
//printf("\n3\n");
while (p)
{
printf("\t%s\t%s\t%s\t%s\n", p->name, p->address, p->mail, p->phone);
p=p->next;
}
//printf("\n2\n");
}
// 在第i 個聯系人前插入
void ListInsert_L(LNode *L,int i)
{
int j=0;
LNode *s,*p;
char temp_number[20];
p=L;
s=(LNode *)malloc(sizeof(LNode));
if(!s)
{
printf("error\n");
return;
}
printf("請輸入聯系人姓名\n");
scanf("%s",&temp_number);
strcpy(s->name, temp_number);
printf("請輸入聯系人地址\n");
scanf("%s",temp_number);
strcpy(s->address, temp_number);
printf("請輸入聯系人電話號碼\n");
scanf("%s",temp_number);
strcpy(s->phone, temp_number);
printf("請輸入聯系人郵政編碼\n");
scanf("%s",temp_number);
strcpy(s->mail, temp_number);
while (p&&j
{
p=p->next;
j++;
}
if (!p||j>i-1)
{
printf("error\n");
return;
}
s->next=p->next;
p->next=s;
}
//刪除第i個聯系人
void ListDelete_L(LNode *L, int i)
{
LNode *p, *q;
int j;
p = L;
j = 0;
while (p->next && j < i-1) // 尋找第 i 個結點,并令 p 指向其前趨
{
p = p->next;
j++;
}
if (!(p->next) || j > i-1) // 刪除位置不合理
{
printf("error\n");
return;
}
q = p->next; p->next = q->next;
free(q);
}
void main()
{
LNode *L;
int choice,i;
printf("輸入功能號choice,\n\t為1時輸入聯系人,\n\t為2時輸出電話本,\n\t為3時插入聯系人,\n\t為4時刪除聯系人\n\t為0時結束\n");
scanf("%d",&choice);
while(choice)
{
switch (choice)
{
case 1:creat_list(&L);
break;
case 2:print_list(L);
break;
case 3:printf("請輸入要插入元素的位置i:\n");
scanf("%d",&i);
ListInsert_L(L,i);
break;
case 4:printf("請輸入你要刪除元素的位置\n");
scanf("%d",&i);
ListDelete_L(L, i) ;
break;
default:
printf("輸入錯誤\n");
}
printf("輸入功能號choice,\n\t為1時輸入聯系人,\n\t為2時輸出電話本,\n\t為3時插入聯系人,\n\t為4時刪除聯系人\n\t為0時結束\n");
scanf("%d",&choice);
}
}
總結
以上是生活随笔為你收集整理的求一份100行左右的C语言程序,求4个C语言程序 每个100行左右 大一水平的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机中celeron,微型计算机中
- 下一篇: 怎样测量地图上曲线的长度_测量长度的特殊