用C写个编程

输入一个完全由数字组成的字符串,从字符串的第一个字符开始,每两个数字作为两位整数,存放在一维整型数组中,如果最后只剩一个数字,则将该字符作为一个整数存放在数组中。试编写一... 输入一个完全由数字组成的字符串,从字符串的第一个字符开始,每两个数字作为两位整数,存放在一维整型数组中,如果最后只剩一个数字,则将该字符作为一个整数存放在数组中。试编写一个函数实现上述功能,字符串的输入,一维整型数组的输出在主函数中完成。 展开
 我来答
仙戈雅3n
2014-01-16 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:899万
展开全部
#include <stdio.h>
#define  MAXLONE_STR 100
#define  MAXLONE_DIG 50

int getDigits(char a[],int target[]){
   int i=0,k=0,index_dig=0;
   const int two_dig=2;
   while (a[i]!='\0')
   {
   if(k==2){
          target[index_dig++]=(a[i-1]-48)+((a[i-2]-48)*10);
          k=0;
   }
       else{
   i++;
   k++;
   }
   
   }
   //当k=1时说明尾部仅有一个数字
   if(k==1) target[index_dig++]=(a[i-1]-48);
   return index_dig; // 返回数组长度
}
void main(){
    char test[MAXLONE_STR]="1234567";
int dig[MAXLONE_DIG];
int len=getDigits(test,dig);

// 输出得到的数字
for (int i=0;i<len;i++) printf("%d ",dig[i]);
printf("\n");
 
}
追问
能给个算法流程图不?算法设计也ok...
追答
这个算法就是两两为一组,用k来记数,记到2就开始把i-1个位置(个位数)+[i-2](十位数)*10就是一组十位数,最后再判断k=1时,说明字符串为奇数,即最后落下一个数(也就个位数)
百度网友21a360264
2014-01-16 · TA获得超过1855个赞
知道小有建树答主
回答量:640
采纳率:100%
帮助的人:367万
展开全部
int main()
{ char s[1000];
  int  i, j, k, t[500];
  gets(s);  // input a string.
  i = 0, j = 0;
  for(; s[i] != '\0'; i+=2, j++)
  {
     t[j] = s[i] -'0';
     if (s[i+1] == '\0')
       break;
     t[j] = t[j] * 10 + s[i+1] - '0';
   }
   j++;
   printf("%d number get in total.", j);
   printf("They are:");
   for(k=0; k<j; k++)
     printf(" %d", t[k]);
 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fusfajen
2014-01-16 · TA获得超过1453个赞
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:80.2万
展开全部
要什么样的程序啊,这个首先得有个目的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式