
正文
c语言函数录入信息模板 c语言输入函数怎么写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言试编写输入、输出学生信息的函数,设学生信息包括学号、姓名和5门课程的成绩。
#includestdio.h
struct{
int num;
char name[10];
int s1,s2,s3,s4,s5;
}student[1000];
int main()
{
int number,i;
printf("请输入学生总人数c语言函数录入信息模板:");
scanf("%d",number);
for(i=0;inumber;i++){
printf("请输入第%d名学生c语言函数录入信息模板的信息\n",i+1);
printf("学号c语言函数录入信息模板:");
scanf("%d",student[i].num);
printf("姓名c语言函数录入信息模板:");
scanf("%s",student[i].name);
printf("成绩一:");
scanf("%d",student[i].s1);
printf("成绩二:");
scanf("%d",student[i].s2);
printf("成绩三:");
scanf("%d",student[i].s3);
printf("成绩四:");
scanf("%d",student[i].s4);
printf("成绩五:");
scanf("%d",student[i].s5);
}
printf("学生信息如下:\n");
for(i=0;inumber;i++){
printf("学号:%3d",student[i].num);
printf("姓名:%3s",student[i].name);
printf("成绩一:%3d",student[i].s1);
printf("成绩二:%3d",student[i].s2);
printf("成绩三:%3d",student[i].s3);
printf("成绩四:%3d",student[i].s4);
printf("成绩五:%3d\n",student[i].s5);
}
return 0;
}
相关问答
Q1: 编写一个c语言程序,实现录入学生学号和姓名信息的功能
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。
2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。
3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。
4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。
5、然后在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。
6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。
Q2: 在c语言中如何实现函数模板
各种用 C 语言实现c语言函数录入信息模板的模板可能在使用形式上有所不同。现以一个求和函数 Sum 为例c语言函数录入信息模板,用 C++ Template 可写如下c语言函数录入信息模板:
template R Sum(const T *array, int n)
{
R sum = 0;
for (int i = 0 ; i n ; ++i)
sum += i;
return sum;
}
如果不是内置类型,该模板隐式地需要 有R R::operator+=(T)运算符可用。
1. 使用函数指针作为 Functor 替换者
Typedef struct tagAddClass
{
Void (*add)(char* r1, const char* r2);
Int elemSize;
Char sum[MAX_ELEM_SIZE];
} AddClass;
void Sum(AddClass* self, const char* array, int n)
{
for (int i = 0 ; i n ; ++i)
self-add(self-sum, array + i*self-elemSize);
}
使用时:
Void AddInt(char* r1, const char* r2) {
*(long*)r1 += *(int*)r2; }
AddClass addClass = {AddInt, 2, 0 };
Int array[100];
Read(array);
Sum(addClass, array, 100); …..
2. 用宏作为Functor的替换者
#define GenSumFun(SumFunName, Add, RetType, ElemType)
RetType SumFunName (const ElemType *array, int n) \
{
RetType sum = 0;
for (int i = 0 ; i n ; ++i)
Add(sum, i);
return sum; }
使用时:
#define AddInt(x, y) ((x) += (y))
GenSumFun(SumInt, AddInt, long, int) …..
Int array[100];
Read(array);
Long sum = SumInt(array, 100); …..
3. 所有可替换参数均为宏
至少需要一个额外的文件(实现文件)为 impsum.c
/* impsum.c */
RetType FunName(const ElemType *array, int n)
{
RetType sum = 0;
for (int i = 0 ; i n ; ++i)
Add(sum, i);
return sum; }
使用时:
#undef RetType
#undef FunName
#undef ElemType
#undef Add
#define AddInt(x, y) ((x) += (y))
#define RetType long
#define FunName SumInt
#define ElemType int
#define Add AddInt
#include impsum.c …..
Int array[100];
Read(array);
Long sum = SumInt(array, 100);
4. 总结:
第一种方法,易于跟踪调试,但是效率低下,适用于对可变函数(函数指针)的效率要求不高,但程序出错的可能性较大(复杂),模板函数(Sum)本身很复杂,模板参数也比较复杂(add)的场合。
第二种方法,效率高,但很难跟踪调试,在模板函数和模板参数本身都很复杂的时候更是如此。
第三种方法,是c语言函数录入信息模板我最近几天才想出的,我认为是最好的,在模板参数(Add)比较复杂时可以用函数(第二种也可以如此),简单时可以用宏,并且,易于调试。在模板函数本身很复杂,而模板参数比较简单时更为优越。但是,可能有点繁琐。
关于c语言函数录入信息模板和c语言输入函数怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






