代码没错,为什么还是提示错误?

giant7 2011-11-22 03:04:47
各位高手,下面是我的代码:

#include"StdAfx.h"
#include<stdio.h>
#include <time.h>
#include <stdlib.h>
#define M 3 //内存物理块数
#define N 20 //虚拟内存尺寸


int P; //工作集的起始位置
int nin; //记录缺页次数


//用于CLOCK算法的页面定义
typedef struct page_clock
{
int num;
int visit;
}Page_clock;

//用于改进的CLOCK算法的页面定义
typedef struct page
{
int num; //页面号
int visit; //是否访问
int modify; //是否修改
}Page;

Page_clock b_clock[M]; //内存单元数 Clock
Page b[M]; //updating_clock
int opt[M]; //opt
int ran[M]; //random replacement
int fifo[M]; //FIFO
int c[M][N]; //存储每个阶段状态

//.................
//..................
//..................//此处省略很多行

//Clock算法初始化
void Init_Clock(Page_clock *b_clock)
{
nin=0;
int i,j;//从这里开始提示各种莫名其妙的错误,怎么回事
for(i=0;i<M;i++)
{
b_clock[i].num=-1;
b_clock[i].visit=0;
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
c[i][j]=-1;
}
}
}

//改进的Clock算法初始化
void Init_updatingClock(Page *b)
{
nin = 0;
int i, j;
for(i = 0;i < M;i++)
{
b[i].num = -1;
b[i].visit = 0;
b[i].modify = 0;
}
for(i = 0;i < M;i++)
{
for(j = 0;j < N;j++)
{
c[i][j] = -1;
}
}
}

//Clock算法
void Clock(int fold,Page_clock *b_clock)
{
int i, val = -1, p = 0; //p为查询指针
for (i = 0;i < M;i++)
{
if (fold == b_clock[i].num)
val = i;
}
//页面在内存中
if (val >= 0)
{
b_clock[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b_clock[i].visit = 0;
}
}
}
else
{
nin++;
//初始化内存
for (i = 0;i < M;i++)
{
if (b_clock[i].num == -1)
{
val = i;
break;
}
}
while (val < 0)
{
if (b_clock[p].visit == 0)
val = p;
else
b_clock[p].visit = 0;
p = (p + 1) % M;
}
b_clock[val].num = fold;
b_clock[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b_clock[i].visit = 0;
}
}
}
}

//改进的Clock算法
void Updating_Clock(int fold,int modiff, Page *b)
{ int i, p = -1; //p是查询指针
int val = -1;

//找是否在内存中
for(i = 0;i < M;i++)
{
if (fold == b[i].num)
val = i;
}

if (val >= 0)
{
b[val].visit = 1; //被访问
b[val].modify = modiff;
for(i = 0;i < M;i++)
{
if (i != val)
{
b[i].visit = 0;
}
}
}
else
{
nin++;
//初始化内存
for (i = 0;i < M;i++)
{
if (b[i].num == -1)
{
val = i;
break;
}
}
while (val < 0)
{
//第一步扫描
for (i = 0;i < M;i++)
{
p = (p + 1) % M;
if ((b[p].modify == 0) && (b[p].visit == 0))
{
val = p;
break;
}
}
//第二步扫描
if (val < 0)
{
for (i = 0;i < M;i++)
{
p = (p + 1) % M;
if ((b[p].modify == 1) && (b[p].visit == 0))
{
val = p;
break;
}
else
{
b[p].visit = 0;
}
}
}
}

//找到后,其他设置为未访问
b[val].num = fold;
b[val].modify = modiff;
b[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b[i].visit = 0;
}
}
}
}

