gpt4 book ai didi

c - 将各种txt文件读入c编程,将其保存到数组中并得出结论: Homework

转载 作者:行者123 更新时间:2023-11-30 15:10:07 26 4
gpt4 key购买 nike

我为我之前的问题道歉。好的,对 c 编程完全陌生,并试图帮助我的女儿。她的任务是将各种文本文件读入程序。该程序应清除所有无效字符(非数字),限制为 88 个数字,冒泡排序,通知用户平均值、最大值和最小值、求和和负数。如果未输入文件名或错误地为用户输入了两个 printf 错误,它应该通知用户。目前,我只是想将文件读入一个数组。但是,当我为数组 printf 时,它不会打印在原始文件中找到的值。

我不理解为什么。

我的代码编译。但是它不能正确打印数组。

结果如下所示:
首先正确的结果:
输入文件名:input.txt
COP2220 项目 4。 . .
输入文件的内容是:
5、-15、25、30、45、55、100、155、60、-200
输入 x 退出。 . . .

这部分正在打印到屏幕:
19756903061975690306

while (ctr <88 &&  fscanf(fp,"%d", &someArr[ctr])== 1)
{
ctr++;
}

for(i=0; i < 87; i++)
num[1]=i;
{
printf("%d", someArr[i]);
}
printf("%d", someArr[i]);

我将在这里发布整个代码。在期待项目的其他部分时,我已经声明了其他项目(我确定有些是垃圾)。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
FILE *fp; // pointer to file name
char filename [88],c;
int someArr[88];
int i, ctr = 0;
int num[87];

printf("Enter the name of file:");
gets(filename);

fp = fopen(filename,"r");
c = fgetc(fp);

if((fp) != NULL )
{
while (ctr <88 && fscanf(fp,"%d", &someArr[ctr])== 1)
{
ctr++;
}

for(i=0; i < 87; i++)
num[1]=i;
{
printf("%d", someArr[i]);
}
printf("%d", someArr[i]);

printf("\nCOP 2220 Project 4: \n" );

printf("The contents of %s file are: \n", filename);

while (c != EOF)
{
printf ("%c", c);
c = fgetc(fp);
}

fclose(fp);
puts("\nEnter x to exit, any other to continue.");
if((c=getc(stdin))=='x')

{
perror("Error: No file name entered.");
exit(EXIT_FAILURE);
}
}

return 0;
}

最佳答案

            for(i=0; i < 87; i++)
num[1]=i;
{
printf("%d", someArr[i]);
}
printf("%d", someArr[i]);

您定义的 for 循环只是将 num[1] 分配给存储在变量 i 中的值 87 次。我假设您的目标是在 for 循环中执行 printf。如果 for 循环的长度超过 1 行,则它必须包含在花括号中。因为你有语句 num[1]=i;在 for 循环声明之后并且它不在大括号中,这被解释为循环的主体。虽然在语法上没有错误,但 printf 周围的花括号实际上什么也没做。

此外,printf 位于循环之外。此时 i == 88,超出了 someArr[] 的范围。假设此访问不会导致数据访问冲突或段错误,您将在数组之后的内存位置打印出一个整数值,这可能是任何东西。在您的情况下,它恰好是 1975690306,它被打印了两次。

关于c - 将各种txt文件读入c编程,将其保存到数组中并得出结论: Homework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368010/

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