11/15

img

#include<stdio.h>
int main (){
	int N, i, j, M, count;
	unsigned int arr[1000], times[10] = {0}, maxvalue[10];
	scanf("%d",&N);
	for(i=0;i<N;i++){
		scanf("%d",&arr[i]);
	}
//	times[10] = {0};
	for(i=0;i<N;i++){
			while(arr[i] % 10 != 0){
				times[arr[i] %10] ++;
				i /= 10;
				count ++;
			}
	}
	M = 0;
	for(i=1;i<count;i++){
		if(times[0] < times[i]){
			M = times[i];
		}
	}
	printf("%d: ",M);
	count = 0;
	for(i=0;i<count;i++){
		if(times[i] == M){			
			maxvalue[count] = i;
			count ++;
		}
	}
	for(i=0;i<count - 1;i++){
		printf("%d ",maxvalue[i]);
	}
		printf("%d",maxvalue[count]);	
	return 0;
}



#include<stdio.h>

int main (){
   int N, i, j, M, count;
   unsigned int arr[1000], times[10] = {0}, maxvalue[10];
   
   scanf("%d",&N);
   for(i=0;i<N;i++){
       scanf("%u",&arr[i]); // 使用 %u 读取 unsigned int
   }
   
   for(i=0;i<N;i++){
       unsigned int num = arr[i];
       while(num > 0){
           times[num % 10]++; // 正确计算每个数字出现的次数
           num /= 10;
       }
   }
   
   M = 0;
   for(i=0;i<10;i++){ // 检查times数组中的所有元素
       if(times[i] > M){
           M = times[i]; // 找到最大的出现次数
       }
   }
   
   printf("%d: ",M);
   count = 0;
   for(i=0;i<10;i++){ // 检查times数组中的所有元素
       if(times[i] == M){
           maxvalue[count] = i; // 存储出现次数最多的数字
           count++;
       }
   }
   
   for(i=0;i<count - 1;i++){
       printf("%d ",maxvalue[i]); // 打印出现次数最多的数字
   }
   if(count > 0) { // 确保至少有一个数字被打印
       printf("%d\n",maxvalue[count - 1]); // 打印最后一个数字,并换行
   }
   
   return 0;
}

img

#include<stdio.h>
int main (){
	int N, M, i, arr[100], res[100];
	scanf("%d%d",&N,&M);
	for(i=0;i<N;i++){
		scanf("%d",&arr[i]);
	}
	for(i=0;i<N;i++){
//		res[i] = arr[(i + (N - M)) % N];
		res[i] = arr[(i + (N - M + N)) % N];//第一次没有考虑到N < M 的情况,这样就是负数,数组越界,完全有可能哦
	}
	for(i=0;i<N - 1;i++){
		printf("%d ",res[i]);
	}
	printf("%d",res[N - 1]);
	return 0;
}

posted @ 2024-11-15 13:34  GJ504b  阅读(6)  评论(0编辑  收藏  举报