编程序遇到问题,不会修改,求指导。3q

三日之别 2014-01-14 04:49:39
运行不对,求指导,先谢谢了!

#include <stdio.h>
#include <malloc.h>

struct student()
{
int age;
float score;
char name[100];
}

void f(int i,int len)
{

for(i=0; i<len; ++i)
{
printf("请输入第%d个学生的信息: ", i+1);
printf("age = ");
scanf("%d", &parr[i].age);

printf("name = ");
scanf("%s", parr[i].name);

printf("score = ");
scanf("%f", &parr[i].score);

}
return;
}

void g(int * parr,int len)
{
for (i=0; i<len-1; ++i)
{
for (j=0; j<len-1-i; ++j)
{
if (parr[j].score > parr[j+1].score)
{
t = parr[j];
parr[j] = parr[j+1];
parr[j+1] = t;
}
}
}
return;
}

void k(int i,int len)
{

for(i=0; i<len; ++i)
{
printf("第%d个学生的信息是:\n", i+1);
printf("age = ", &parr[i].age);
printf("name = ", parr[i].name);
printf("score = ", &parr[i].score);

pintf("\n");
}
return;
}



int main (void)
{
int len;
struct student * parr;
printf("请输入学生的个数:\n");
printf(" len = ");
scanf("%d", &len);
parr = (struct student *)malloc(len * sizeof(struct student));
f(i,len);
g(parr,len);
k(i,len);

return 0;

}






...全文
262 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2014-01-18
  • 打赏
  • 举报
回复
楼主这个代码格式,,,,,,,,,
木木口口 2014-01-18
  • 打赏
  • 举报
回复
void k(int i,int len) { for(i=0; i<len; ++i) { printf("第%d个学生的信息是:\n", i+1); printf("age = ", &parr[i].age); printf("name = ", parr[i].name); printf("score = ", &parr[i].score); pintf("\n"); } return; } 看到楼主这里的printf格式我就真的不想再看下去了,建议还是先看看C语言基础
看见繁华 2014-01-18
  • 打赏
  • 举报
回复
强烈要求 楼主提高编程思想 ,此程序虽然看着小,但是 经过楼主的加工 是在让调试人员 痛不欲生 。 本着最小的改动 给你改了改! #include <stdio.h> #include <malloc.h> typedef struct student { int age; float score; char name[100]; }st; void f(st *parr,int i,int len) { for(i=0; i<len; ++i) { printf("请输入第%d个学生的信息: ", i+1); printf("age = "); scanf("%d", &parr[i].age); printf("name = "); scanf("%s", parr[i].name); printf("score = "); scanf("%f", &parr[i].score); } return; } void g(st * parr,int len) { int i,j,k; st t; for (i=0; i<len-1; ++i) { for (j=0; j<len-1-i; ++j) { if (parr[j].score > parr[j+1].score) { t = parr[j]; parr[j] = parr[j+1]; parr[j+1] = t; } } } return; } void k(st *parr,int len) { int i =0; for(i=0; i<len; ++i) { printf("第%d个学生的信息是:\n", i+1); printf("age = %d", parr[i].age); printf("name = %s", parr[i].name); printf("score = %lf", parr[i].score); printf("\n"); } return; } int main (void) { int len; int i=0 ; printf("请输入学生的个数:\n"); printf(" len = "); scanf("%d", &len); struct student *parr; parr = (struct student *)malloc(len * sizeof(struct student)); f(parr,i,len); g(parr,len); k(parr,len); return 0; }
iaccepted 2014-01-17
  • 打赏
  • 举报
回复
有些变量i和t等都没定义,另外一个循环用的变量还需要作为参数传入,用意何在? 代码的风格也有很大的问题啊,我觉着得多写多练了。 这个代码不是运行错误的问题,应该直接没法运行,错误太多。
vcgaoshou 2014-01-17
  • 打赏
  • 举报
