编写一个算法,从顺序表中删除自第 i 个元素开始的 k 个元素
4个回答
展开全部
#include <stdio.h>
int main()
{
int a[999],j,i=666,k=66;
for(j=0;j++;j<999)
scanf("%d",a[j]); //输入数
fun(*a,j,i,k); //调用fun函数
for(j=0;j++;j<(j-k)) //打印剩余的数
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函数的作用就是删除k个数,999,666,66是我随便定的数,你可以改
int main()
{
int a[999],j,i=666,k=66;
for(j=0;j++;j<999)
scanf("%d",a[j]); //输入数
fun(*a,j,i,k); //调用fun函数
for(j=0;j++;j<(j-k)) //打印剩余的数
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函数的作用就是删除k个数,999,666,66是我随便定的数,你可以改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int list[]=new int[n];
for(int x=i;x<(i+k);x++)
list[x]=NULL;
for(int x=i;x<(i+k);x++)
list[x]=NULL;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能我的程序中的下标比较乱,因为我程序中的数组下标是从0开始的。
如果有不会的依然可以问我
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
///函数delet 参数的含义:删除的是数组a中的元素,数组a一共有n个元素
///删除数组a中从i开始的k个元素
void delet(int *a, int n, int i, int k)
{
int j;
for(j=i-1; j<n-k; j++)
{
a[j] = a[j+k];
}
}
int main()
{
int a[100], i, n, k;
printf("please enter numbers:\n");
i=0;
while(scanf("%d", &a[i])==1)
{
i++;
}
n = i;///n表示一共有多少个元素
printf("please enter i and k:");
while(1)///判断删除的元素是否在数组内
{
scanf("%d %d", &i, &k);
if(i+k-1 <n) break;
else printf("your enter is wrong, please enter again\n");
}
delet(a, n, i, k);
for(i=0; i<n-k; i++)
{
printf("%d ", a[i]);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bool delete( array,int i,int j)
{
if(i+j > array.Length)
return false;
for(int k=i+j-1;k<array.Length-1;k++)
array[k-1]=array[k];//i+k及其后面的元素前移。
array.Length--;
return true;
}
{
if(i+j > array.Length)
return false;
for(int k=i+j-1;k<array.Length-1;k++)
array[k-1]=array[k];//i+k及其后面的元素前移。
array.Length--;
return true;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询