#include <stdio.h>
#include <stdlib.h>
int creat(int n){
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(int i=0;i<n;i++){
printf("%d",arr[i]);
}
}
int search(int arr[],int n){
int length = sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<length;i++){
if(arr[i]==n){
return i;
}
}
}
void delete(int arr[],int n){
int length = sizeof(arr)/sizeof(arr[0]);
for(int i=n;i<=length;i++){
arr[i]=arr[i+1];
}
for(int i=0;i<length-1;i++){
printf("%d",arr[i]);
}
}
void sort(int arr[]){
int length = sizeof(arr)/sizeof(arr[0]);
int temp=0;
for(int i=0;i<length-1;i++){
for(int j=0;j<=length-1-i;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
void print(int arr[]){
int length = sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<length;i++){
printf("%d",arr[i]);
}
}
int main()
{
int arr1[10]={4,5,6,2,9,7,1,3,8};
// printf("%d\n",search(arr1,4));
//delete(arr1,0);
//printf("\n");
sort(arr1);
print(arr1);
//creat(4);
return 0;
}
?
int length = sizeof(arr)/sizeof(arr[0]);
编译报什么错,截图看一看
【相关推荐】
- 思想:
这里size就是统计开辟的数组中有效数据的个数,只需要把有效数据的个数-1,打印的时候自然会把原本最后一个数据给删掉,但是要注意,如果删除次数过多,有效数据size可能会变成负的,为了避免这一现象,只需要确保在size>0时再减减即可,同样为了防止传入空指针,只需要assert断言即可。
- SeqList.h文件:
//尾删 void SeqListPopBack(SeqList* psl);
- SeqList.c文件:
//尾删 void SeqListPopBack(SeqList* psl) { assert(psl); if (psl->size > 0) { psl->size--; } }
- Test.c文件:
int main() { SeqList s; SeqListInit(&s); //一定要加上&,因为形参的改变不会影响实参,要传地址 //尾插5个数字 SeqListPushBack(&s, 1); SeqListPushBack(&s, 2); SeqListPushBack(&s, 3); SeqListPushBack(&s, 4); SeqListPushBack(&s, 5); SeqListPrint(&s); //尾插5次后打印 //尾删6个数字 SeqListPopBack(&s); SeqListPopBack(&s); SeqListPopBack(&s); SeqListPopBack(&s); SeqListPopBack(&s); SeqListPopBack(&s); SeqListPopBack(&s); SeqListPrint(&s); //尾删6次后打印 //再尾插2个数字 SeqListPushBack(&s, 6); SeqListPushBack(&s, 7); SeqListPrint(&s); //再尾插2次打印 return 0; }
- 效果如下: