Problem C: 零起点学算法83——数组中删数

本文探讨了在给定数组中删除指定数字的算法实现,通过continue语句而非break语句来确保仅删除首次出现的目标数字,同时保持数组元素的原有顺序。文章提供了完整的C语言代码示例,并讨论了输出格式的细节处理。

Problem C: 零起点学算法83——数组中删数

分析

关键是进行首项是不是要删去数字的判断,这种只要要求删去一个数字的功能只需要使用continue语句而不是break语句。

Description

在给定的数组中删除一个数

Input

多组测试,每组第一行输入1个整数n(n<20),然后是n个整数 第二行输入1个整数m

Output

删除在第一行的n个整数中第一次出现数字m并删除,然后按照顺序输出剩下的数, 最后一个数后面无空格

Sample Input

4 1 2 3 4
3

Sample Output

1 2 4

HINT

m有可能在原数组中找不到,找不到则输出原数组

#include<stdio.h>
int main(){
      int a[100],n,i,k,m,ch=1;
      while(scanf("%d",&n)!=EOF){

            for(i=0;i<n;i++)
             scanf("%d",&a[i]);
             scanf("%d",&k);
        if(k!=a[0]){
                printf("%d",a[0]);
            for(i=1;i<n;i++){
                  if(k==a[i]) continue;
                  printf(" %d",a[i]);
            }
         }
         else{
            printf("%d",a[1]);
            for(i=2;i<n;i++)
            printf(" %d",a[i]);
         }
         printf("\n");
      }
      return 0;

}

总结

1、对于末尾输出无空格情况就要将首项的输出格式与其他项分开。
2、对于判断和循环的符合语句,可以在程序最终的部分再添加换行符。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值