开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情
计算机二级C语言程序设计题
题目:
函数fun()的功能是:将两个两位数的正整数a、b合并形成一个新的整数放在c中。合并的方式是:将a的十位和个位依次放在变量c的千位和十位上,b的十位和个位依次放在c的个位和百位上。例如,当a=45,b=12时,调用该函数后,c=4251。
#include <stdio.h>
#include <stdlib.h>
void fun(int a, int b, long *c)
{
*c=a/10*1000+b%10*100+a%10*10+b/10;
}
main()
{
void NONO();
int a, b;
long c;
printf("Input a,b:");
scanf("%d,%d", &a, &b);
fun(a, b, &c);
printf("The result is:%ld\n", c);
NONO();
system("pause");
}
void NONO()
{/* 本函数用于打开文件,输入数据,
调用函数,输出数据,关闭文件。 */
FILE *rf, *wf;
int i, a, b;
long c;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0; i<8; i++)
{
fscanf(rf, "%d,%d", &a, &b);
fun(a, b, &c);
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c);
}
fclose(rf);
fclose(wf);
}
解题思路:
a的十位作为c的千位,b的个位作为c的百位,a的个位作为c的十位,b的十位作为c的个位,最后利用求商和求余进行组合计算。
参考答案:
void fun(int a, int b, long *c)
{
*c=a/10*1000+b%10*100+a%10*10+b/10;
}
结果如下:
补充:
求商: a/b 结果是商的整数部分。
求余数: a%b 结果就是余数。
比如:
printf("a/b=%d……%d\n", a/b, a%b);
具体的代码:
#include <stdio.h>
void main()
{ int a,b; scanf("%d%d",&a,&b);
printf("商=%d 余数=%d\n", a/b, a%b); }
利用API计算商和余数 内置API:
- 一共有两个函数,一个适合int、一个适合long
- 返回的结构体div_t有两个元素,商是quot;余数rem
div_t res;
res = div(5,3);
printf("%d, %d\n", res.quot, res.rem);