gpt4 book ai didi

c - 找出其中位数最大的数字

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:07 24 4
gpt4 key购买 nike

这是几年前的考题,我正在努力解决它。

我必须构建一个程序,从文本文件中读取一组数字,中间有一个空格,可以是整数或 float 。然后它使用递归函数打印其中具有最大位数的数字。

我不知道如何从文件中读取数字。如果我把它们都读成 float ,它们最终会得到相同数量的数字。这是我的代码,直到知道,但我不知道如何进行。例如:

在文本文件中我们有数字: 1 2 1.5 1.456 2 2.78 7

位数最大的数是 1.456 其中有 4 位。

#include <stdio.h>
#include <stdlib.h>


int main()
{
int n,i,nr=0;
float v[100];
FILE *fp;
fp = fopen("text.txt","r");
while(fscanf(fp,"%f",&v[nr])==1){
nr++;
}
fclose(fp);



return 0;
}

最佳答案

如果您将输入视为一个简单的字符串,您应该可以只使用 strlen(),不是吗?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
size_t maxdigits = 0, i;
char buf[128], winner[128];
char winner[128];
FILE* fp = fopen("text.txt", "r");
if (fp == NULL) {
printf("missing text.txt\n");
return -1;
}
memset(winner, 0, sizeof(winner));
while(fscanf(fp, "%s", buf) == 1) {
i = strlen(buf);
if (strchr(buf, '.') != NULL)
i--;
if (i > maxdigits) {
maxdigits = i;
strcpy(winner, buf);
}
}
fclose(fp);
printf("winner '%s' has %d digits\n", winner, maxdigits);
return 0;
}

关于c - 找出其中位数最大的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37709983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com