标题:数组的删除问题
只看楼主
frecklesss
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2020-3-17
结帖率:71.43%
已结贴  问题点数:10 回复次数:3 
数组的删除问题
知道怎么找数组中的指定数,怎么能按这个要求改呢?
题目是这样的:


代码:
#include<stdio.h>
int Search(int a[], int n, int x);
void main(){
    int a[10],i,m,x,n;
    printf("Input 10 numbers:\n");
    for(i=0;i<10;i++){
        scanf("%d",&a[i]);
    }
    printf("Input x:\n");
    scanf("%d",&x);
    m=Search(a,n,x);
    if(m==-1)
        printf("Not found!");
    else
        printf("Subscript of x is %d\n",m);
}
int Search(int a[], int n, int x){
    int i;
    for(i=0;i<10;i++){
        if(a[i]==x)
            return i;
    }
    return -1;
}


[此贴子已经被作者于2020-6-17 23:09编辑过]

搜索更多相关主题的帖子: Search 删除 printf int 数组 数组 删除 printf int Search 
2020-06-17 19:18
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
得分:4 
n是啥?

梦想拥有一台龙芯3A-4000
2020-06-18 00:58
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:4 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define ARRAY_SIZE    10

int main(void)
{
    int array[ARRAY_SIZE];
    int x;

    printf("Input %d numbers: ", ARRAY_SIZE);
    for (int i = 0; i < ARRAY_SIZE; i++)
    {
        scanf("%d", &array[i]);
    }

    printf("Input x: ");
    scanf("%d", &x);

    int* p = array;
    int* q = array;
    bool get_first = false;
    while (p < array + ARRAY_SIZE)
    {
        if (*p == x)
        {
            if (!get_first)
                get_first = true;
            else
                p++;
        }
        else
        {
            *q++ = *p++;
        }
    }

    p = array;
    printf("[");
    while (p != q)
    {
        printf(" %d", *p++);
    }
    printf(" ]");

    return EXIT_SUCCESS;
}


随手写的代码,可能有错误,大概意思就是这个。
2020-06-18 07:24
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:4 
#include<stdio.h>
int Search(int a[], int n, int x);
int Delch(int a[], int n, int x);
void main()
{
    int a[10],i,m,x,n;
    printf("Input 10 numbers:\n");
    for(i=0; i<10; i++)
    {
        scanf("%d",&a[i]);
    }
    printf("Input x:\n");
    scanf("%d",&x);
    m = Search(a,10,x);
    if (m<10)
    {
        printf("Subscript of x is %d\n",m);
        m = Delch(a,m+1,x);
        for (i=0; i<m; ++i)
            printf("%d ",a[i]);

    }
    else
        printf("Not found!\n");
}
int Search(int a[], int n, int x)
{
    int i;
    for(i=0; i<n && a[i]!=x; ++i);
    return i;
}
int Delch(int a[], int m, int x)
{
    int i,j=m;
    for (i=j; i<10; ++i)
    {
        if (a[i] != x)
            a[j++] = a[i];
    }
    return j;
}
2020-06-18 08:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502171-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.085955 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved