#include<stdio.h>
#include<stdlib.h>
#define MAX 20
typedef struct{
int n;
int data[MAX+1];
} SEQTABLE;
void delitem(SEQTABLE * st,int e)
{
int i;
for(i=1;i<=st->n;i++)
{
if(st->data[i]==e)
{
for(i;i<st->n;i++)
st->data[i]=st->data[i+1];
--st->n;
--i;
}
}
}
int main()
{
int i;
SEQTABLE st = {9, {0,5,7,9,8,7,2,6,7,9}};
delitem(&st, 7);
for(i = 1; i <= st.n; i++)
{
printf("%4d", st.data[i]);
}
printf("\n");
return 0;
}
uj5u.com熱心網友回復:
要這么寫, 你里面的for回圈把i走到st->n了, 外圍的回圈就只走到 第一個7那里就停了#include<stdio.h>
#include<stdlib.h>
#define MAX 20
typedef struct{
int n;
int data[MAX+1];
} SEQTABLE;
void delitem(SEQTABLE * st,int e)
{
int i, j;
for(i=0;i<=st->n;i++)
{
j=i;
if(st->data[i]==e)
{
for(j;j<st->n;j++)
st->data[j]=st->data[j+1];
--st->n;
--i;
}
}
}
int main()
{
int i;
SEQTABLE st = {9, {0,5,7,9,8,7,2,6,7,9}};
delitem(&st, 7);
for(i = 0; i <= st.n; i++)
{
printf("%4d", st.data[i]);
}
printf("\n");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/152886.html
標籤:C語言
下一篇:來自一個小白的QT大作業求助
