帮忙写个C语言程序,输入任意字符串 输出字符串中的数字,并将数字按大小排序

我是个C语言初学者,最近比较忙,没时间来写。
能不能给出详细程序并给出思路呢。
用C语言写。
另外请教一下,怎样才能学好C语言?
高等数学,线性代数,概率统计这些课程是不是对一名程序员很重要?

#include <stdio.h>
void main()
{
char c[20],i,c1[20],j,t;
for(i=0;i<20;i++)
c1[i]=c[i]='\0';//对字符数组赋初值,后面可以用来判断输入了几个字符
printf("输入一串字符:\n");
scanf("%c",c);
for(i=0;c[i]!='\n'&&i<20;)//输入字符,当按回车时,说明字符输入完毕
{
i++;
c[i]=getchar();
}
for(i=0,j=0;i<20;i++)//将其中为数字的提取出来
{
if(c[i]=='\0') break;
if(c[i]>='0'&&c[i]<='9')
c1[j++]=c[i];
}
for(i=0;i<20;i++)//对提取出来的数字排序
{
if(c1[i]=='\0') break;
j=0;
for(;j<i;j++)
{
if(c1[i]>c1[j])
{
t=c1[i];
c1[i]=c1[j];
c1[j]=t;
}
}
}
printf("%s\n",c1);//输出
}这个程序中字符最大可输入20个,也可改程序来增加可输入最大值我对c语言学的也不深,只是能编个小程序而已,至于你的说的那些课程,我感觉我在编c语言程序时没用到过
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-10
#include<stdio.h>
#include<stdlib.h>
#define MAX 200void main()
{
char *s, *result,*temp;
int i=0,j=0;
s=(char *)malloc(MAX*sizeof(char));
result=(char *)malloc(MAX*sizeof(char));
temp=result;
scanf("%s",s); while(*s !='\0')
{
if(*s>='0'&&*s<='9')
{
*result=*s;
result++;
i++;
}
s++;
}
for(j=0;j<i;j++)
{
printf("%c",temp[j]);
}
} 这里写了一段 不知道觉得如何本回答被网友采纳
第2个回答  2013-11-11
如果我是网监的,一定写给你。可惜我是侦察的…