第12次作业
1、定义结构体类型student,要求其中包括学号,姓名,年龄,性别,电话,系别,成绩等信息。
#include<stdio.h> struct student { char sno[10]; char name[20]; char sex[10]; char phone[20]; int age; }; int main() { student s1= { "160809314", "liuziye", "?", "13716445586", 19 }; printf("%s\n%s\n%s\n%s\n%d\n",s1.sno,s1.name,s1.sex,s1.phone,s1.age); return 0; }
2、用fscanf和fprintf语句实现将input.txt文件中存储的学生信息复制到output.txt文件中。
#include<stdio.h> #include<stdlib.h> struct student { char sno[10]; char sname[20]; int age; }; int main() { int i; student class3[31]; FILE *fp=fopen("d:\\input.txt","r"); fscanf(fp,"%s%s%d",class3[i].sno,class3[i].sname,&class3[i].age); printf("%s\n %s\n %d\n",class3[i].sno,class3[i].sname,class3[i].age); return 0; }
3、实现课上讲解的”学生管理系统“中第一个菜单“”添加学生信息“”模块的功能,即当用户选择“添加学生信息”菜单时,提示用户输入学生的学号、姓名、年龄等信息,并将输入的信息添加到student.txt文件中。
#include<stdio.h> struct student { char sno[20]; char name[10]; int age; } void add() { studnt class3; char i; FILE *fp=fopen("d:\\student.txt","a+"); printf("请输入学号:"); scanf("%s",class3.sno); printf("请输入姓名:"); scanf("%s",class3.name); printf("请输入年龄:"); scanf("%d",&class3.age); fprintf(fp,"%s %s %d\n",class3.sno,class3.name,class3.age); printf("学生信息填写成功,是否继续填写:"); scanf("%s",&i); do { printf("请输入学号:"); scanf("%s",class3.sno); printf("请输入姓名:"); scanf("%s",class3.name); printf("请输入年龄:"); scanf("%d",&class3.age); fprintf(fp,"%s %s %d\n",class3.sno,class3.name,class3.age); printf("学生信息填写成功,是否继续填写:(yes/no)"); scanf("%s",&i); } while(i=='yes'); } int main() { printf("学生管理系统"); printf("1、填写学生信息"); printf("2、其他"); int j; if(j==1) add(); return 0; }
因为上节课没有去,所以这次作业是通过问同学、看老师上课的照片写的。第二题和第三题有错误,只是我不明白。
——————————————————————————————————————-------------------上周的作业补交———————————————————————————————————————————————————————————————
1.定义函数void sum(int *p)实现对给定数组a中所有元素求和并打印输出求和结果。
#include<stdio.h>//求和 void sum(int *p) { int a[10]; printf("请输入10个整数:\n"); int i,sum=0; p=&a[0]; for(i=0;i<10;i++) { sum=sum+*p; } printf("整数和为:%d",sum); } int main() { int *p; sum(p); return 0; }
2.用指针实现函数:读入5个字符串(或是5个字符),按由小到大的顺序输出这5个字符串。
#include<stdio.h> int main() { int i,a[10],n,m; printf("请输入n的值:\n"); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n/2;i++) { m=a[i]; a[i]=a[n-1-i]; a[n-1-i]=m; } for(i=0;i<n;i++) printf("%d",a[i]); return 0; }
3.利用动态内存分配方式创建长度为10个int的存储空间,由用户从键盘输入数据进行空间初始化,同时打印输出空间内容。
#include<stdio.h> #include<string.h> #include<stdlib.h> void fsort(int a[],int n); int main() { char *p[5]; char str[20]; scanf("%s",str); int i=0; while(str[0]!='#') { p[i]=(char *)malloc(sizeof(char)*strlen(str)); strcpy(p[i],str); scanf("%s",str); i++; } int j; for(j=0;j<i;j++) printf("%s ",p[j]); return 0; }
指针对我来说有点难,马马虎虎写完的,并不是很明白。