//主程序
void main()
{
int a[N];
int mo[N];
int i,j;

//产生随机访问串及是否修改串
P = 1;
int e, m, prop, t;
printf("请输入工作集中包含的页数e和工作集移动率m:\n");
scanf("%d %d",&e,&m);
t = 50;
generate_list(a, e, m, t);
printf("请输入页面被修改的概率(*100):\n");
scanf("%d",&prop);
generate_modify(mo, e, prop);

//Clock算法实现
Init_Clock(b_clock);
for(i = 0;i < e;i++)
{
Clock(a[i],b_clock);
for(j = 0;j < M;j++)
{
c[j][i] = b_clock[j].num;
}

}
printf("Clock算法的内存状态为:\n");
print(e, a);
nin = nin - M;
printf("缺页次数为:%d\n缺页率:%.2f\n",nin,nin * 1.0 / e);
printf("\n");

//改进的Clock算法实现
Init_updatingClock(b);
for(i = 0;i < e;i++)
{
Updating_Clock(a[i], mo[i], b);
for(j = 0;j < M;j++)
{
c[j][i] = b[j].num;
}
}
printf("改进的Clock算法的内存状态为:\n");
print(e, a);
for(j = 0;j < e;j++)
{
printf(" %2d ",mo[j]); //是否修改序列串
}
printf(" \n");
print_format(e);
nin = nin - M;
printf("缺页次数为:%d\n缺页率:%.2f\n",nin,nin * 1.0 / e);
printf("\n");
}




下面是错误信息
1> clock.c
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(123): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(124): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(124): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(124): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(126): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(127): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(129): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(129): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(129): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(131): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(131): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(131): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(133): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(133): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(142): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(143): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(143): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(143): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(145): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(146): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(147): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(149): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(149): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(149): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(151): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(151): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(151): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(153): error C2065: “i”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(153): error C2065: “j”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(301): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(303): error C2065: “e”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(303): error C2065: “m”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(304): error C2065: “t”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(305): error C2065: “e”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(305): error C2065: “m”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(305): error C2065: “t”: 未声明的标识符
1>c:\users\yugao\documents\visual studio 2010\projects\cache\cache\clock.c(307): error C2065: “prop”: 未
..............................................................
.............................................................
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========


请高手指教,到底是哪里出错了???
...全文
484 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
youkuxiaobin 2011-11-22
  • 打赏
  • 举报
回复

void Init_Clock(Page_clock *b_clock)
{

int i,j;//从这里开始提示各种莫名其妙的错误,怎么回事[/color]
nin=0;//c语言先声明
for(i=0;i<M;i++)
{
b_clock[i].num=-1;
b_clock[i].visit=0;
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
c[i][j]=-1;
}
}
}

//改进的Clock算法初始化
void Init_updatingClock(Page *b)
{

int i, j;
nin = 0;//先声明
for(i = 0;i < M;i++)
{
b[i].num = -1;
b[i].visit = 0;
b[i].modify = 0;
}
for(i = 0;i < M;i++)
{
for(j = 0;j < N;j++)
{
c[i][j] = -1;
}
}
}

//Clock算法
void Clock(int fold,Page_clock *b_clock)
{
int i, val = -1, p = 0; //p为查询指针
for (i = 0;i < M;i++)
{
if (fold == b_clock[i].num)
val = i;
}
//页面在内存中
if (val >= 0)
{
b_clock[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b_clock[i].visit = 0;
}
}
}
else
{
nin++;
//初始化内存
for (i = 0;i < M;i++)
{
if (b_clock[i].num == -1)
{
val = i;
break;
}
}
while (val < 0)
{
if (b_clock[p].visit == 0)
val = p;
else
b_clock[p].visit = 0;
p = (p + 1) % M;
}
b_clock[val].num = fold;
b_clock[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b_clock[i].visit = 0;
}
}
}
}

//改进的Clock算法
void Updating_Clock(int fold,int modiff, Page *b)
{ int i, p = -1; //p是查询指针
int val = -1;

//找是否在内存中
for(i = 0;i < M;i++)
{
if (fold == b[i].num)
val = i;
}

if (val >= 0)
{
b[val].visit = 1; //被访问
b[val].modify = modiff;
for(i = 0;i < M;i++)
{
if (i != val)
{
b[i].visit = 0;
}
}
}
else
{
nin++;
//初始化内存
for (i = 0;i < M;i++)
{
if (b[i].num == -1)
{
val = i;
break;
}
}
while (val < 0)
{
//第一步扫描
for (i = 0;i < M;i++)
{
p = (p + 1) % M;
if ((b[p].modify == 0) && (b[p].visit == 0))
{
val = p;
break;
}
}
//第二步扫描
if (val < 0)
{
for (i = 0;i < M;i++)
{
p = (p + 1) % M;
if ((b[p].modify == 1) && (b[p].visit == 0))
{
val = p;
break;
}
else
{
b[p].visit = 0;
}
}
}
}

//找到后,其他设置为未访问
b[val].num = fold;
b[val].modify = modiff;
b[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b[i].visit = 0;
}
}
}
}



