c语言编程的一题:在一个字符串中有一些数,找出其中最大的一个 如 输入 fd32sfja94ds3984fdj 输出 3948

2024-12-02 14:52:50
推荐回答(3个)
回答1:

#include

int main()
{
char str[80];
int arr[80], temp, pos = 0, n = 0, i, max = 0, flag;

printf("请输入字符串:\n");
scanf("%s", str);

while (str[pos] != '\0')
{
temp = 0;
flag = 0;//设置是否有整数的标志
while (str[pos] >= '0' && str[pos] <= '9')
{
temp = 10 * temp + str[pos] - '0';
pos++;
flag = 1;
}
if (flag)
{
arr[n++] = temp;//将整数存储到数组中
pos--;//由于在存整数的时候多走了一步,要减1
}
pos++;
}
printf("字符串中还有的数字为:\n");
for (i = 0; i < n; i++)
{
printf("%d\n", arr[i]);
if (max < arr[i])
max = arr[i];
}
printf("最大的数字为:\n%d\n", max);
return 0;
}
大概是这样吧,应该能满足你的要求。

回答2:

#include

int max(int a,int b)
{
return a>b?a:b;
}

int main()
{
int max_val = (int)0x80000000; /* 最小的整型 */
int a;

while(1)
{
if(scanf("%d",&a) == 1)
max_val = max(a,max_val);
else if(getchar() == EOF)
break;
}

printf("%d\n",max_val);

return 0;
}

试试看吧

回答3:

你这个问题描述的不太好,不太明白题意
为什么输出的是3948?