回复
#include <stdio.h> #include <malloc.h> struct student { int age; float score; char name[100]; }parr[50]; void f(int len) { int i; for(i=0; i<len; ++i) { printf("请输入第%d个学生的信息: ", i+1); printf("age = "); scanf("%d", &parr[i].age); printf("name = "); scanf("%s", parr[i].name); printf("score = "); scanf("%f", &parr[i].score); } return ; } void g(student *parr,int len) { int i,j; for (i=0; i<len-1; ++i) { for (j=0; j<len-1-i; ++j) { if(parr[j].score>parr[j+1].score) { student t = parr[j]; parr[j] = parr[j+1]; parr[j+1] = t; } } } return; } void k(int len) { for(int i=0; i<len; ++i) { printf("第%d个学生的信息是:\n", i+1); printf("age = %d", &parr[i].age); printf("name = %s", parr[i].name); printf("score = %f", parr[i].score); printf("\n"); } return; } int main (void) { int len; struct student * parr; printf("请输入学生的个数:\n"); scanf("%d", &len); parr = (struct student *)malloc(len * sizeof(struct student)); f(len); g(parr,len); k(len); return 0; } 正确的代码
vcgaoshou 2014-01-17
  • 打赏
  • 举报
回复
#include <stdio.h> #include <malloc.h> struct student { int age; float score; char name[100]; }parr[50]; void f(int len) { int i; for(i=0; i<len; ++i) { printf("请输入第%d个学生的信息: ", i+1); printf("age = "); scanf("%d", &parr[i].age); printf("name = "); scanf("%s", parr[i].name); printf("score = "); scanf("%f", &parr[i].score); } return ; } void g(student *parr,int len) { int i,j; for (i=0; i<len-1; ++i) { for (j=0; j<len-1-i; ++j) { if(parr[j].score>parr[j+1].score) { student t = parr[j]; parr[j] = parr[j+1]; parr[j+1] = t; } } } return; } void k(int len) { for(int i=0; i<len; ++i) { printf("第%d个学生的信息是:\n", i+1); printf("age = ", &parr[i].age); printf("name = ", parr[i].name); printf("score = ", &parr[i].score); printf("\n"); } return; } int main (void) { int len; struct student * parr; printf("请输入学生的个数:\n"); scanf("%d", &len); parr = (struct student *)malloc(len * sizeof(struct student)); f(len); g(parr,len); k(len); return 0; }
大奶兔白糖 2014-01-15
  • 打赏
  • 举报
回复
楼主首先要学会看编译器提示的编译错误,先把代码编译了再说。运行不对?能运行吗?
老鼠期待爱 2014-01-14
  • 打赏
  • 举报