c和c++不一样
shufen1120 2011-11-22
  • 打赏
  • 举报
回复
看看,以后估计要用到
  • 打赏
  • 举报
回复
狂且 2011-11-22
  • 打赏
  • 举报
回复
C99 好像可以把变量放在使用之前的任意位置.
[Quote=引用 1 楼 demon__hunter 的回复:]

你把文件后缀改成.cpp在编译估计就好了
c的变量声明必须放在函数最开始
[/Quote]
不加糖3 2011-11-22
  • 打赏
  • 举报
回复
不懂~~~~
giant7 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 sky_heart_zhang 的回复:]
引用 18 楼 xxyxxb 的回复:
大名鼎鼎的MSDN
http://msdn.microsoft.com/zh-cn/site/w40768et

引用 17 楼 ggxxkkll 的回复:

引用 16 楼 sky_heart_zhang 的回复:
最后的警告是说用scanf不安全,用scanf_s代替了就好了。


sky_heart_zhang
你好!
按照你的……
[/Quote]

呵呵,谢谢!
我去下载个MSDN好了!!!
goldbeef 2011-11-22
  • 打赏
  • 举报
回复
建议LZ先排除语法错误,然后排除逻辑错误。单步调试是王道
sdadas 2011-11-22
  • 打赏
  • 举报
回复
#include<stdio.h>
#include <time.h>
#include <stdlib.h>
#define M 3 //内存物理块数
#define N 20 //虚拟内存尺寸


int P; //工作集的起始位置
int nin; //记录缺页次数


//用于CLOCK算法的页面定义
typedef struct page_clock
{
int num;
int visit;
}Page_clock;

//用于改进的CLOCK算法的页面定义
typedef struct page
{
int num; //页面号
int visit; //是否访问
int modify; //是否修改
}Page;

Page_clock b_clock[M]; //内存单元数 Clock
Page b[M]; //updating_clock
int opt[M]; //opt
int ran[M]; //random replacement
int fifo[M]; //FIFO
int c[M][N]; //存储每个阶段状态

//.................
//..................
//..................//此处省略很多行

//Clock算法初始化
void Init_Clock(Page_clock *b_clock)
{
nin=0;
int i,j;//从这里开始提示各种莫名其妙的错误,怎么回事[/color]
for(i=0;i<M;i++)
{
b_clock[i].num=-1;
b_clock[i].visit=0;
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
c[i][j]=-1;
}
}
}

//改进的Clock算法初始化
void Init_updatingClock(Page *b)
{
nin = 0;
int i, j;
for(i = 0;i < M;i++)
{
b[i].num = -1;
b[i].visit = 0;
b[i].modify = 0;
}
for(i = 0;i < M;i++)
{
for(j = 0;j < N;j++)
{
c[i][j] = -1;
}
}
}

//Clock算法
void Clock(int fold,Page_clock *b_clock)
{
int i, val = -1, p = 0; //p为查询指针
for (i = 0;i < M;i++)
{
if (fold == b_clock[i].num)
val = i;
}
//页面在内存中
if (val >= 0)
{
b_clock[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b_clock[i].visit = 0;
}
}
}
else
{
nin++;
//初始化内存
for (i = 0;i < M;i++)
{
if (b_clock[i].num == -1)
{
val = i;
break;
}
}
while (val < 0)
{
if (b_clock[p].visit == 0)
val = p;
else
b_clock[p].visit = 0;
p = (p + 1) % M;
}
b_clock[val].num = fold;
b_clock[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b_clock[i].visit = 0;
}
}
}
}

