C语言 · 数组查找及替换

时间:2021-12-12 05:46:17
算法训练 数组查找及替换  
时间限制:1.0s   内存限制:512.0MB
    
问题描述
  给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。元素个数不超过100,b在1至100之间。
输入格式
  第一行为数组元素个数和整数b
  第二行为数组各个元素
输出格式
  按照要求输出
样例输入
7 2
77 11 66 22 44 33 55

样例输出

11 33 55 M

 #include<stdio.h>
int main(){
int b,n;
int k=;
scanf("%d %d",&n,&b);
int a[],c[];
/*输入数组元素*/
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
/*删除能被b整除的元素*/
for(int i=;i<n;i++){
/*删除能被b整除的元素*/
if(a[i] % b != ){
c[k] = a[i];
k++;
}
}
/*冒泡升序*/
for(int i=;i<k-;i++){
for(int j=;j<k--i;j++){
if(c[j]>c[j+]){
int temp = c[j];
c[j] = c[j+];
c[j+] = temp;
}
}
}
/*替换并输出结果*/
for(int i=;i<k;i++){
if(c[i]>='A' && c[i]<='Z'){
int flag = c[i];
char ch = (char) flag;
printf("%c ",ch);
}else if(c[i]>='a' && c[i]<='z'){
int flag = c[i];
char ch = (char) flag;
printf("%c ",ch);
}else{
printf("%d ",c[i]);
}
}
}