帮忙纠错一个c语言代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮忙纠错一个c语言代码相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define NUM 3
#define num 5

struct person

char name[20];

man[NUM];

void main()

struct person man[NUM];
int i,a,b,c,d,j;
printf("候选人有:");
for(i=0;i<NUM;i++)


gets_s(man[i].name,20);
printf("%s,",man[i].name);


struct candidate


char name1[20];

man1[num];
struct candidate m[num];
//错误 2 error C2148: 数组的总大小不得超过 0x7fffffff 字节//

for(j=0;j<num;j++)
//错误 4 error C2143: 语法错误 : 缺少“”(在“<”的前面)//
//错误 7 error C2059: 语法错误:“++”//

a=j+1;
printf("第%d位投票,请写下支持的候选人名字:",a);
gets_s((m[j].name1),20);
printf("%s\n",(m[j]).name1);
if(m[j].name1==man[0].name)

b++;


else if(m[j].name1==man[1].name)

c++;

else if(m[j].name1==man[2].name)

d++;

else
getchar();




printf("\t%s\t同学得票数为:%d\n",man[0].name,b);
//错误 10 error C2143: 语法错误 : 缺少“”(在“字符串”的前面) //
printf("\t%s\t同学得票数为:%d\n",man[1].name,c);
printf("\t%s\t同学得票数为:%d\n",man[2].name,d);

这个是由于使用了msvc的c模式编译,导致执行语句之后不能有变量声明。gcc就没有这个限制。
如果把gets_s这个msvc特定的换成gets,用gcc编译完全没问题。

如果想在msvc下编译,把文件后缀改成cpp或者使用/TP选项

另外,你的编程风格太差了。追问

我用的是vs2012,改用gets会提示风险。我是初学者,能否说细致点?

参考技术A #include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define NUM 3
#define num 5

struct person

char name[20];

man[NUM];

struct candidate


char name1[20];

man1[num];
void main()

struct person man[NUM];
struct candidate m[num];
int i,a,j;
int b = 0;
int c = 0;
int d = 0;
printf("候选人有:");
for(i=0;i<NUM;i++)


gets_s(man[i].name,20);
printf("%s,",man[i].name);



//错误 2 error C2148: 数组的总大小不得超过 0x7fffffff 字节//

for(j=0;j<num;j++)
//错误 4 error C2143: 语法错误 : 缺少“”(在“<”的前面)//
//错误 7 error C2059: 语法错误:“++”//

a=j+1;
printf("第%d位投票,请写下支持的候选人名字:",a);
gets_s((m[j].name1),20);
printf("%s\n",(m[j]).name1);
if(m[j].name1==man[0].name)

b++;


else if(m[j].name1==man[1].name)

c++;

else if(m[j].name1==man[2].name)

d++;

else
getchar();




printf("\t%s\t同学得票数为:%d\n",man[0].name,b);
//错误 10 error C2143: 语法错误 : 缺少“”(在“字符串”的前面) //
printf("\t%s\t同学得票数为:%d\n",man[1].name,c);
printf("\t%s\t同学得票数为:%d\n",man[2].name,d);

将C语言代码转换成汇编语言,求帮忙,建议用反汇编软件的就不要来了,我试过,那个代码太多,不实用

c语言代码如下,尽可能转换成简短些的。要求就是随机出四位不同的数字,在屏幕上输入四位数,没全对就输出nAmB A代表数字对,B代表数字和位置都对。最多可以试10次,超过10次就失败了。尽可能与下面的C语言代码所能实现的功能保持一样。用32位的汇编语言。谢谢了。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>

void elapsed_time()

double shijian;
shijian=(double)clock()/CLOCKS_PER_SEC;
printf("你所使用的时间为:%f 秒",shijian);


int Check(int *size)

int i=0,j=0;
for(i=0;i<4;i++)

for(j=0;j<i;j++)

if(size[i]==size[j]||size[i]==0)
return 1;


return 0;


int Compare_record(int *size)

int player,times=1,k=0,total=0;
int p_count[4],i=0,j=0;
while(times!=11)

int position=0,count=0;
printf("请输入数据.当前第%d次\n",times);
scanf("%d",&player);
while(player>9999||player<1000)

printf("输入错误!请输入一个四位数!\n");
continue;

for(i=0;i<4;i++)

k=player%10;
player=player/10;
p_count[3-i]=k;

for(i=0;i<4;i++)

if(p_count[i]==size[i])

position++;
count++;

for(j=0;j<4;j++)

if(p_count[j]==size[i]&&(i!=j))
count++;


if(position==4)
total=10000/(times+clock()/CLOCKS_PER_SEC);
printf("恭喜你猜对了\n");
printf("累计尝试次数为:%d\n",times);
elapsed_time();
printf("总分:%d\n",total);
return 1;

printf("你目前成绩为:%dA%dB\n",count,position);
times++;

printf("很遗憾,你失败了,请再接再厉吧!\n");
return 0;


int main()

int i=0,j=0,k=0,w=0;
int comp,size[4];

srand((unsigned int)time(NULL));
while(i!=4)

A:comp=rand()%(9-1+1)+1;
*(size+i)=comp;
for(k=0;k<i;k++)

if(*(size+i)==*(size+k)||*(size+i)==0)
goto A;

w=w*10+comp;
i++;

Compare_record(size);

参考技术A 说一下我自己的理解。

(1)编译的过程和反编译的过程是相反的。

编译的过程一般是高级语言(如C语言)——》中间语言(只出现在编译过程中)——》汇编语言——》可执行的二进制代码

反编译就是从可执行的二进制代码开始,反着来。二进制代码反编译后一般也就是到汇编而已,通常情况下很难进一步往回反。

(2)分析一下几种语言的情况

①VC的程序
VC的程序反编译到汇编代码没有问题

②Java的程序
对于.class文件可以反编译到.java,也没有问题

③.net的程序
.net中的dll文件可以反编译到VB.net或者C#,也没有问题

反编译中用到的具体软件没有给出,可以比较容易地从网上搜索到。
参考技术B 邮箱、、、、、、 贴出来麻烦 直接给文本你、、、、、追问

tuzixihuandeluobo@163.com

本回答被提问者采纳

以上是关于帮忙纠错一个c语言代码的主要内容,如果未能解决你的问题,请参考以下文章

跪求C语言大佬,帮忙翻译代码,万分感谢!!!

C语言打印图中两点之间的所有路径,不是最短路径!!!谢谢高手麻烦帮忙 代码要实现哈!

请高手帮忙,要解题思路或者是代码,最好c语言。

C语言高手帮帮忙。帮这这段代码添加个注释。新手。

请帮忙用C语言编写一个函数~~~功能是“文件复制”~~~谢谢~~

C语言纠错,说是找到一个或多个多重定义的符号