当前位置:网站首页>Input and output of C language pointer to two-dimensional array
Input and output of C language pointer to two-dimensional array
2022-07-07 01:54:00 【The universe is hidden in the book】
C Language use pointer to enter and input grades
// Pointer to array as function parameter
/* The example title comes from tanhaoqiang C Language programming Fifth Edition 251 page There is a class , There are three students , Learn four courses each , Calculate the total average score and the total score of a designated student And can independently judge the grades of students who fail in various subjects */
#include <stdio.h>
int main()
{
void average(float * p,int n );
void search(float(*p)[4],int n);
void score_input(float score[3][4]);
void pointer_score_input(float * p,int n);
float score[3][4];
//score_input(score);// Input of array version
pointer_score_input(score,12);// Pointer input
average(*score,12);
search(score,3);
return 0;
}
// Define the average function
void average(float * p,int n )
{
float sum=0,aver;
float * p_end;
for(p_end=p;p<p_end+n;p++)
sum=sum+(*p);
aver=sum/n;
printf(" The average score is :%f\n",aver);
}
// Define the function of finding grades
void search(float(*p)[4],int n) // there (*p)[4] Is pointing to having 4 A pointer to a one-dimensional array
{
int i,j,m,flag=0;
//printf(" The students with this grade are %d classmate \n",n);
for(j=0;j<n;j++)
{
for (i=0;i<4;i++)
if(*(*(p+j)+i)<60)
flag=1;
if(flag==1)
{
printf(" The students who fail are %d, His grades in all subjects are \n",j+1);
flag=0;
printf("\n");
for (m=0;m<4;m++)
printf(" %f",*(*(p+j)+m));// The front one *(p+n) It refers to the number of students , Back i It refers to the grade of the student's grade
}
printf("\n");
}
printf("\n");
}
// Score input function
void score_input(float score[3][4])
{
int i,j;
printf(" Please enter the student's grade ");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf(" %f",&score[i][j]);
printf(" Input complete \n");
}
// Pointer version input grade function
void pointer_score_input(float * p,int n)
{
float *score_pointer;
score_pointer=p+n;// Send the address to score_pointer The pointer
printf(" Please enter the student's grade \n");
for(;p<score_pointer;p++)// At this time P The address pointed to by the pointer is scored The first address
scanf("%f",p); // Write data to the specified address
printf(" Input completed \n");
}
边栏推荐
猜你喜欢
dvajs的基础介绍及使用
ROS learning (23) action communication mechanism
永久的摇篮
The difference between Tansig and logsig. Why does BP like to use Tansig
场景实践:基于函数计算快速搭建Wordpress博客系统
【唯一】的“万字配图“ | 讲透【链式存储结构】是什么?
我如何编码8个小时而不会感到疲倦。
百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (下)
Batch delete data in SQL - set in entity
How can I code for 8 hours without getting tired.
随机推荐
JS ES5也可以創建常量?
拖拽改变顺序
shell脚本快速统计项目代码行数
Baidu flying general BMN timing action positioning framework | data preparation and training guide (Part 2)
JS es5 peut également créer des constantes?
POJ 3177 Redundant Paths POJ 3352 Road Construction(双连接)
刨析《C语言》【进阶】付费知识【一】
What does front-end processor mean? What is the main function? What is the difference with fortress machine?
ROS学习(25)rviz plugin插件
公钥\私人 ssh避password登陆
蓝桥杯2022年第十三届省赛真题-积木画
Compile command line terminal swift
刨析《C语言》【进阶】付费知识【完结】
新工作感悟~辞旧迎新~
uva 1401 dp+Trie
AcWing 1148. 秘密的牛奶运输 题解(最小生成树)
编译命令行终端 swift
hdu 4661 Message Passing(木DP&amp;组合数学)
ROS学习(十九)机器人SLAM功能包——cartographer
mysqlbackup 还原特定的表