3,881
社区成员
发帖
与我相关
我的任务
分享
#define MAX_NUM 100
#define MIN_NUM 1
int org[MAX_NUM]; // You array
int dest[MAX_NUM] = {0};
int i;
// fill the original array here
// TODO ...
for(i=0; i<MAX_NUM; i++) {
if (org[i] > MAX_NUM || org[i] < MIN_NUM) {
// printf("error: %d\n", org[i]);
continue;
}
dest[org[i]-1]++;
}
for(i=MIN_NUM-1; i<MAX_NUM; i++) {
if (dest[i] == 0) {
printf("missing: %d\n", i+1);
} else if (dest[i] > 1) {
printf("repeated: %d, count=%d\n", i+1, dest[i]);
}
}
#define N 100
#include <stdio.h>
int main ()
{
int aim[N];//你的存放1-100整数的数组
int S1=N*(N+1)/2;
int Q1=N*(N+1)(2*N+1)/2;
int S2=0;
int Q2=0;
int result;
int i;
for(i = 0; i < 100; i++)
{
S2+=aim[i];
Q2+=aim[i]*aim[i];
}
result=(Q1-Q2)/( 2*(S1-S2) ) +(S1-S2)/2;
printf("%d\n",result);
}
#include <stdio.h>
int main ()
{
int aim[100];//你的存放1-100整数的数组
int check[101] = {0}; 多加一个做监视哨
int repeat;//重复的数字
int res=0;//要找的数字
int i;
for(i = 0; i < 100; i++)
check[aim[i]] == -1; //把数字对应的位置置-1,缺的那个数的位置不会被改变,仍是0
for(i=0;check[i]!=0;i++); //遇到0时跳出循环。
res=i+1; //下标从0开始,而实际需从1开始,所以+1
printf("%d\n",res);
}
#include <stdio.h>
#define N 10//可以定义成100
int main(void)
{
int arr[N] = {5,2,1,8,3,10,7,4,9,10};//存放数字的数组、包括重复的数字,这里重复的是10
int a[N] = {0};//判断重复数字用到的数组
int ret = 0, i = 0;
for(i = 0; i < N; i++)
{
if(a[arr[i] - 1] == 0)
a[arr[i] - 1] = 1;//若数字arr[i]第一次出现,则将其值置为1、并记录到数组a中
else if(a[arr[i] - 1] == 1)//数字arr[i]重复
{
ret = arr[i];
break;
}
}
printf("The repeat number is %d.\n", ret);
return 0;
}