#include<stdio.h> typedef struct Node { int a,b; }node; node c[100]; int n; void print() { int i; printf("\n当前数据:\n"); for(i=1;i<=n;i++) { printf("第%d组:a=%d,b=%d\n",i,c[i].a,c[i].b); } printf("\n\n"); }//输出 void setnum() { int i; printf("输入n,表示共有n组数据:\n"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("输入第%d组数据的两个值a、b,用空格隔开:\n",i); scanf("%d%d",&c[i].a,&c[i].b); } }//设置数据 void remove() { int i,j; printf("输入i,表示要删除第i数据:\n"); scanf("%d",&i); for(j=i;j<=n-1;j++) { c[j]=c[j+1]; }//循环覆盖,让后一个覆盖前一个,所以j最大值取n-1 n--;//结构体中的元素减少1个 }//删除数据 void chang() { int i,aa,bb; printf("输入i,a,b,表示要将第i组数据修改成a、b:\n"); scanf("%d%d%d",&i,&aa,&bb); c[i].a=aa; c[i].b=bb;//直接赋值修改 }//修改数据 main() { int m; while(1) { printf("输入:1-输入数据,2-修改数据,3-删除数据\n 4-输出数据,0-退出\n"); scanf("%d",&m); if(m==0) break; else if(m==1) setnum(); else if(m==2) chang(); else if(m==3) remove(); else if(m==4) print(); } }