严凯 发表于 2021-3-31 15:46:08

算数

#include<stdio.h>
#include<string.h>
int main()
{
   unsigned long longint i;
    int count=0,j,d=0;
    int k;
    char ch;
    scanf("%lld",&i);
    while(i!=0)
    {
      count=count+i%10;
      i=i/10;
    }
    d=0;
    while(count!=0)
    {
      k=count%10;
            d++;
                        count=count/10;
    }
    k='\0';
    j=d-1;

    for(j;j>=0;j--)
    {
          switch(k)
    {
      case 1:strcpy(ch,"yi");break;
      case 2:strcpy(ch,"er");break;
      case 3:strcpy(ch,"san");break;
      case 4:strcpy(ch,"si");break;
      case 5:strcpy(ch,"wu");break;
      case 6:strcpy(ch,"liu");break;
      case 7:strcpy(ch,"qi");break;
      case 8:strcpy(ch,"ba");break;
      case 9:strcpy(ch,"jiu");break;
      case 0:strcpy(ch,"ling");break;
}
      printf("%s ",ch);
    }
    return 0;
}

严凯 发表于 2021-3-31 15:47:30

我不知道怎么回事,我输入1234567890987654321   输出jiu ling(90),当我输入的数字更大了,就发现输出有错误了,是不是因为我这个值太大,导致溢出了?

LuLD 发表于 2021-3-31 15:55:12

我试了没有报错,不如你把报错信息发出来看看

小甲鱼_x 发表于 2021-3-31 16:14:22

为啥我用vc2019把这个程序打了一遍,编译出来,错误了好多.

严凯 发表于 2021-3-31 18:06:20

错倒是没有报错,就是答案不对,比如上面哪个例子应该输出yi san wu,而我的输出yi er er ,但是我现在已经解决了(用一个字符数组去装这个数字)。

Tiancl 发表于 2021-4-1 22:00:02

啊这,这么大的数确定不用字符数组?

人造人 发表于 2021-4-2 00:12:07

你要看清楚,n小于 10的100次方
你能告诉我 unsigned long long 的取值范围吗?
#include <stdio.h>

int main(void) {
    const char *string[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
    int ch;
    size_t sum = 0;
    while((ch = getchar()) != '\n') {
      if(ch == EOF) break;
      sum += ch - '0';
    }
    size_t reverse = 0;
    while(sum) {
      reverse = reverse * 10 + (sum % 10);
      sum /= 10;
    }
    ch = '\0';
    while(reverse) {
      printf("%c%s", ch, string);
      ch = ' ';
      reverse /= 10;
    }
    printf("\n");
    return 0;
}

严凯 发表于 2021-4-6 19:11:18

人造人 发表于 2021-4-2 00:12
你要看清楚,n小于 10的100次方
你能告诉我 unsigned long long 的取值范围吗?

可以啊,大佬,这个思路好啊,我想问一下,哪个const ch,为什么前面要加const,有什么用吗?还有哪个size_t sum,哪个size_t,是什么意思?

人造人 发表于 2021-4-6 21:33:07

严凯 发表于 2021-4-6 19:11
可以啊,大佬,这个思路好啊,我想问一下,哪个const ch,为什么前面要加const,有什么用吗?还有哪个siz ...

const 表示只读,如果你在编程的时候犯二了,编译器可以帮你检查出来,很管用的,^_^
size_t是一个类型
https://baike.so.com/doc/6788967-7005576.html

严凯 发表于 2021-4-7 09:08:45

人造人 发表于 2021-4-6 21:33
const 表示只读,如果你在编程的时候犯二了,编译器可以帮你检查出来,很管用的,^_^
size_t是一个类型
...

大佬,去看看我的快乐链表那个帖子,我真的要被搞吐了{:10_254:}
页: [1]
查看完整版本: 算数