从顺序表中删除自第i个元素开始的k个元素.其中 a.elem[i+count-1]=a.elem[i+count+k-1]; 什么意思? 编写一个算法,从顺序表中删除自第 i 个元素开始的 k 个元...

\u81ea\u987a\u5e8f\u8868\u4e2d\u5220\u9664\u81ea\u7b2ci\u4e2a\u5143\u7d20\u5f00\u59cb\u7684k\u4e2a\u5143\u7d20

\u5982\u679c\u5220\u9664\u987a\u5e8f\uff0c
n=0 \u6307\u9488\u5728\u7b2c\u4e00\u5143\u7d20\u4e0a
\u5faa\u73af\uff1an=n+1
\u5982\u679c n>=i and n<=i+k
\u5220\u9664
\u5426\u5219 goto next
\u5982\u679c\u4e0d\u5220\u9664\u987a\u5e8f
n=0 \u6307\u9488\u5728\u7b2c\u4e00\u5143\u7d20\u4e0a
\u5faa\u73af\uff1an=n+1
\u5982\u679c n>=i and n<=i+k
\u5220\u9664
goto next
\u5426\u5219 goto next

#include
int main()
{
int a[999],j,i=666,k=66;
for(j=0;j++;j<999)
scanf("%d",a[j]); //\u8f93\u5165\u6570
fun(*a,j,i,k); //\u8c03\u7528fun\u51fd\u6570
for(j=0;j++;j<(j-k)) //\u6253\u5370\u5269\u4f59\u7684\u6570
printf("%4d",a[j]);
}
void fun(int a[] ,int j, int i, int k )
{
for(;i++;i+k<j)
a[i]=a[i+k];
}
fun\u51fd\u6570\u7684\u4f5c\u7528\u5c31\u662f\u5220\u9664k\u4e2a\u6570\uff0c999,666,66\u662f\u6211\u968f\u4fbf\u5b9a\u7684\u6570\uff0c\u4f60\u53ef\u4ee5\u6539

把i+k个元素以后的赋值给第i个以后的元素,这样第i个元素后的k个元素就被覆盖了,达到删除的目的。

