C 练习实例71-80
来源:互联网 发布:新技术新工艺软件下载 编辑:程序博客网 时间:2024/05/21 22:35
71.题目:编写input()和output()函数输入,输出5个学生的数据记录。
#include<stdio.h>#include<stdlib.h>typedef struct{ char name[20]; char sex[5]; int age;}Stu;void input(Stu*stu);void output(Stu*stu);int main(){ Stu stu[5]; printf("请输入5个学生的信息:姓名 性别 年龄:\n"); input(stu); printf("5个学生的信息如下:\n姓名 性别 年龄\n"); output(stu); system("pause"); return 0;}void input(Stu*stu){ int i; for(i=0;i<5;i++) scanf("%s%s%d",stu[i].name,stu[i].sex,&(stu[i].age));}void output(Stu*stu){ int i; for(i=0;i<5;i++) printf("%s %s %d\n",stu[i].name,stu[i].sex,stu[i].age);}
72.题目:创建一个链表。
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;LinkList CreateList(int n);void print(LinkList h);int main(){ LinkList Head=NULL; int n; scanf("%d",&n); Head=CreateList(n); printf("刚刚建立的各个链表元素的值为:\n"); print(Head); printf("\n\n"); system("pause"); return 0;}LinkList CreateList(int n){ LinkList L,p,q; int i; L=(LNode*)malloc(sizeof(LNode)); if(!L)return 0; L->next=NULL; q=L; for(i=1;i<=n;i++) { p=(LinkList)malloc(sizeof(LNode)); printf("请输入第%d个元素的值:",i); scanf("%d",&(p->data)); p->next=NULL; q->next=p; q=p; } return L;}void print(LinkList h){ LinkList p=h->next; while(p!=NULL){ printf("%d ",p->data); p=p->next; }}
73.题目:反向输出一个链表。
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;LinkList CreateList(int n);void print(LinkList h);int main(){ LinkList Head=NULL; int n; scanf("%d",&n); Head=CreateList(n); printf("刚刚建立的各个链表元素的值为:\n"); print(Head); printf("\n\n"); system("pause"); return 0;}LinkList CreateList(int n){ LinkList L,p,q; int i; L=(LNode*)malloc(sizeof(LNode)); if(!L)return 0; L->next=NULL; q=L; for(i=1;i<=n;i++) { p=(LinkList)malloc(sizeof(LNode)); printf("请输入第%d个元素的值:",i); scanf("%d",&(p->data)); p->next=NULL; q->next=p; q=p; } return L;}void print(LinkList h){ LinkList p=h->next; while(p!=NULL){ printf("%d ",p->data); p=p->next; }}
74.题目:连接两个链表。
#include <stdlib.h>#include <stdio.h>struct list{ int data; struct list *next;};typedef struct list node;typedef node *link;link delete_node(link pointer,link tmp){ if (tmp==NULL) /*delete first node*/ return pointer->next; else { if(tmp->next->next==NULL)/*delete last node*/ tmp->next=NULL; else /*delete the other node*/ tmp->next=tmp->next->next; return pointer; }}void selection_sort(link pointer,int num){ link tmp,btmp; int i,min; for(i=0;i<num;i++) { tmp=pointer; min=tmp->data; btmp=NULL; while(tmp->next) { if(min>tmp->next->data) { min=tmp->next->data; btmp=tmp; } tmp=tmp->next; } printf("\40: %d\n",min); pointer=delete_node(pointer,btmp); }}link create_list(int array[],int num){ link tmp1,tmp2,pointer; int i; pointer=(link)malloc(sizeof(node)); pointer->data=array[0]; tmp1=pointer; for(i=1;i<num;i++) { tmp2=(link)malloc(sizeof(node)); tmp2->next=NULL; tmp2->data=array[i]; tmp1->next=tmp2; tmp1=tmp1->next; } return pointer;}link concatenate(link pointer1,link pointer2){ link tmp; tmp=pointer1; while(tmp->next) tmp=tmp->next; tmp->next=pointer2; return pointer1;}void main(void){ int arr1[]={3,12,8,9,11}; link ptr; ptr=create_list(arr1,5); selection_sort(ptr,5);}
75.题目:放松一下,算一道简单的题目。
#include <stdlib.h>#include <stdio.h>int main(){ int i,n; for(i=1;i<5;i++) { n=0; if(i!=1) n=n+1; if(i==3) n=n+1; if(i==4) n=n+1; if(i!=4) n=n+1; if(n==3) printf("%c\n",64+i); }}
76.题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n(利用指针函数)。
#include<stdio.h>#include<stdlib.h>double evenumber(int n);double oddnumber(int n);int main(){ int n; double r; double (*pfunc)(int); printf("请输入一个数字:"); scanf("%d",&n); if(n%2==0) pfunc=evenumber; else pfunc=oddnumber; r=(*pfunc)(n); printf("%lf\n",r); system("pause"); return 0;}double evenumber(int n){ double s=0,a=0; int i; for(i=2;i<=n;i+=2) { a=(double)1/i; s+=a; } return s;}double oddnumber(int n){ double s=0,a=0; int i; for(i=1;i<=n;i+=2) { a=(double)1/i; s+=a; } return s;}
77.题目:填空练习(指向指针的指针)。
#include<stdio.h>#include<stdlib.h>int main(){ char *s[]={"man","woman","girl","boy","sister"}; char **q; int k; for(k=0;k<5;k++) { q=&s[k]; /*在这里填入内容*/ printf("%s\n",*q); } return 0;}
78.题目:找到年龄最大的人,并输出。请找出程序中有什么问题。
#include<stdio.h>#include<stdlib.h>struct man{ char name[20]; int age;}person[3]={"li",18,"wang",19,"sun",22};int main(){ struct man *q,*p; int i,m=0; p=person; for(i=0;i<3;i++) { if(m<p->age)m=p->age; q=p++; } printf("%s %d\n",q->name,q->age); return 0;}
79.题目:字符串排序。
#include<stdio.h>#include<stdlib.h>void swap(char*str1,char*str2);int main(){ char str1[20],str2[20],str3[20]; printf("请输入3个字符串,每个字符串以回车结束!:\n"); gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)>0)swap(str1,str2); if(strcmp(str2,str3)>0)swap(str2,str3); if(strcmp(str1,str2)>0)swap(str1,str2); printf("排序后的结果为:\n"); printf("%s\n%s\n%s\n",str1,str2,str3); return 0;}void swap(char*str1,char*str2){ char tem[20]; strcpy(tem,str1); strcpy(str1,str2); strcpy(str2,tem);}
80.题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?
#include<stdio.h>#include<stdlib.h>int main(){ int x ,i=0,j=1; while(i<5){ x=4*j; for(i=0;i<5;i++) { if(x%4!=0){break;} x=(x/4)*5+1; } j++; } printf("%d\n",x); return 0;}
阅读全文
0 0
- C 练习实例71-80
- C 练习实例5
- C 练习实例8
- C 练习实例12
- C 练习实例28
- C 练习实例66
- C语言实例练习
- C 练习实例1-10
- C 练习实例11-20
- C 练习实例21-30
- C 练习实例31-40
- C 练习实例41-50
- C 练习实例51-60
- C 练习实例61-70
- C 练习实例81-90
- C 练习实例91-100
- C 练习实例13 - 水仙花数
- C 练习实例16 - 最大公约数和最小公倍数
- shell特殊符和cut命令详解
- round()函数填坑
- Java NIO和IO的区别
- Jarvis easycrackme
- 1-5 beanstalkd消费类
- C 练习实例71-80
- 电路与二进制运算
- linux查看和释放swap内存
- web.xml文件的schema头部声明
- CentOS7安装导致开机没有win10启动项以及win10删除CentOS7安装盘后开机启动失败问题
- 指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针 的理解
- python实现cifar10数据集的可视化
- 小朱opengl学习笔记(一)
- android原生热修复流程和原理分析实现