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.

两道c语言程序题,求解
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 树下等苹果 2022-05-27 18:43关注
题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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报