把后面的元素往前挪呗

  • 浠庨『搴忚〃涓垹闄よ嚜绗琲涓厓绱犲紑濮鐨刱涓厓绱.鍏朵腑 a.elem[i+count-1...
    绛旓細鍥炵瓟锛氭妸i+k涓厓绱犱互鍚庣殑璧嬪肩粰绗琲涓互鍚庣殑鍏冪礌,杩欐牱绗琲涓厓绱鍚庣殑k涓厓绱犲氨琚鐩栦簡,杈惧埌鍒犻櫎鐨鐩殑銆
  • 缂栧啓涓涓畻娉,浠庨『搴忚〃涓垹闄よ嚜绗 i 涓厓绱犲紑濮鐨 k 涓厓绱
    绛旓細void fun(int a[] ,int j, int i, int k ){ for(;i++;i+k<j)a[i]=a[i+k];} fun鍑芥暟鐨勪綔鐢ㄥ氨鏄鍒犻櫎k涓暟锛999,666,66鏄垜闅忎究瀹氱殑鏁帮紝浣犲彲浠ユ敼
  • 鍐欎竴绠楁硶,浠庨『搴忚〃涓垹闄よ嚜绗琲涓厓绱犲紑濮鐨刱涓厓绱
    绛旓細濡傛灉鍒犻櫎椤哄簭锛宯=0 鎸囬拡鍦ㄧ涓鍏冪礌涓 寰幆锛歯=n+1 濡傛灉 n>=i and n<=i+k 鍒犻櫎 鍚﹀垯 goto next 濡傛灉涓嶅垹闄ら『搴 n=0 鎸囬拡鍦ㄧ涓鍏冪礌涓 寰幆锛歯=n+1 濡傛灉 n>=i and n<=i+k 鍒犻櫎 goto next 鍚﹀垯 goto next
  • 缂栧啓涓涓畻娉,浠庨『搴忚〃涓垹闄よ嚜绗琲涓厓绱犲紑濮鐨刱涓厓绱
    绛旓細寰幆k娆★紝姣忔閮鍒犻櫎绗琲涓厓绱鍗冲彲銆
  • ...鑻ュ厓绱犱笉瓒砶涓,鍒鍒犻櫎鑷i涓厓绱犲紑濮嬬殑鎵鏈夊厓绱.
    绛旓細j++;//杈撳叆椤哄簭琛鍐呭 l->last=j-1;deletelist(l,i,k); return 0;}void deletelist(SeqList *l,int i,int k){ int j; if(i>l->last+1||i<1) printf("鍒犻櫎浣嶇疆涓嶅悎娉"); else { if(k>=l->last-i+2){ for(j=i-1; j<=l->last; j++)l->elem...
  • 鍒犻櫎绗琲涓厓绱犵殑鏃跺,闇瑕佺Щ鍔ㄥ灏戜釜鍏冪礌?
    绛旓細鍦ㄤ竴涓暱搴︿负n鐨椤哄簭琛ㄤ腑锛鍒犻櫎绗琲(1鈮鈮)涓厓绱犳椂锛岄渶瑕佺Щ鍔ㄧ殑鍏冪礌涓暟涓簄-i銆傚垎鏋愶細鍦ㄤ竴涓暱搴︿负n鐨勯『搴忚〃涓紝鍒犻櫎涓涓厓绱犳椂锛屾湁n涓綅缃彲渚涢夋嫨銆傞渶瑕佹敼鍙浠庣 i+1涓厓绱犺捣鍒扮n涓厓绱犵殑瀛樺偍浣嶇疆锛屽嵆杩涜鈥浠庣i+1鍒扮n涓厓绱犲線鍓嶇Щ鍔ㄤ竴涓綅缃濓紝鍏遍渶绉诲姩n-i涓厓绱銆
  • 鑷椤哄簭琛ㄤ腑鍒犻櫎鑷i涓厓绱犲紑濮鐨刱涓厓绱
    绛旓細濡傛灉鍒犻櫎椤哄簭锛宯=0 鎸囬拡鍦ㄧ涓鍏冪礌涓 寰幆锛歯=n+1 濡傛灉 n>=i and n<=i+k 鍒犻櫎 鍚﹀垯 goto next 濡傛灉涓嶅垹闄ら『搴 n=0 鎸囬拡鍦ㄧ涓鍏冪礌涓 寰幆锛歯=n+1 濡傛灉 n>=i and n<=i+k 鍒犻櫎 goto next 鍚﹀垯 goto next
  • 璁捐涓涓畻娉,浠庨『搴忚〃涓垹闄よ嚜绗琲涓缁撶偣寮濮鐨刱涓粨鐐广
    绛旓細int i,k,%e;e=20;print(a,e);i=5; /*椤哄簭琛绗5涓粨鐐*/ k=5; /*鍒犻櫎鑷5涓粨鐐寮濮鍙扮殑5涓粨鐐*/ deletesqlist(i,k,a,e);print(a,e);} 杈撳嚭缁撴灉涓猴細1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 10 11 12 13 14 15 16 17 18 19 ...
  • 鍦ㄩ暱搴︿负n鐨椤哄簭琛ㄤ腑鍒犻櫎绗琲涓厓绱
    绛旓細鍦ㄩ暱搴︿负n鐨椤哄簭琛ㄤ腑鍒犻櫎绗琲涓厓绱涓簄-i銆傛嫇灞曠煡璇:1銆侀『搴忚〃 椤哄簭琛ㄦ槸鍦ㄨ绠楁満鍐呭瓨涓互鏁扮粍鐨勫舰寮忎繚瀛樼殑绾挎ц〃銆傜嚎鎬ц〃鐨勯『搴忓瓨鍌ㄦ槸鎸囩敤涓缁勫湴鍧杩炵画鐨勫瓨鍌ㄥ崟鍏冧緷娆″瓨鍌ㄧ嚎鎬ц〃涓殑鍚勪釜鍏冪礌銆佷娇寰楃嚎鎬ц〃涓湪閫昏緫缁撴瀯涓婄浉閭荤殑鏁版嵁鍏冪礌瀛樺偍鍦ㄧ浉閭荤殑鐗╃悊瀛樺偍鍗曞厓涓傚嵆閫氳繃鏁版嵁鍏冪礌鐗╃悊瀛樺偍鐨勭浉閭诲叧绯绘潵鍙嶆槧...
  • 璁捐棰樼洰:鍒犻櫎椤哄簭琛ㄨ嚜绗琲涓厓绱璧鐨len涓厓绱
    绛旓細///鍒犻櫎鏁扮粍a涓浠巌寮濮嬬殑len涓厓绱 void delet(int *a, int n, int i, int len){ int j;for(j=i-1; j<n-len; j++){ a[j] = a[j+len];} } int serch(int *a, int n, int number){ int i;for(i=0; i<n; i++){ if(a[i]==number) return i;} return -1;}...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网