哪里有错啊,求助?PAT1002题.

#include<stdio.h>
#include<string.h>
#define N 3
int main()
{
	int sum = 0;
	char n[100];
	gets(n);
	for (int i = 0; n[i] != '\0'; i++)
	{
		sum += (n[i] - '0');
	}
	int i = 0, a[N];
	a[0] = sum / 100;
	a[1] = (sum % 100) / 10;
	a[2] = (sum % 100) % 10;
	while (!a[i])
		i++;
	for (; i < 3; i++)
	{
		switch (a[i])
		{
		case 0:printf("ling"); if (i < N - 1) printf(" "); break;
		case 1:printf("yi");   if (i < N - 1) printf(" "); break;
		case 2:printf("er");   if (i < N - 1) printf(" "); break;
		case 3:printf("san");  if (i < N - 1) printf(" "); break;
		case 4:printf("si");   if (i < N - 1) printf(" "); break;
		case 5:printf("wu");   if (i < N - 1) printf(" "); break;
		case 6:printf("liu");  if (i < N - 1) printf(" "); break;
		case 7:printf("qi");   if (i < N - 1) printf(" "); break;
		case 8:printf("ba");   if (i < N - 1) printf(" "); break;
		case 9:printf("jiu");  if (i < N - 1) printf(" "); break;
		}
	}
	return 0;
}

#include<stdio.h>
int main(){
	char s[105];
	scanf("%s",s);
	int i,count=0;
	for(i=0;s[i]!='\0';i++){
		count+=(s[i]-'0');
	}
	char out[105];
	sprintf(out,"%d",count);
	for(i=0;out[i]!='\0';i++){
		switch(out[i]){
			case '0':
				printf("ling");	break;
			case '1':
				printf("yi");break;
			case '2':
				printf("er");break;
			case '3':
				printf("san");break;
			case '4':
				printf("si");break;
			case '5':
				printf("wu");break;
			case '6':
				printf("liu");break;
			case '7':
				printf("qi");break;
			case '8':
				printf("ba");break;
			case '9':
				printf("jiu");break;
			default: break;
		}
		if(out[i+1]!='\0')
			printf(" ");
	}
}

 

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
	int i = 0, sum = 0;
	char n[100];
	gets_s(n);
	for (i = 0; n[i] != '\0'; i++)
	{
		sum += (n[i] - '0');
	}
	if (sum > 0)
	{
		char a[4];
		_itoa_s(sum, a, 4, 10);
		for (i = 0; i < 3; i++)
		{
			switch (a[i] - '0')
			{
			case 0:printf("ling"); break;
			case 1:printf("yi");   break;
			case 2:printf("er");   break;
			case 3:printf("san");  break;
			case 4:printf("si");   break;
			case 5:printf("wu");   break;
			case 6:printf("liu");  break;
			case 7:printf("qi");   break;
			case 8:printf("ba");   break;
			case 9:printf("jiu");  break;
			}
			if (a[i + 1] != 0)
				printf(" ");
			else
				break;
		}
	}

	return 0;
}

 

这个测试点1是什么?用的的哪个编译器,我用dev c++运行你的代码,没有运行时错误。

固定就是三位数的自然数吗?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632