输入一组数字
存储在一维数组中,程序能统计输入数中一共有多少组相同的数,并删除相同的数,使剩下的
数中每个数字都不相同
将剩下的数按从小到大的顺序排列输出,同时输出所统计的相同数的组数以及输出数组中数据个数。
最好用devc++做,感激不尽!
#include <stdio.h>
int main()
{
int arr[10] = { 0 };
int x;
int count0 = 0;//计算一共输入了几个0
int count = 0;//计算一共有几个重复的数
while (scanf("%d", &x) != EOF)
{
if (x == 0)
count0++;
else if (arr[x]!= 0)
count++;
else
arr[x] = x;
if (getchar() == '\n')
break;//用回车来停止输入
}
int NUM = 0;//计算一共有几个数字
if (count0 != 0)
{
NUM++;//count0不为0说明有0这个数字
printf("%d ", 0);
if(count0>1)//如果count0>1说明0也是重复的
count++;
}
for (int i = 1; i < 10; i++)
{
if (arr[i] != 0)//从1开始,只有不为0的数字才需要输出
{
NUM++;//总数+1
printf("%d ", arr[i]);
}
}
printf("\n");
printf("一共有%d个数字,重复的有%d个\n", NUM, count);
return 0;
}
结果如下
如果对你有帮助,还请点个采纳,万分感谢!
#include <stdio.h>
int main()
{
int a[10] = { 0 };
while (1)
{
int n; scanf("%d", &n);
char s = getchar();
if (s == '\n')
{
break;
}
a[n]++;
}
int count = 0;
for (int i = 0; i < 10; i++)
{
if (a[i] != 0)
{
printf("%d : %d\n", i, a[i]);
count++;
}
}
printf("%d\n", count);
return 0;
}
数据范围能给一下吗