回复
你的代码问题实在是多,封装的函数,用到了很多没有定义的变量,这些变量你可以设置为全局的,不然你这个是编译不过去的,自己改吧
本科生实验报告 实验课程 可编程控制器原理及应用 学院名称 核技术与自动化工程学院 专业名称 电气工程及其自动化 学生姓名 学生学号 指导教师 王洪辉 实验地点 6C902 实验成绩 二〇一五年十月至二〇一五年十二月 实验一 多人抢答器设计 一、实验目的 1.运用PLC编写简单的程序实现控制功能。 2.学会运用PLC基本逻辑指令。 2.了解并掌握PLC控制系统设计的步骤和要。 3.熟悉并掌握软、硬件设计的基本环节及设计技巧。 二、实验内容及实验要 1、控制要 (1)、设计抢答器按钮3个,对应抢答成功指示灯3个,复位按钮一个; (2)、任意一个抢答按钮被按下时,对应输出指示灯点亮,其他抢答按钮失效,本 轮抢答完成。 (3)、当复位按钮被按下时,输出指示灯亮。 2、扩张要 用程序控制取代复位按钮,在抢答完成后,系统保持10S5秒后个抢答器对应的指示灯复 归,以便进行下一轮的抢答。 三、实验步骤 1、根据题目内容要进行I/O分配 分配如下: " "A按钮 "SB1 "I0.0 " "输入 " " " " " "B按钮 "SB2 "I0.1 " " "C按钮 "SB3 "I0.2 " " "复位按钮 "SB0 "Q0.0 " " "A指示灯 "LD1 "Q0.1 " "输出 " " " " " "B指示灯 "LD2 "Q0.2 " " "C指示灯 "LD3 "Q0.3 " 2、编写PLC梯形图及其扩展程序 基础启保停 梯形图程序如下: 实验接线图 三、实验步骤 1. 检查实训设备中器材及调试程序。 2. 按照I/O端口分配表或接线图完成PLC与实训模块之间的接线,认真检查,确保正确无误 。 3. 编写好控制程序,进行编译,有错误时根据提示信息修改,直至无误,用PC/PPI通讯编 程电缆连接计算机串口与PLC通讯口,打开PLC主机电源开关,下载程序至PLC中,下 载完毕后将PLC的"RUN/STOP"开关拨至"RUN"状态。 4. 打开"启动"开关,系统进入自动运行状态,LED数码显示控制控制程序并观察工作状态 。 关闭"启动"开关,系统停止运行。 四、实验总结与心得 达到了设计的要和观察到了预期的实验效果。 1.PLC梯形图的设计需要有很巧妙的设计方法,设计出一个好的梯形图并不是一件简 单的事;有好多的东西,理论上看着很简单,但其实想真正掌握需要在实际操作中花很 多功夫,需要大量的经验积累。 2.在实验中也遇到了很多问题导致自己所在组一直在编程进度上有些滞后,最开始是 由于不熟悉该软件的编写原则,导致在一个网络里面编写了多个输出,造成编写出的程 序不能正常下载,经改正后正确,实验达到了预设目的 3.第一次实验为后面的实验积累了宝贵的经验,让自己对理论课上的梯形图语言有了 更进一步的认识,也有利于后边的实验编写,更加的熟悉Step 7这个软件的性能。 实验二 循环流水灯项目设计 一、实验目的 1.运用PLC编写简单的程序实现控制功能。 2.学会运用PLC基本逻辑指令。 3.掌握流水灯控制系统的接线、调试、操作。 4.熟悉并掌握软、硬件设计的基本环节及设计技巧。 二、实验内容及实验要 1、控制基本要 (1)设置启动按钮1个,停止按钮1个输出指示灯3个(L1、L2、L3) (2)当启动按钮被按下L1灯亮(L2灭),并保持3秒后,自动熄灭;然后L2点亮(L1灭 ),同样保持3秒熄灭,然后L3点亮并循环往复。 (3)当停止按钮被按下,所有输出指示灯灭,循环停止。 2、控制扩展要 在基本要的基础上,加设循环时间切换拨动开关1个,用于切换循环间隔时间为5s或者 1s 三、实验步骤 1、根据题目内容要进行I/O分配 分配如下 " "启动按钮 "SB1 "I0.0 " "输入(I) " " " " " "停止按钮 "SB2 "I0.1 " " "切换按钮 "SB0 "I0.2 " "输出(Q) "L1 "LD1 "QO.0 " " "L2 "LD2 "Q0.1 " " "L3 "LD3 "Q0.2 " 2、编写PLC梯形图程 基本要PLC程序与扩展要程序: 3、操作步骤 1. 检查实训设备中器材及调试程序。 2. 按照I/O端口分配表或接线图完成PLC与实训模块之间的接线,认真检查,确保正确无误 。 3. 编写好控制程序,进行编译,有错误时根据提示信息修改,直至无误,用PC/PPI通讯编 程电缆连接计算机串口与PLC通讯口,打开PLC主机电源开关,下载程序至PLC中,下 载完毕后将PLC的"RUN/STOP"开关拨至"RUN"状态。 4. 打开"启动"开关,系统进入自动运行状态,调试天塔之光控制程序并观察工作状态。 5. 关闭"启动"开关,系统停止运行。 四、实验总结及心得 达到了设计的要和观察到了预期的实验效果。 1、首先
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088

69,371

社区成员

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

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