隨機生成100個整數存入一個順序表,整數範圍在[100,200)之間,輸出表中所有元素;然後去掉其中所有的偶數,輸出表中所有元素。

陌生@途 發表於 2020-10-17

隨機生成100個整數存入一個順序表,整數範圍在[100,200)之間,輸出表中所有元素;然後去掉其中所有的偶數,輸出表中所有元素。

#include<stdio.h>
#include<stdlib.h>
#include <time.h>  

struct Sqlist{
    int *Date; 
	int N;  //表中元素個數
	int MaxSize;  //表的最大容量
};

struct SqList *Crelist(int m)  //建立空連結串列
{
    struct Sqlist *L;
	L = (struct Sqlist*)malloc(sizeof(struct Sqlist));
	L ->Date = malloc(sizeof(int)*m);
    L->N = 0;
	L->MaxSize = m;
	return L;
}

void  RandInsert(struct Sqlist *L,int m)  //產生隨機數並插入連結串列 
{

	int i;

	for(i = 0; i<m; i++)
	{
		L->Date[i]=rand()%100+100;
        L->N++;
	}
}

void Show(struct Sqlist *L)  //輸出結果 
{
	int i;
	
	
	for(i=0 ;i<L->N;i++){
	    if((i+1)%20==0)	
		    printf("%d\n",L->Date[i]);
		else if((i+1)==100)	
		    printf("%d\n\n",L->Date[i]);
	    else
			printf("%d ",L->Date[i]);
	}
} 

void DeletDou(struct Sqlist *L ) //刪除偶數 
{
	int i,j;
	
	for(i=0 ;i<L->N;i++){
	    if((L->Date[i])%2==0){
				
           	for(j=i ;j<L->N;j++)
           	{
           		L->Date[j]=L->Date[j+1];
			}
			i=i-1;
			L->N--;
		}
    }

}
int main(){
	int m,i;
    struct Sqlist*p,*q;
    
    scanf("%d",&m);
    
 	p=Crelist(m);
	RandInsert(p,m);
	Show(p);
	printf("\n");
	q=p;
	DeletDou(q);
	Show(q);
    return 0; 
}