//改进的Clock算法
void Updating_Clock(int fold,int modiff, Page *b)
{ int i, p = -1; //p是查询指针
int val = -1;

//找是否在内存中
for(i = 0;i < M;i++)
{
if (fold == b[i].num)
val = i;
}

if (val >= 0)
{
b[val].visit = 1; //被访问
b[val].modify = modiff;
for(i = 0;i < M;i++)
{
if (i != val)
{
b[i].visit = 0;
}
}
}
else
{
nin++;
//初始化内存
for (i = 0;i < M;i++)
{
if (b[i].num == -1)
{
val = i;
break;
}
}
while (val < 0)
{
//第一步扫描
for (i = 0;i < M;i++)
{
p = (p + 1) % M;
if ((b[p].modify == 0) && (b[p].visit == 0))
{
val = p;
break;
}
}
//第二步扫描
if (val < 0)
{
for (i = 0;i < M;i++)
{
p = (p + 1) % M;
if ((b[p].modify == 1) && (b[p].visit == 0))
{
val = p;
break;
}
else
{
b[p].visit = 0;
}
}
}
}

//找到后,其他设置为未访问
b[val].num = fold;
b[val].modify = modiff;
b[val].visit = 1;
for(i = 0;i < M;i++)
{
if (i != val)
{
b[i].visit = 0;
}
}
}
}

//主程序
void main()
{
int a[N];
int mo[N];
int i,j;

//产生随机访问串及是否修改串
P = 1;
int e, m, prop, t;
printf("请输入工作集中包含的页数e和工作集移动率m:\n");
scanf("%d %d",&e,&m);
t = 50;
// generate_list(a, e, m, t);
printf("请输入页面被修改的概率(*100):\n");
scanf("%d",&prop);
// generate_modify(mo, e, prop);

//Clock算法实现
Init_Clock(b_clock);
for(i = 0;i < e;i++)
{
Clock(a[i],b_clock);
for(j = 0;j < M;j++)
{
c[j][i] = b_clock[j].num;
}

}
printf("Clock算法的内存状态为:\n");
// printf(e, a);
nin = nin - M;
printf("缺页次数为:%d\n缺页率:%.2f\n",nin,nin * 1.0 / e);
printf("\n");

//改进的Clock算法实现
Init_updatingClock(b);
for(i = 0;i < e;i++)
{
Updating_Clock(a[i], mo[i], b);
for(j = 0;j < M;j++)
{
c[j][i] = b[j].num;
}
}
printf("改进的Clock算法的内存状态为:\n");
// print(e, a);
for(j = 0;j < e;j++)
{
printf(" %2d ",mo[j]); //是否修改序列串
}
printf(" \n");
//print_format(e);
nin = nin - M;
printf("缺页次数为:%d\n缺页率:%.2f\n",nin,nin * 1.0 / e);
printf("\n");
}
感觉很乱
sky_heart_zhang 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 xxyxxb 的回复:]
大名鼎鼎的MSDN
http://msdn.microsoft.com/zh-cn/site/w40768et

引用 17 楼 ggxxkkll 的回复:

引用 16 楼 sky_heart_zhang 的回复:
最后的警告是说用scanf不安全,用scanf_s代替了就好了。


sky_heart_zhang
你好!
按照你的方法,我已经成功解决了问题。
但是,我有……
[/Quote]
正解!

楼主你的MSDN比较旧了吧,我在MSDN上有时候也找不到想要的资料,那么就baidu或者google了~

不过还是请楼主搞明白scanf和scanf_s的区别,然后知道替换的意义。

题外话:在VS2010中(或者之前的版本如VS2005),如果使用fopen,itoa等函数都会提示不安全,此时在根据warning的语句baidu一下或者google一下就能找到对应的解决方法(一般两种方法,第一是替换为安全的函数,第二就是通过一些设置将这些警告忽略了(不建议采用此方法,除非是为了可移植性))。
小笨同学 2011-11-22
  • 打赏
  • 举报
回复
大名鼎鼎的MSDN
http://msdn.microsoft.com/zh-cn/site/w40768et
[Quote=引用 17 楼 ggxxkkll 的回复:]

引用 16 楼 sky_heart_zhang 的回复:
最后的警告是说用scanf不安全,用scanf_s代替了就好了。


sky_heart_zhang
你好!
按照你的方法,我已经成功解决了问题。
但是,我有个问题,我在查阅手册时,并没有scanf_s这个函数,请问,这个函数在什么地方可以查到???
[/Quote]
giant7 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sky_heart_zhang 的回复:]
最后的警告是说用scanf不安全,用scanf_s代替了就好了。
[/Quote]

