
你好!
修改后的代码,代码功能没有验证:
#include<stdioh>#include<mathh>
int main()
{
const double pi = 40 atan(10);
double r, h, s1, s2, s;
scanf("%lf%lf", &r, &h);
s1 = pirr;
s2 = 2pirh;
s = s120 + s2;
printf("Area = %31f\n", s);
return 0;
}
从你的报错信息来看
1编译程序找不到源文件,很有可能是因为你的路径及程序含中文导致的
2后续的头文件默认目录/编译工具链等目录找不到,很有可能是因为这些路径带了(X86)这种未必能被识别的符号。
根据其他软件的经验,试试把你的IDE(C-FREE)装到直接一点的路径下,你这个路径带了(X86),工程及文件名最好不要带中文。
直接点,你的IDC试下重新直接装在比如D:/下面,然后工程目录及文件名也放在比如D:/project下,再试一下
这是我编的代码
#include <fstreamh>//头文件
#include <cstdlib>
#include <cstring>
#include <iostreamh>
struct SHANGPIN // 定义结构体类型
{
char name[8]; //////产品名称
char id[10]; ////编号
float price; ///// 价钱
};
/const/ int m_nRecMax = 20;
SHANGPIN theArray = new SHANGPIN[m_nRecMax]; // 预先分配20个商品数据的内存空间
int m_nCurRecNum = 0; // 当前结构数组中的记录数
void read() //将studenttxt读到theArray[]中
{
struct SHANGPIN sp;
fstream file("SHANGPINtxt",ios::out|ios::in);
if(!file)
{
return;
}
fileread((char )&sp,sizeof(sp));
while (!fileeof())
{
theArray[m_nCurRecNum++]=sp;
fileread((char )&sp,sizeof(sp));
if (fileeof())
m_nCurRecNum--;
}
fileclose();
}
// 另添加一个函数Copy用于SHANGPIN的复制
void Copy( SHANGPIN d, SHANGPIN s )
{
strcpy( d->name, sname );
strcpy( d->id, sid );
d->price = sprice;
}
void Output( SHANGPIN one ) // 判定,输出学生等级信息
{
printf("%s\t%s",oneid,onename);
printf("\t%f",oneprice);
}
void Add(void) // 添加记录
{
// 输入数据
SHANGPIN sp;
printf("商品名:");
scanf("%s",spname);
printf("编号:");
scanf("%s",spid);
printf("价钱:");
scanf("%f",&spprice);
Copy( &theArray[m_nCurRecNum], sp ); // 将输入的数据暂时存储到结构数组中
m_nCurRecNum++; // 记录当前数组中有多少数据
if ( m_nCurRecNum >= m_nRecMax ) // 判断空间是或够用,不够则显示无法在添加记录
{
printf("内存空间不够,无法在添加记录!");
exit(1);
}
}
//将theArray[]中数据保存到studenttxt文件中
void save()
{
fstream file("SHANGPINtxt",ios::out);
if(!file)
{
printf("文件不能打开\n");
return;
}
for (int i=0;i<=m_nCurRecNum;i++)
filewrite((char )&theArray[i],sizeof(theArray[i]));
fileclose();
}
void List(void) // 遍历结构数组并输出学生信息
{
printf("学号\t姓名\t英语\n");
for (int i=0; i<m_nCurRecNum; i++)
Output( theArray[i] );
}
float Find(char id) // 查找记录,结果可能有多条
{
bool isFind = false;
printf("学号\t姓名\t英语\n");
for (int i=0; i<m_nCurRecNum; i++)
{
if ( strcmp(theArray[i]id, id) == 0 ) // 相等
{
isFind = true; Output( theArray[i] );
return(theArray[i]price);
}
}
if (!isFind)
printf("没有找到!");
}
void del(char id) // 按学号删除学生信息
{
bool isFind=false;
for (int i=0; i<m_nCurRecNum; i++)
{
if(strcmp(theArray[i]id ,id)==0)
{
isFind=true; m_nCurRecNum--;
for(int j=i+1;j<m_nCurRecNum;j++)
{
theArray[j]=theArray[j+1];
printf("删除成功\n");
}
}
}
if(!isFind)
printf("没有找到该信息!");
}
void RemoveAll( void ) //退出程序
{
if (theArray)
{
delete []theArray; theArray = NULL;
}
}
int main()
{
char id[10];
char name[10];
int nSelect;
float sum=0;
read();
while (1)
{
system("cls");
printf(" 欢迎进入商品清单系统");
printf("\n");
printf(" \n");
printf("\n");
printf("\n");
printf(" 1 ---- 添加商品详单\t\t2 ---- 商品显示\n");
printf("\n");
printf(" 3 ---- 按编号查找\t\t4 ---- 按编号删除商品信息\n");
printf("\n");
printf(" 5-------推出系统\t\t");
printf("\n");
printf("请选择:");
scanf("%d",&nSelect);
switch(nSelect)
{
case 0: RemoveAll();
exit( 0 ); break;
case 1: {
Add();
save();
break;
}
case 2:{
List();
break;
}
case 3:
printf("请输入要查找的商品编码:");
while(!id)
{
scanf("%d",id);
sum+=Find(id);
}
printf("商品总价钱是:%f",sum);
break;
case 4:
{
printf("请输入要删除的商品编码:");
scanf("%d",id);
del(id);
save();
break;
}
case 5:
{
RemoveAll();
}
default: printf("选择有误。");
}
printf("按任何键继续");
cinget(); cinget();
}
return 0;
}
mingw这个工具是在windows下模拟linux编译环境的一个工具。
linux下编译过程中生成的所有链接文件都是以c/cpp文件的名称命名的o文件,文件格式是elf,
而windows编译过程中生成的链接文件都是obj文件,文件格式是PE。
这是两种不同 *** 作系统的一个编译上的特点。
以上就是关于为什么我用C-free5.0运行下面这个程序怎么老出错,哪错了全部的内容,包括:为什么我用C-free5.0运行下面这个程序怎么老出错,哪错了、c-free在win10系统不能编译怎么解决、C free 运行时的警告!谁能帮我解决一下啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)