1.删除整数序列中对应的数字
问题描述:有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。输出为一行,删除指定数字之后的序列。
int main()
{
int n = 0;
scanf("%d", &n);
int arr[50];
int i = 0;
for (i = 0;i < n;i++)
{
scanf("%d", &arr[i]);
}
int del = 0;
scanf("%d", &del);
int j = 0;
for (i = 0;i < n;i++)
{
if (arr[i] != del)
{
arr[j++] = arr[i];
}
}
for (i = 0;i < j;i++)
{
printf("%d", arr[i]);
}
return 0;
}
2.输入n个成绩,并输出n个成绩中最高分数和最低分数的差
int main()
{
int n = 0;
scanf("%d", &n);
int arr[50];
int i = 0;
for (i = 0;i < n;i++)
{
scanf("%d", &arr[i]);
}
int max = arr[0];
for (i = 1;i < n;i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
int min = arr[0];
for (i = 1;i < n;i++)
{
if (arr[i] < min)
{
min = arr[i];
}
}
printf("%d", max - min);
return 0;
}
3.完成字母大小写转换
问题描述:完成字母大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;反之则转换为大写字母。
int main()
{
char ch = 0;
while (scanf("%c", &ch) == 1)
{
if (ch >= 'a' && ch <= 'z')
{
printf("%c\n", ch - 32);
}
else
printf("%c\n", ch + 32);
getchar();
}
return 0;
}
说明:scanf()读取成功时,返回的是读取的数据的个数,读取失败则返回EOF。getchar() 的作用是读取输入数据后的回车(处理\n)。
补充:其实C语言中有判断大小写和转换大小写的函数,分别是 isupper()、islower()、toupper()以及tolower()。
4.判断是不是字母
#include<stdio.h>
int main()
{
char ch=0;
while(scanf("%c",&ch)==1)
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
printf("%C is an alphabet.\n",ch);
}
else{
printf("%C is not an alphabet.\n",ch);
}
getchar();
}
return 0;
}
注意:%c前面加空格,是跳过下一个字符之前的所有空白字符。
补充:判断是不是字母有一个函数为 isalpha()
5.变种水仙花数
问题描述:变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。
例如:
655 = 6 * 55 + 65 * 5
1461 = 1*461 + 14*61 + 146*1
求出 5位数中的所有 Lily Number。
int main()
{
int i = 0;
for (i = 10000;i <= 99999;i++)
{
int sum = (i % 10) * (i / 10) + (i % 100) * (i / 100) + (i % 1000) * (i / 1000) + (i % 10000) * (i / 10000);
if (sum == i)
{
printf("%d ", i);
}
}
printf("\n");
return 0;
}