时间在哪里853 2022-11-20 09:53 采纳率: 81.3%
浏览 67
已结题

从键盘输入不超过10行10列的整型二维数组的各元素,求出各奇数行(下标为0,2,4,6...的行,即第1,3,5,7...行)之和, 并把和的每位数字转成拼音输出,各数拼音之间以一个空格分隔。

样例输入:
5 6
56 78 36 4 50 80
19 44 95 72 -8 60
85 67 -3 32 12 35
29 21 47 88 28 -9
7 66 53 40 20 15
样例输出:
304:san ling si
228:er er ba
201:er ling yi
样例说明:
输入5行6列二维数组;分别求出第1,3,5行的和304, 228, 201,
并转换成拼音输出。


#include<stdio.h>
#define N 10
int main()
{
    int a[N][N],i,j,m,n,sum=0,x,k;
    char s[N][N]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    scanf("%d%d",&m,&n);
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
        scanf("%d",&a[i][j]);
    for(i=0;i<m;i=i+2)
    {
        for(j=0;j<n;j++)
            sum=sum+a[i][j];
        printf("%d:\n",sum);
        sum=0;
    }
    return 0;
}

怎么把拼音加到数字后面

  • 写回答

4条回答 默认 最新

  • qzjhjxj 2022-11-20 12:15
    关注

    题主代码修改如下,供参考:

    #include <stdio.h>
    #define N 10
    int main()
    {
        int   a[N][N],i,j,m,n,sum=0,x[10],k;
        char* s[N]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
        scanf("%d%d",&m,&n);
        for(i=0;i<m;i++)
            for(j=0;j<n;j++)
                scanf("%d",&a[i][j]);
    
        for(i=0;i<m;i+=2)
        {
            for(j=0,sum=0;j<n;j++)
                sum += a[i][j];
            printf("%d:",sum);
            k = 0; x[0]=0;
            while(sum){
                x[k++] = sum % 10;
                sum /= 10;
            }
            if(k == 0) k++;  //当sum为0时 输出 ling
            for(k--;k >= 0;k--)
                printf("%s ",s[x[k]]);
            printf("\n");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月20日

悬赏问题

  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。