本帖最后由 bin554385863 于 2019-11-1 00:06 编辑 /*读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字*/
#include <stdio.h>
int func1(int num) //计算数字的权值之和
{
int sum = 0;
if ((num >= __INT_MAX__)||(num <= 0))
{
sum = -1;
}
else
{
while (num != 0)
{
int t = num % 10;
num /= 10;
sum += t;
}
}
return sum;
}
void func2(int num) //变换写法
{
if ((num >= __INT_MAX__)||(num <= 0))
{
printf("-1");
}
else
{
while (num != 0)
{
int t = num % 10;
switch (t)
{
case 0:
printf("零 ");
break;
case 1:
printf("壹 ");
break;
case 2:
printf("贰 ");
break;
case 3:
printf("叁 ");
break;
case 4:
printf("肆 ");
break;
case 5:
printf("伍 ");
break;
case 6:
printf("陆 ");
break;
case 7:
printf("柒 ");
break;
case 8:
printf("捌 ");
break;
case 9:
printf("玖 ");
default:
break;
}
num /= 10;
}
}
}
int main(int argc, char const *argv[])
{
int a = 1;
while (1)
{
scanf("%d", &a);
if (a <= 0)
{
printf("程序结束");
break;
}
printf("%d的权值之和是: %d\n组成数字为: ", a, func1(a));
func2(func1(a));
printf("\n");
}
return 0;
}
-----------------------------------------------------------------------------
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS E:\Users\admin\Documents\VScode> & 'c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-cv3ionhq.a5d' '--stdout=Microsoft-MIEngine-Out-e3yhoppl.gmx' '--stderr=Microsoft-MIEngine-Error-0wkylms4.3ze' '--pid=Microsoft-MIEngine-Pid-xh4qj31w.not' '--dbgExe=E:\My Program\Others\MinGW\bin\gdb.exe' '--interpreter=mi'
9999
9999的权值之和是: 36
组成数字为: 陆 叁
356
356的权值之和是: 14
组成数字为: 肆 壹
123588
123588的权值之和是: 27
组成数字为: 柒 贰
0
程序结束
PS E:\Users\admin\Documents\VScode>
========================================================
我很好奇楼主是从哪里学的用getchar()来输入数字的? |