C语言程序题目 请教~~~
|
输入一个字符串,内有数字和非数字字符,如:a123x456 17960?302tab5876,将当中连续的数字作为一个整数,依次存放到数组a中.比如说是,123放在a[0]中,456放在a[1]中等等,统计共有多少个整数,并输出这些整数.要求:(1)在主函数中输入字符串,并输出结果.调用子程序(Procedures)处理字符串. (2)子函数的返回值为整数的个数. #include <stdio.h>#include <string.h>int isInt(char ch){ if(ch >= '0' && ch <= '9') return 1; return 0;}int isIn(int num[], int v, int n){ int i = 0; while(i < n) { if(v == num[i]) return 1; ++i; } return 0;}int main(){ char str[256]; int num[256]; int count = 0; int i,tmp,flag,len,j; i = 0; gets(str); len = strlen(str); while( i < len && isInt(str[i]) == 0) ++i; tmp = 0; for(; i <= len; ++i) { if(isInt(str[i]) == 1) { flag = 0; tmp =tmp*10 + str[i]-'0'; } else { if(flag == 0) { if(isIn(num,tmp,count) == 0) { num[count++] = tmp; } flag = 1; } tmp = 0; } } for(i = 0; i < count; ++i) for(j = 0; j < count; ++j) { if(num[i] < num[j]) { tmp = num[i]; num[i] = num[j]; num[j] = tmp; } } for(i = 0; i < count; ++i) printf("%d ",num[i]); return 0;} #include"stdio.h"#define LEN 256void main() { char line[LEN]; for (int i = 0; i < LEN; i++) { line[i] = '\0'; } printf("input line:\n"); gets(line); bool isInt = false; char *ptra = line; printf( "putout number:\n "); while(*ptra != '\0') { if (*ptra >= 48 && *ptra <= 57) { printf("%d",(*ptra - 48)); isInt = true; } else { if (isInt) { printf(","); } isInt = false; } ptra++; } printf("\n");} |
》热 点 关 注
》编 辑 推 荐
》相 关 图 文
