为什么信息和上面标题就是没法对齐啊
全部代码在下面
#include"stdio.h"#include"stdlib.h"#include"string.h"#include"math.h"#define N 30 struct course { long int number; char name[10]; char nature[4]; int totalhour,classhour,experimenthour,credit,term; }cou[N]={{2101,"math","1",88,44,44,4,2},{2102,"c language","1",88,66,22,3,1},{2103,"english","1",88,55,33,3,2},{2104,"history","0",66,44,22,2,1}},s;//结构体定义int M=4;//修改记录函数//void modify(struct course cou[]) { int t=-1;char z; //t为是否有记录的标志,为-1表示无输入的记录int search(struct course cou[]) ; t=search(cou); //调用查找记录函数 if(t!=-1) {printf("\n\t输入修改后的课程编号:"); scanf("%ld",&cou[t].number); printf("\t输入修改后的课程名称:"); scanf("%s",cou[t].name); printf("\t输入修改后的课程性质(公共课0/必修课1/选修课2):"); scanf("%s",cou[t].nature); printf("\t输入修改后的总学时:"); scanf("%d",&cou[t].totalhour); printf("\t输入修改后的授课学时:"); scanf("%d",&cou[t].classhour); printf("\t输入修改后的上机学时:"); scanf("%d",&cou[t].experimenthour); printf("\t输入修改后的学分:"); scanf("%d",&cou[t].credit); printf("\t输入修改后的开课学期:"); scanf("%d",&cou[t].term); printf("\t课程编号\t课程名称\t课程性质\t总学时\t授课学时\t上机学时\t学分\t开课学期\n"); printf("\t%4ld\t",cou[t].number); printf(" %s\t",cou[t].name); printf("%s\t",cou[t].nature); printf("%4d\t%4d\t%4d\t%4d%8d\n",cou[t].totalhour,cou[t].classhour,cou[t].experimenthour,cou[t].credit,cou[t].term); } printf("\n\t继续修改下一个课程信息吗?请选择y/n???"); scanf("%s",&z);if(z=='y') modify(cou); //调用本函数}//输出函数//void output(struct course cou[]) { int i,t; printf("\t课程编号\t课程名称\t课程性质\t总学时\t授课学时\t上机学时\t学分\t开课学期\n"); for(i=0;i<M;i++) { printf("\t%4ld\t\t",cou[i].number); printf(" %s\t",cou[i].name); printf("%s\t\t\t",cou[i].nature); printf("%4d\t%4d\t%4d\t%4d%8d\n",cou[i].totalhour,cou[i].classhour,cou[i].experimenthour,cou[i].credit,cou[i].term); } system("pause");}//排序函数//void sort(struct course cou[]) { int i,j,t; printf("\n\t1.按课程编号排序\n\t2.按学分排序\n\t3.按开课学期排序\n"); scanf("%d",&t); switch(t) { case 1: for(i=0;i<M-1;i++) for(j=0;j<M-i-1;j++) { if(cou[j].number<cou[j+1].number) { s=cou[j]; cou[j]=cou[j+1]; cou[j+1]=s; } } output(cou);break; case 2: for(i=0;i<M-1;i++) for(j=0;j<M-i-1;j++) { if(cou[j].credit<cou[j+1].credit) { s=cou[j]; cou[j]=cou[j+1]; cou[j+1]=s; } } output(cou);break; case 3: for(i=0;i<M-1;i++) for(j=0;j<M-i-1;j++) { if(cou[j].term<cou[j+1].term) { s=cou[j]; cou[j]=cou[j+1]; cou[j+1]=s; } } output(cou);break; default:printf("\t输入有误!"); system("pause"); } } //查询记录函数//int search(struct course cou[]) { long t,i,z,K='y';char nature[4]; //k为是否有输入记录的标志,是y时表示无记录 printf("\t1.按学分查询\n\t2.按课程性质查询\n"); scanf("%d",&z); switch(z) { case 1: printf("\t请输入要查找课程的学分:\n"); scanf("%ld",&t); for(i=0;i<M;i++) { if(cou[i].credit==t) { K='x'; printf("\t课程编号\t课程名称\t课程性质\t总学时\t授课学时\t上机学时\t学分\t开课学期\n"); printf("\t%4ld\t",cou[i].number); printf(" %s\t",cou[i].name); printf("%s\t",cou[i].nature); printf("%4d\t%4d\t%4d\t%4d%8d\n",cou[t].totalhour,cou[t].classhour,cou[t].experimenthour,cou[t].credit,cou[t].term); system("pause"); return(i); } } if(K='y') { printf("\t无此记录!"); return -1; system("pause"); } break; case 2: printf("\t请输入要查找课程的性质:\n"); scanf("%s",nature); for(i=0;i<M;i++) { if(strcmp(cou[i].nature,nature)==0) { K='x'; printf("\t课程编号\t课程名称\t课程性质\t总学时\t授课学时\t上机学时\t学分\t开课学期\n"); printf("\t%4ld\t",cou[i].number); printf(" %s\t",cou[i].name); printf("%s\t",cou[i].nature); printf("%4d\t%4d\t%4d\t%4d%8d\n",cou[t].totalhour,cou[t].classhour,cou[t].experimenthour,cou[t].credit,cou[t].term); system("pause"); return(i); } } if(K='y') { printf("\t无此记录!"); return -1; system("pause"); } break; default: printf("\t输入有误!"); return -1; } } //插入记录函数//void insert(struct student stu[]) { int i;char z='y'; for(i=M;i<=N&&z=='y';i++) { printf("\n\t请输入课程编号:"); scanf("%ld",&cou[i].number); printf("\t请输入课程名称:"); scanf("%s",cou[i].name); printf("\t请输入课程性质:"); scanf("%s",cou[i].nature); printf("\t请输入总学时:"); scanf("%d",&cou[i].totalhour); printf("\t请输入授课学时:"); scanf("%d",&cou[i].classhour); printf("\t请输入上机学时:"); scanf("%d",&cou[i].experimenthour); printf("\n\t要继续输入下一课程信息吗?y/n???"); z=getchar(); if(z!='y') { M=i+1; output(cou); //调用输出函数 } } } //删除记录函数//void delete(struct course cou[]) { long flag=0,t,i,z;char l,name[20]; //flag为是否有输入记录的标志,1为有记录,0为无记录 printf("\n\t1.按课程编号删除\n\t2.按课程名称删除\n"); scanf("%d",&z); switch(z) { case 1: printf("\t请输入课程编号:"); scanf("%ld",&t); for(i=0;i<M;i++) { if(cou[i].number==t) { flag=1; printf("\t课程编号\t课程名称\t课程性质\t总学时\t授课学时\t上机学时\t学分\t开课学期\n"); printf("\t%4ld\t",cou[i].number); printf(" %s\t",cou[i].name); printf("%s\t",cou[i].nature); printf("%4d\t%4d\t%4d\t%4d%8d\n",cou[t].totalhour,cou[t].classhour,cou[t].experimenthour,cou[t].credit,cou[t].term); break; } } if(flag) {printf("\t确定删除吗?y/n???"); scanf("%s",&l); if(l=='y') { for(;i<M;i++) cou[i]=cou[i+1]; M=M-1; output(cou); }} else printf("记录不存在!"); break; case 2: printf("请输入课程名称:"); scanf("%s",name); for(i=0;i<M;i++) { if(strcmp(cou[i].name,name)==0) {flag=1; printf("\t课程编号\t课程名称\t课程性质\t总学时\t授课学时\t上机学时\t学分\t开课学期\n"); printf("\t%4ld\t",cou[i].number); printf(" %s\t",cou[i].name); printf("%s\t",cou[i].nature); printf("%4d\t%4d\t%4d\t%4d%8d\n",cou[t].totalhour,cou[t].classhour,cou[t].experimenthour,cou[t].credit,cou[t].term); break; } } if(flag) {printf("\n确定删除吗?y/n???"); scanf("%s",&l); if(l=='y') { for(;i<M;i++) cou[i]=cou[i+1]; M=M-1; output(cou); } } else printf("记录不存在!"); break; default:printf("\t输入有误!"); } }//主函数//int main() { int choice;for(;;) { printf("\t\n-------- 学生选修课程系统--------\n"); printf("\t1. 修改课程记录\n"); printf("\t2. 输出课程记录\n"); printf("\t3. 课程记录排序\n"); printf("\t4. 查询课程记录\n"); printf("\t5. 插入课程记录\n"); printf("\t6. 删除课程记录\n"); printf("\t7. 选修课程记录\n");printf("\t8. 退出\n"); printf("\t请选择操作(1-8):\n"); scanf("%d",&choice); switch(choice) { case 1:modify(cou);break; //调用修改记录函数case 2:output(cou);break; //调用输记录函数case 3:sort(cou);break; //调用排序函数case 4:search(cou);break; //调用查询记录函数case 5:insert(cou);break; //调用插入记录函数case 6: delete(cou);break; //调用删除记录函数case 7: exit(0); break; //退出程序default:printf("\t输入有误!"); }}return 0;}
对不齐的原因是因为你录入的数据有长有短,导致了这个问题哦,建议你循环输出课程名称的后面多加一个\t
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632