sky_heart_zhang
你好!
按照你的方法,我已经成功解决了问题。
但是,我有个问题,我在查阅手册时,并没有scanf_s这个函数,请问,这个函数在什么地方可以查到???
sky_heart_zhang 2011-11-22
  • 打赏
  • 举报
回复
最后的警告是说用scanf不安全,用scanf_s代替了就好了。
giant7 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 cnmdbd 的回复:]
VC不支持C99的错= =
用gcc或者直接把
int i, j;
扔到
nin = 0;
前面
[/Quote]

我用的Visual Studio 2010,
我用.c文件里面把int i,j;放到了nin=0;前面去了,虽然成功,还是老样子:
1> Clock.c
1>c:\programe\cache\cache\clock.c(303): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见“scanf”的声明
1>c:\programe\cache\cache\clock.c(307): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见“scanf”的声明
1> cache.vcxproj -> C:\programe\cache\Debug\cache.exe
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========


.cpp文件,错误:
1>------ 已启动全部重新生成: 项目: cache, 配置: Debug Win32 ------
1> Clock.cpp
1>c:\programe\cache\cache\clock.cpp(305): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见“scanf”的声明
1>c:\programe\cache\cache\clock.cpp(309): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见“scanf”的声明
1> cache.vcxproj -> C:\programe\cache\Debug\cache.exe
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========

难道在工程里面,就不能完全把警告错误消灭掉???
请教高手!!!
hulongchuan 2011-11-22
  • 打赏
  • 举报
回复
调试程序的能力有待提高!自己一点一点调吧,锻炼锻炼!
solo7773 2011-11-22
  • 打赏
  • 举报
回复
vc2010可以正确编译连接执行.c程序,不一定非要.cpp,我就是用vc2010
楼主在新建工程文件时选择win32,然后选择空白文件,就能正确编译.c程序了
对于什么scanf(),gets(),等之类的提示,都不用管的,我认为只是自己练习调试c的话没多大影响
因为我感觉Win-TC写着不好找调试找错,所以我用vc2010也就是辅助tc调试不方便
cnmdbd 2011-11-22
  • 打赏
  • 举报
回复
VC不支持C99的错= =
用gcc或者直接把
int i, j;
扔到
nin = 0;
前面
测试NULL 2011-11-22
  • 打赏
  • 举报
回复
s_scanf
giant7 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xxyxxb 的回复:]
" 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ",这不成功了么,就是叫你最好别用scanf(),不安全

引用 8 楼 ggxxkkll 的回复:

引用 1 楼 demon__hunter 的回复:
你把文件后缀改成.cpp在编译估计就好了
c的变量声明必须放在函数最开始


呆呆大哥,我按照你说的做了,虽然编译过了,但是还是有如下提示错误:
----- 已启……
[/Quote]


我用的是C语言,必须用C,有事什么函数可以替代这个了?
小笨同学 2011-11-22
  • 打赏
  • 举报
回复
" 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ",这不成功了么,就是叫你最好别用scanf(),不安全
[Quote=引用 8 楼 ggxxkkll 的回复:]

引用 1 楼 demon__hunter 的回复:
你把文件后缀改成.cpp在编译估计就好了
c的变量声明必须放在函数最开始


呆呆大哥,我按照你说的做了,虽然编译过了,但是还是有如下提示错误:
----- 已启动全部重新生成: 项目: cache, 配置: Debug Win32 ------
1> Clock.cpp
1>c:\programe\cache\cache\c……
[/Quote]
giant7 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 demon__hunter 的回复:]
你把文件后缀改成.cpp在编译估计就好了
c的变量声明必须放在函数最开始
[/Quote]

呆呆大哥,我按照你说的做了,虽然编译过了,但是还是有如下提示错误:
----- 已启动全部重新生成: 项目: cache, 配置: Debug Win32 ------
1> Clock.cpp
1>c:\programe\cache\cache\clock.cpp(303): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见“scanf”的声明
1>c:\programe\cache\cache\clock.cpp(307): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见“scanf”的声明
1> cache.vcxproj -> C:\programe\cache\Debug\cache.exe
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========


该怎么办?
加载更多回复(7)

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