C,順序表,簡單的元素處理
阿新 • • 發佈:2019-04-04
def 包含 max img 序表 查找 scanf 位置 tdi
#include<stdio.h> #include<stdlib.h> #define maxSize 30 typedef int DataType; typedef struct { //包含結構體 DataType data[maxSize]; int n; }SeqList; int main(){ SeqList L; int i,k,l,n1,n2,x,j=0; printf("請輸入數據長度:"); scanf("%d",&L.n); for(i=0;i<L.n;i++){ //依次輸入data printf("請輸入第%d個數據:",i+1); scanf("%d",&L.data[i]); } printf("包含數據:"); for(i=0;i<L.n;i++){ //輸出data printf("%d ",L.data[i]); } printf("\n"); printf("順序表L的長度=%d\n",L.n); // 求線性表長度運算 enter: printf("請輸入邏輯順序:"); scanf("%d",&n2); if(n2<0||n2>L.n){ //直到輸入正確 printf("不在數據範圍之內"); goto enter; } printf("第%d個位置的元素是%d\n",n2,L.data[n2-1]); printf("請輸入要查找的元素:"); scanf("%d",&n1); //獲得n1 for(i=0;i<L.n;i++){ //依次比較n1在與data中的數 if(L.data[i]==n1){ printf("元素%d是第%d個元素\n",n1,i+1); j++; } } if(j==0){ printf("n1在data中不從在\n"); } insert: printf("要在第幾個數據插入:"); scanf("%d",&k); if(k<1||k>L.n) { //直到輸入正確 printf("不在數據範圍內\n"); goto insert; } printf("要插入的元素"); scanf("%d",&x); L.n++; //數據長度+1 for(i=L.n-1;i>=0;i--){ //插入數據x L.data[i+1]=L.data[i]; if((i+1)==k){ L.data[i]=x; break; } } for(i=0;i<L.n;i++){ //輸出處理後的結果 printf("%d ",L.data[i]); } del: printf("要刪除第幾個數據:"); scanf("%d",&l); if(l<1||l>L.n) { printf("不在數據範圍內\n"); goto del; } for(i=l;i<L.n;i++){ //刪除第l個數據 L.data[i-1]=L.data[i]; } L.n--; //數據長度-1 for(i=0;i<L.n;i++){ //輸出處理後的結果 printf("%d ",L.data[i]); } return 0; }
C,順序表,簡單的元素處理