作业帮 > 综合 > 作业

用C写个编程输入一个完全由数字组成的字符串,从字符串的第一个字符开始,每两个数字作为两位整数,存放在一维整型数组中,如果

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/09 11:37:13
用C写个编程
输入一个完全由数字组成的字符串,从字符串的第一个字符开始,每两个数字作为两位整数,存放在一维整型数组中,如果最后只剩一个数字,则将该字符作为一个整数存放在数组中.试编写一个函数实现上述功能,字符串的输入,一维整型数组的输出在主函数中完成.
#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')
   {
\x09   if(k==2){
          target[index_dig++]=(a[i-1]-48)+((a[i-2]-48)*10);
          k=0;
\x09   }
       else{
\x09\x09   i++;
\x09\x09   k++;
\x09   }
\x09   
   }
   //当k=1时说明尾部仅有一个数字
   if(k==1) target[index_dig++]=(a[i-1]-48);
   return index_dig; // 返回数组长度
}
void main(){
    char test[MAXLONE_STR]="1234567";
\x09int dig[MAXLONE_DIG];
\x09int len=getDigits(test,dig);

\x09// 输出得到的数字
\x09for (int i=0;i<len;i++) printf("%d ",dig[i]);
\x09printf("\n");
\x09 
}
再问: 能给个算法流程图不?算法设计也ok...
再答: 这个算法就是两两为一组,用k来记数,记到2就开始把i-1个位置(个位数)+[i-2](十位数)*10就是一组十位数,最后再判断k=1时,说明字符串为奇数,即最后落下一个数(也就个位数)
用C写个编程输入一个完全由数字组成的字符串,从字符串的第一个字符开始,每两个数字作为两位整数,存放在一维整型数组中,如果 编写一个函数,输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数依次存放到数组a中 有一个包含了n个字符的字符串.编写一个函数,将此字符串从头开始共m个字符作为一个子字符串复制到另一个字符数组中,并输出该 用c语言编程:输入一个字符串,统计其中英文字母,数字符号及其他字符的个数 从键盘上输入一个字符串存放在一个字符数组中,按以下规则加密:所有的大写英文字母加3,小写英文字母减4,其他字符不变,将加 c语言:输入一个正整数,统计该整数中数字8的个数.如果输入的数是负数输出字符串er 写一个函数,输入一个5位数字,要求输出这5个数字的字符,但每两个数字间空一个空格. 关于一道C语言的题目14.以下程序的功能是:统计一个字符串中数字字符"0"到"9"各自出现的次数,统计结果保存在数组 c 求一个单片机编程题假设从内部的RAM30H单元开始,连续存放一个字符串,以回车符(其ASCII码为ODH)作为结束标志, vfp 写命令从键盘输入一个字符串(要求任意长度),然后删除其中的非数字字符,最后输出. 求用c语言写一个字符串输入的计算器.如1+2*3=7.输入的均为整数,不需要有括号什么的,结果要有小数.把结果存放在一个 C语言编程 定义函数将一个整型一维数组反序,数组的输入和输出在主函数中完成