1.输入一串字母字符,长度不超过20,存放到 a 数组中,将宇符串中毎一个小写字母减去' A ’宇符的结果值存放到另一个整型数组 b 中,长度可以定义为20,最后输出 b 数组内容。例如:输入“ AScxDmbTk 2”,各个元素与’ A ’计算后的结果存放到数组中,最后输出数组 b 每一个元素结果为34,55,44,3
3,57.
2.编程找出1000-9999范围内,数据的前两位和后两位之和的平方等于其自身的数据并统计其个数,最后输出每一个符合条件的数据及个数。要求:主函数完成子函数的调用及符合条件的数据的输出,数据的拆分计算及判定采用子函数实现,判定结果返回主函数。例如:9801,其前两位98和后两位01,满足
(98+01)*(98+01)-9801.
题1:
#include<stdio.h>
#include<math.h>
int main()
{
char a[20];
int b[20],k=0,count=0;
gets(a); //输入a数组
for (int i = 0; i < strlen(a); i++) //将a数组元素转换为b数组元素
if (a[i] >= 'a' && a[i] <= 'z') //转换条件是:a的数组元素是小写字母,即a<=a[i]<=z
{
b[k] = a[i] - 'A';
count++; //统计小写字母个数,方便输出b数组
k++;
}
for (int i = 0; i < count; i++) //输出b数组
printf("%d", b[i]);
return 0;
}
题2:
#include<stdio.h>
#include<math.h>
int fun(int i)
{
int a, b, c, d,num_12,num_34;
a = i % 10;//个位
b = i / 10 % 10;//十位
c = i / 100 % 10;//百位
d = i / 1000 % 10;//千位
num_12 = b * 10 + a; //前两位
num_34 = d * 10 + c; //后两位
if ((num_12 + num_34) * (num_12 + num_34) == i)
return 1;
else
return 0;
}
int main()
{
int i, count = 0,flag;
for (i = 1000; i < 9999; i++)
{
if (fun(i))
{
count;
flag = i;
}
}
printf("最后输出每一个符合条件的数据:%d\n符合条件的数据个数:%d", flag, count);
return 0;
}
题目一就是字符输入和减法操作
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char a[21]; //不超过20,所以申请21个空间
int i=0,n=0;
int b[20];
gets_s(a); //如有错误,改成gets(a);
while (a[i]!='\0')
{
if (a[i] >= 'a' && a[i] <= 'z')
b[n++] = a[i] - 'A';
i++;
}
for (i = 0; i < n; i++)
{
if (i < n - 1)
printf("%d,", b[i]);
else
printf("%d", b[i]);
}
return 0;
}
题目二:
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//数据拆分
void splitnmb(int n, int* a, int* b)
{
*a = n / 100;
*b = n % 100;
}
//判断是否满足
int isfun(int n, int a, int b)
{
if ((a + b) * (a + b) == n)
return 1;
else
return 0;
}
int main()
{
int i;
int a, b;
int nmb = 0;
for (i = 1000; i <= 9999; i++)
{
splitnmb(i, &a, &b);
if (isfun(i, a, b))
{
nmb++;
printf("%d ", i);
}
}
printf("\n总共%d个\n", nmb);
return 0;
}
#include <stdio.h>
#include <string.h>
int main(){
//输入一串字母字符,长度不超过20,存放到 a 数组中,将宇符串中毎一个小写字母减去' A ’宇符的结果值存放到另一个整型数组 b 中,
//长度可以定义为20,最后输出 b 数组内容。例如:输入“ AScxDmbTk 2”,各个元素与’ A ’计算后的结果存放到数组中,
//最后输出数组 b 每一个元素结果为34,55,44,33,57.
char a[20];
int b[20]={0};
int i, j =0;
gets(a);
for(i =0; i<20; i++){
if (a[i]<='z' && a[i]>= 'a'){
b[j] = a[i] - 'A';
j++;
}
}
for (int k =0;k<j;k++){
printf("%d ",b[k]);
}
}