总之就是printf语句执行不了,好奇怪
代码目的是输入5个学生数据,选出成绩最低的人(考虑重复情况)存入h指向的结构体数组中。
代码为:
#include<stdio.h>
#define N 5
struct student
{
int num;
double score;
}s[N];
int fun(struct student s[],struct student *h)
{
int total,i,j=0;
double min=100.0;
for(i=0;i<N;i++)
if(min>s[i].score) min=s[i].score;
for(i=0;i<N;i++)
if(s[i].score==min)
{
(h+j)->num=(s+i)->num;
(h+j)->score=(s+i)->score;
j++;
total++;
}
printf("min_score student:\n num\n");
for(i=0;i<total;i++)
printf(" %d %lf\n",h[i].num,h[i].score);
return total;
}
int main()
{
struct student *h;
int i;
for(i=0;i<N;i++)
scanf("%d %lf",&s[i].num,&s[i].score);
printf("total:%d\n",fun(s,h));
return 0;
}
看了网上方法却没用,而且不仅输出不了,本菜鸟也不知道如何在fun函数里面对h的数组进行赋值从而影响到外函数,试了指针也没用,外函数输出时是乱码的,求解!!
不懂,为什么printf执行不出来
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 书山客 2021-12-29 22:57关注
#include<stdio.h> #define N 5 struct student { int num; double score; }s[N]; int fun(struct student s[], struct student* h) { int total=0, i, j = 0; double min = 100.0; for (i = 0; i < N; i++) if (min > s[i].score) min = s[i].score; for (i = 0; i < N; i++) if (s[i].score == min) { (h + j)->num = (s + i)->num; (h + j)->score = (s + i)->score; j++; total++; } printf("min_score student:\n num\n"); for (i = 0; i < total; i++) printf(" %d %lf\n", h[i].num, h[i].score); return total; } int main() { struct student* h=new student; int i; for (i = 0; i < N; i++) scanf("%d %lf", &s[i].num, &s[i].score); printf("total:%d\n", fun(s, h)); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探