结构体函数_怎么样可以在一个函数中输入不同的结构体信息
问题补充:
最佳答案
按我以前给你的例子,自己先编写下
Student中int no,score;
然后循环输入数据
再循环判断并输出符合要求的信息
我可以帮你修改,但再好不要每次都给你完整的程序
追问:
#include<stdio.h> struct student { int no; float grade; }; int main() { int n,i; scanf("%d",&n); float a,b; scanf("%.1f %.1f",&a,&b); struct student stus[n]; for(i=0;i<n;i++) { scanf("%d %d",&stus[i].no,&stus[i].grade); if(stus[i].grade>a&&stus[i].grade<b) { printf("%d:%.1f\n",&stus[i].no,&stus[i].grade); } } return 0; } 这是我自己编写的,但是我不知道怎么将信息存入到结构体中,就是按这个程序是无结果
追问:
for(i=0;i<n;i++) { scanf("%d %d",&stus[i].no,&stus[i].grade); if(stus[i].grade>a&&stus[i].grade<b) { printf("%d:%.1f\n",&stus[i].no,&stus[i].grade); } } return 0; } 追答:
一个明显的错scanf("%d %d",&stus[i].no,&stus[i].grade); 你的grade是float类型的,不能用%d输入的,要改为%f另外,一般输入浮点,不要用小数定位格式你的%.1f一般只要用%f另外,不知你用什么编译器,你的程序是C99/C++0x以上标准的,一般的编译器不支持如struct student stus[n]; 这种写法目前只有gcc支持的,且要加-std选项
追问:
还有就是怎么定义结构体呀,像题中给出的示例一样,不同的题结构体元素数量是不一样的,怎么能确保用循环来输入结构体中的信息呢? 有点语无伦次了,不知道表达清楚没? 追答:
从结构上讲,你的输入没有问题啊下标数量的话,可以用动态数组或静态数组简单的是静态的,也就是用struct student stus[100]; //最多输入100个,一般题目都有最大值的限止的而动态的话,C99或C++0x以上,就可以用你的定义方法struct student stus[n]; 老式编译器(常用的方法),要用指针了,C可用malloc,而c++的可用newstruct student *stus= (struct student *)malloc(n*sizeof(struct student )); //C的student *stus=new student[n]; //C++的而使用时,与数组没有区别的就可以用stus[i]的
追问:
嗯嗯,非常感谢你,万分感谢!!!!每次都问你。。。
最佳答案由网友 whoami1978 提供
其他回答
暂无其它回答!