数组查找及替换(作业题救救孩子)
Description给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。
Input
第一行为数组元素个数 n 和整数 b (1≤n,b≤100)
第二行为数组各个元素ai (1≤ai≤100)
Output
输出仅一行,每个输出数字或字符之后均有空格。
Sample Input 1
6 2
65 1 5 89 7 9
Sample Output 1
1 5 7 9 A Y
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, b;
scanf_s("%d %d", &n ,&b);
int* I_list = (int*)malloc(n * sizeof(int));
int* I_list2 = (int*)malloc(n * sizeof(int));
int k=0;
for (int i = 0;i < n;i++)
{
scanf_s("%d", &I_list);
if (I_list % b != 0)
{
I_list2 = I_list;
}
}
for (int j = 0; j < k - 1; j++)
{
for (int i = 0; i < k - 1 - j; i++)
if (I_list2 > I_list2)
{
int temp = I_list2;
I_list2 = I_list2;
I_list2 = temp;
}
}
for (int i = 0;i < k;i++)
{
if (I_list2 >= 'A' && I_list2 <= 'Z')
{
printf("%c", I_list2);
}else
printf("%d", I_list2);
if (i != k - 1)
printf(" ");
}
}
/*
6 2
65 1 5 89 7 9
*/
#include"stdio.h"
int main(void)
{
int n,b,i,j,temp;
scanf("%d%d",&n,&b);//输入第一行,n和b
int a,m=0;
for(i=0;i<n;i++)//输入n个数,并把不能被b整除的放入数组a中
{
scanf("%d",&temp);
if (temp%b)
a=temp;
}
for (i=0;i<m;i++)//冒泡排序
{
for (j=0;j<m-1;j++)
{
if (a>a)
{
temp=a;
a=a;
a=temp;
}
}
}
for(i=0;i<m;i++)//输出
{
if(a>=65&&a<=90)//若是大写字母,就以%c输出
printf("%c ",a);
else //否则输出该数字
printf("%d ",a);
}
return 0;
} lovedai 发表于 2020-11-18 13:20
可以写下注释吗{:10_329:} sunrise085 发表于 2020-11-18 13:28
我大概懂了...但是数字和字母是怎么对应的。。 sunrise085 发表于 2020-11-18 13:28
直接%c他就自动对应了吗 姜姜酱酱 发表于 2020-11-18 22:48
直接%c他就自动对应了吗
对,这里语言自动做了类型转换 lovedai 发表于 2020-11-18 23:07
对,这里语言自动做了类型转换
okok{:10_275:} 姜姜酱酱 发表于 2020-11-18 22:46
我大概懂了...但是数字和字母是怎么对应的。。
数字和字母其实本质是一样的,字母的ASCII码就是数字,所以数字以%c输出的时候就是ASCII码对应的字符,例如:数字48就是字符'0',数字65就是字符'A',数字97就是字符'a'
问题解决了就评个最佳结题吧
页:
[1]