热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言编程求助:简单程序出现错误,求高手指点迷津

你的问题在于:1.代码格式混乱,缺乏必要的缩进,导致可读性极低;2.使用`strlen()`和`malloc()`函数时,必须包含相应的头文件;3.`write()`函数的返回值处理不当,建议检查并处理其返回值以确保程序的健壮性。此外,建议在编写代码时遵循良好的编程规范,增加代码的可维护性和可读性。

你的失误:

1.代码写的太乱,毫无缩进,可读性极差

2.使用了strlen()就必须有头文件,malloc也必须有

3.write()并不需要返回值,void wrrite()就行

我给你改了,自己看看

#include

#include

#include

#define numlen 10

#define scorelen 5

#define total 3

struct achievement

{

char *name;

char number[numlen];

int score[scorelen];

};

struct achievement stu[total];

int read(struct achievement *stu)

{

int i, m, len, num;

char buf[40];

printf(“please input name:\n”);

if (scanf(“%s”, buf) == 1)

{

len = strlen(buf);

stu->name = (char *)malloc(len + 1);

strcpy(stu->name, buf);

}

else return 0;

printf(“please input number:\n”);

if (scanf(“%s”, buf) == 1)

strcpy(stu->number, buf);

else

{

free(stu->name);

return 0;

}

printf(“please input score”);

for (i &#61; 0; i <5; i&#43;&#43;)

{

if (scanf(“%d”, &num) &#61;&#61; 1)

stu->score[i] &#61; num;

else

break;

}

for (m &#61; i; m <&#61; 4; m&#43;&#43;)

stu->score[m] &#61; 0;

return 1;

}

void write(struct achievement *stu)

{

int i;

printf(“name    :%s\n”, stu->name);

printf(“number  :%s\n”, stu->number);

printf(“score   :”);

for (i &#61; 0; i <&#61; 4; i&#43;&#43;)

printf(“%d”, stu->score[i]);

}

void main()

{

int i, n;

printf(“please input the students’ achievement:\n”);

for (n &#61; 0; n

{

read(stu &#43; n);

printf(“please input the next’s:\n”);

}

for (i &#61; 0; i <&#61; n; i&#43;&#43;)

write(stu &#43; i);

}



推荐阅读
author-avatar
手浪用户2602930803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有