C/C++

ПрОВЕРьте код по программированию пж! С/С++

Напишите программу, которая создает файл, записав в него вещественные числа, введенные с клавиатуры

#include
#include
using namespace std;
int main()
{
int i,n;
double a;
FILE *file=fopen("D:\\fff\\d.txt","wt");
if (!file){
cout<<("Unable to open or create file\n");
return 1;
}
cout<<"n="; cin>>n;
fwrite(&n, sizeof(int), 1, file);
for(i=0;i<n;i++)
{
cout<<"a=";
cin>>a;
}
fwrite(&n, sizeof(double), 1, file);
fclose(file);
return 0;
}

И ВТОРОЙ ВОПРОС!!!
Напишите программу, которая выводит на экран среднее арифметическое чисел, записанных в файле.
#include
#include
using namespace std;
int main()
{
setlocale(0,"");
int n,i;
double a[100];
FILE *file;
file=fopen("D:\\fff\\d.txt","r+");
fread(&n,sizeof(int),1,file);
cout<<"n= "<<n<<endl;
fread(a,sizeof(double),n,file);
for(i=0; i<n; i++)
cout<<a[i]<<"\t";
cout<<endl;
double sum=0;
for(i=0; i<n; i++)
sum+=a[i];
cout<<"Average = "<<sum/n;
fclose(file);
return 0;
}
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream reals("reals.txt");
if (reals.is_open()) {
cout << "n: ";
size_t n;
cin >> n;
double x;
for (auto i = 0U; i < n; ++i) {
cout << "Number: ";
cin >> x;
reals << x << ' ';
}
reals.close();
} else {
puts("File not created!");
system("pause > nul");
}
}

#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream reals("reals.txt");
if (reals.is_open()) {
auto n = 0U;
auto s = 0.;
double x;
while (reals >> x) {
s += x;
++n;
}
cout << "Average: " << s / n << '\n';
reals.close();
} else {
puts("File not found!");
}
system("pause > nul");
}
ДR
Дмитрий Rub
88 776
Лучший ответ
1)
#include "iostream"
#include "fstream"
using namespace std;
int main(){
int n; float k; cout<<"N: "; cin>>n; ofstream f("file.txt");
cout<<"Enter "<< n<<" numbers:\n";
for(int i=0;i< n;i++)cin>>k, f<<k<<' '; f.close();}

2)
#include "iostream"
#include "fstream"
using namespace std;
int main(){
int n=0; float k,s=0; ifstream f("file.txt");
while(f>>k)s+=k, n++; f.close(); cout<< s/n<< endl;}
зачем смешивать сишные и плюсовые функции ввода-вывода?
в C++ есть ifstream и ofstream, используй их
fwrite вообще не к месту: ты текстовый файл создаёшь, а fwrite будет в бинарном виде числа записывать прям так, как они в памяти лежат
раз уж на то пошло, то есть fprintf, но опять же, лучше создать ofstream и писать в него
ну и a у тебя перезаписывается на каждой итерации, а в файл пишется только последнее значение
Се
Серёга!
36 956