【C语言】计算奇数排的和并用拼音输出

#include <stdio.h>
#include<string.h>
#define N 10
int main()
{
  int a[N][N],b[N],c[N];
  int i,j,k;
  int m,n;
  int sum,temp,temp1,count,mask;
  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++)
  {
    sum=0;
    for(j=0;j<n;j++)
    {
      if(i==0||i%2==0)
      {
        sum+=a[i][j];
      }
      else
      {
        break;
      }
    }
    b[i]=sum;
  }

  /*for(i=0;i<m;i++)
  {
    printf("%d\n",b[i]);
  }
  printf("\n");*/ //检验b[i]的各项值

  for(i=0;i<m;i++)
  {
    if(b[i]==0)
    {
      for(j=i;j<m;j++)
      {
        temp=b[j];
        b[j]=b[j+1];
        b[j+1]=temp;
      }
      m--;
    }
  }
  //printf("%d\n",m);

  /*for(i=0;i<m;i++)
  {
    printf("%d\n",b[i]);
  }
  printf("\n");*/ //检验b[i]的各项值

  for(i=0;i<m;i++)
  {
    mask=0;
    temp=b[i];
    while(temp>0)
    {
      temp=temp/10;
      mask++;
    }//计算位数
    temp1=b[i];
    for(j=0;j<mask;j++)
    {
      c[j]=temp1%10;
      temp1=temp1/10;
    }//将每个数字储存在数组,方便输出;
    printf("%d:",b[i]);
    for(j=mask-1;j>=0;j--)
    {
      switch(c[j])
      {
        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;
      }
    }
    printf("\n");
  }
  return 0;
}

【问题描述】按程序功能要求编写程序,并将程序代码以文件名1-A-3.c 保存到【答题文件夹】文件夹中。
功能说明:从键盘输入不超过10行10列的整型二维数组的各元素,
求出各奇数行(下标为0,2,4,6...的行,即第1,3,5,7...行)之和,
并把和的每位数字转成拼音(0~9数字拼音分别为:ling,yi,er,san,si,wu,liu,qi,ba,jiu)输出,
输出格式参照样例的输出格式,各数拼音之间以一个空格分隔。
【样例输入】:
  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,并转换成拼音输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值