c语言编程序,输入10个整数,把其中重复出现的数删去 输出删除重复数后的各数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编程序,输入10个整数,把其中重复出现的数删去 输出删除重复数后的各数相关的知识,希望对你有一定的参考价值。

(如出现三个0,则删去后两个),

#include <stdio.h>
#define N 10

void main()

int num[N],i,j,k,m;
printf("\nEnter %d int number:",N);
for(i=0;i<N;i++)
scanf("%d",&num[i]);

k=N;
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)

if(num[j]==num[i])
for(m=j;m<k;m++)

num[m]=num[m+1];
k--;



printf("Final is:");
for(i=0;i<k;i++) printf(" %d",num[i]);
getch();


与楼上的没有本质上的差别,因为这种方法是最常规的方法,会点C语言的都会这样编。
比楼上好的地方就是:
1、修改容易,只需要修改define N 10这里的10为其他的数值就可以实现比如20个50个整数的处理
2、输入输出有提示,显得更人性化
参考技术A #include"stdio.h"
main()
int i,j,k,n=10,a[11];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
a[10]='\0';
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(a[i]==a[j])
for(k=j;k<=n;k++)
a[k]=a[k+1];
n--;

for(i=0;i<n;i++)
printf("%d ",a[i]);
参考技术B 哎,这种小程序自己编才有意思啊
没有谁会为20分该你编的啊
网上很多例子程序,自己参考
学习要主动啊!!

牛客网在线编程:n个数中出现次数大于等于n/2的数

题目描述:

输入n个整数,输出出现次数大于等于数组长度一半的数。
输入描述:
每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。
输出描述:
输出出现次数大于等于n/2的数。
示例1
输入

3 9 3 2 5 6 7 3 2 3 3 3
输出

3

思路:

每次输入,使用数组a[n]记录n出现的次数,num记录总数。然后判断a[i]是否大于等于num/2。是的话返回i即可
剑指offer上的思路是保存两个值,当接下来出现的下一个数与前一个数相同时,计数加一,否则减一。当计数为0时,保存下一个数字,并把计数记为1.由于
要找的数出现的次数比其他数的和还要多,所有要找的数就是最后一次把数设为1的那个数字。

 1 import java.util.*;
 2 public class Chuxiancishu {
 3 
 4     public static void main(String[] args) {
 5         // TODO Auto-generated method stub
 6 //        Scanner sc = new Scanner(System.in);
 7 //        int[] a = new int[100];
 8 //        int num = 0;
 9 //        while(sc.hasNext()){
10 //            int n = sc.nextInt();
11 //            a[n]++;
12 //            num++;
13 //        }
14 //        for(int i = 0; i < num; i++){
15 //            if(a[i]>=(num/2)){
16 //                System.out.println(i);
17 //            }
18 //        }
19 
20     Scanner sc = new Scanner(System.in);
21     int[] a = new int[100];
22     int i =0;
23     
24     while(sc.hasNext()){
25         a[i]=sc.nextInt();
26         i++;
27     }
28     int count = 0;
29     int num = a[0];
30     for(int j = 0; j < i;j++){
31         //System.out.println(a[j]);
32         if(a[j]==num) count++;
33         else if(count>0) count--; 
34         else num =a[j];
35     }
36     System.out.println(num);
37     }
38 
39 }

 

以上是关于c语言编程序,输入10个整数,把其中重复出现的数删去 输出删除重复数后的各数的主要内容,如果未能解决你的问题,请参考以下文章

用c语言编程,从键盘上输入10个整数存放到一维数组中,输出其中最大的数及其对应的数组下标值

编写一个C语言程序:输入10个整数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。

C语言.任意n个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

C语言编程:任意输入10个整数放入数组中,然后求其中的最大值和最小值

怎样用C语言判断一个整数中有没有重复的数

怎样用C语言判断一个整数中有没有重复的数