gpt4 book ai didi

c - 我需要编写一个 C 程序来调用给定函数来计算文件中的字符和数字的数量

转载 作者:行者123 更新时间:2023-11-30 15:13:56 25 4
gpt4 key购买 nike

我需要编写一个 C 程序来计算文件中的字符和数字的数量。我相信我的最佳尝试已经接近,但是程序必须调用给定的函数,mostfrequent(),并且我不知道如何将其实现到我的 main 中,以便它们一起工作。任何帮助将不胜感激。谢谢。

// this is the function my program is required to use.

int mostfrequent(int *a, int length) {
int index = 0;
int max = a[0];
int i;
for (i = 1; i < length; i++) {
if (a[i] > max) {
max = a[i];
index = i;
}
}
return index;
}

// this is my closest attempt at a working program so far, but it does
// not call mostfrequent() which I need it to do.

int main() {
typedef FILE *ptr_file;
int x, i, j;
int length;
char c;
char ch[1000];
int a = 65;
c = getc(ptr_file);

ptr_file = fopen("file.txt", "r");

if (!ptr_file)
return 1;

while (c != EOF) {
scanf(ptr_file, "%s", ch[i]);
i++;

fclose(ptr_file);
}

for (i = 0; i < length; i++) {
for (j = 0; j < length; j++) {
if (a < 116) {
if (char(a) == 'ch[j]')
char max_char_temp=(char)a
count_temp++;
}
if (count_temp > count) {
count = count_temp;
max_char = max_char_temp;
}
return 0;
}

最佳答案

关于问题:何时调用most_frequent()函数。

创建数组(长度为 36 个整数条目)后,将该数组初始化为全零,然后为从输入文件读取的每个字符递增相应的条目。 (注意 36 个条目允许使用 a...z + 0...9,因此从文件中读取的所有其他字符都应被丢弃。然后将数组和36传递给most_frequent()函数

然后类似于以下的代码可以完成这项工作:

#include <stdio.h>
#include <stdlib.h>
#include <ctypes.h> // isalpha(), isdigit(), toupper()

#define NUM_ALPHA (26)

int main( void )
{
int array[36] = {'\0'};

//...open file, etc

//then assure all processed characters are upper case or numeric
// and update the count in the array
int ch;
while( ch = getc( file ) != EOF && '\n' != ch)
{
if ( isalpha(ch) )
{
ch = toupper(ch);
array[ch - 'A']++;
}

else if (isdigit(ch) )
{
array[ (ch-'0') + NUM_ALPHA ]++;
}
}

int index = mostfrequent( array, sizeof(array)/sizeof(array[0]);

//... do what is needed with 'index' for instance
printf( "the highest occurring char is:" );
if( index < NUM_ALPHA )
{
printf( "%c\n", index+'A' );
}
else
{
printf( "%d\n", (index-NUM_ALPHA)+'0');
}

fclose( file );
return 0;
}

但是,请注意,当存在多个具有相同最大值的条目时,mostfrequent() 仅返回遇到最大值的第一个条目的索引。

关于c - 我需要编写一个 C 程序来调用给定函数来计算文件中的字符和数字的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246067/

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