C语言题目:用指针的方法,输入五位同学四门课的成绩,并输出没有不及格科目的同学的平均成绩排序,从大到小

作者&投稿:隆泉 (若有异议请与网页底部的电邮联系)
c语言用指针的方法,输入五位同学四门课的成绩并输出没有不及格科目的同学的~

#include
#include
#include
using namespace std;

int main()
{
int flag[5] = {1,1,1,1,1};//标识 全部及格时为1 刚开始时默认全部及格
int a[5][4] = {0};
int* p = a[0];//成绩数组头指针
//每位同学有四科成绩要记录 则每两个同学成绩的开始指针间隔为4
printf("请输入第1位同学的四门成绩:
");
for (int i = 0; i < 4; i++) scanf("%d",p+i);

printf("请输入第2位同学的四门成绩:
");
for (int i = 4; i < 8; i++) scanf("%d",p+i);

printf("请输入第3位同学的四门成绩:
");
for (int i = 8; i < 12; i++) scanf("%d",p+i);

printf("请输入第4位同学的四门成绩:
");
for (int i = 12; i < 16; i++) scanf("%d",p+i);

printf("请输入第5位同学的四门成绩:
");
for (int i = 16; i < 20; i++) scanf("%d",p+i);
//指针遍历数组 找出全部及格的同学
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 4; j++)
{
if (*(p+(i*4)+j) < 60)
{
flag[i] = 0;
break;
}
}
printf("
");
}
printf("全部科目及格的同学有:
");
for (int i = 0; i < 5; i++)
{
if (flag[i]) printf("第%d位同学
",i+1);
}
return 0;
}

// 定义学生结构体typedef struct student{ char *name; int score1; int score2; int score3; int score4; struct student *next;}STU;STU *pHeadStudent; // 48个学生的单向链表中的首个学生结构体的指针,具体的单向列表的生成省略哦直接写输出班上48个同学的四门科目成绩并求平均值void fun(STU *pHeadStudent){ STU *p = pHeadStudent; while (null != p){ float avg = ((*p).score1 + (*p).score2 + (*p).score3 + (*p).score4)/4.0; printf("%s的第一门成绩为:%d,第二门成绩为:%d,第三门成绩为:%d,第四门成绩为:%d,平均分数为:%.2f
", p->name, (*p).score1, (*p).score2, (*p).score3, (*p).score4, avg); p = p->next; }}

#include <stdio.h>

int main(){

int *f(int (*p)[4],int n);

int sort(int (*p)[4]);

int score[5][4];

int (*p)[4],i,j,k;

p=score;

for(j=0;j<5;j++){

k=j+1;

printf("请输入第%d个同学的成绩:",k);

   for(i=0;i<4;i++){

  scanf("%d",*(p+j)+i);

}

 printf("
");

 }

 sort(p);

}



int *f(int (*p)[4],int n){

   int *pt,i;

   pt=NULL;

   for(i=0;i<4;i++){

  if(*(*(p+n)+i)>=60){

    pt=*(p+n);

  }

   }

   return pt;

}



int sort(int (*p)[4]){

   int *p1,n,t,s,r,i,j,temp,a[10];

    r=0;


   for(n=0;n<5;n++){

   s=0;

   p1=f(p,n);

   if(p1!=NULL){

  for(t=0;t<4;t++){

    s+=*(p1+t);

  }

  a[r]=s/4;

  r++;

   }

 printf("
");

}

 

   


for(i=0;i<=9;i++){

for(j=0;j<=9-i;j++){

 if(a[j]<a[j+1])

 {  temp=a[j];

    a[j]=a[j+1];

a[j+1]=temp;

 }

}

      

 }

for(i=0;i<r;i++){

if(a[i]!=NULL){

       printf("%d",a[i]);

}

}

printf("
");

 return 0;

}

代码中我图简单都用的int,现实中一般还是用float或者double。附上结果图望采纳




C语言用指针方法实现题目。有10个人围成一圈,求出相邻三个数之和的...
include <stdio.h> void main(){ int i, a[10], *p, min;printf("请输入十个整数: ");for(i=0, p = a; i < 10; i ++)scanf("%d", p++);p = a;min = *p + *(p+1) + *(p+2);do { ++p;if(min > *p + *(a+(p-a+1)%10) + *(a+(p-a+2)%10))min ...

我是学计算机的,有几道C语言的题目,请高手帮忙解答一下(关于指针的...
c语言中,函数形参为指针,则想函数传递的是实参的地址,对 *指针 的操作会反映到实参上 就像 1题中 sub(10,5,&a); 向形参z传递的是 a的 地址,在 函数中对 *z 的操作就是对a的操作 因此 a,b,c分别为-5,-12,-7;2题中 判断p1==&m为假 那么a当然就是0了;...

【c语言】定义一个使用指针的函数,实现交换数组a和数组b中的元素
你原代码函数那样写是实现不了数组交换的,我用你的代码小做修改。你看下吧。说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。include <stdio.h>#include <stdlib.h>void change(int *p1,int *p2,int len){ while(len--) *p1^=*p2,*p2^=*p1,*p...

C语言关于指针的一题。
\/*答案是6,过程如下*\/ include<stdio.h> main(){ int a[]={2,4,6},*prt=&a[0],x=8,y,z; \/*定义整形数组a,把2、4、6依次存入数组a的前三个地址 中,定义一个整形指针prt,并把数组a中首地址的值赋值给 prt指向的地址中*\/ for(y=0;y<3;y++)z=(*(prt+y)<x)?*(pr...

C语言用指针求水仙花数
您好,很高兴回答您的问题。水仙花数是指三位数每个位置上的数的立方之和,等于这个数本身。这个题目的难点就在于对这个三位数进行分解,得出每一个位置上的数字。

C语言指针的题目(怎么算的)
void fun(char *a,char *b){ a=b; \/\/ b覆盖了a的原值,也就是b和a都是指向同一个地方,存贮'a'的地方 (*a)++; \/\/a指向的内容加1,'a'变'b'。}

C语言。,。。编程。。题目:采用指针形变量作为形参,编写一个实现两个...
include <stdio.h> void swap(int *a,int *b){ int t;t = *a;a = *b;b = t;} void main (){ int a,b,c;scanf("%d%d%d",&a,&b,&c);if(a<b)swap(&a,&b);if(a < c)swap(&a,&c);if(b < c)swap(&b,&c);printf("从小到大:%d,%d,%d\\n",a,b,c);} ...

C语言小题
)。答案为:-3(b\/(3+a)==0)9.在C语言中可以用( )把一些语句括起来成为复合语句,又程序 答案为:中括号即{} 10.要用数组array中定义5个整数,声明语句为( )。答案为:int array[5];11.声明一个指针P,并将整形变量N的地址给变量P的语句为( )。答案为:int *p=&N;...

求解一道C语言题目,使用数组和指针统计成绩 给定班级各学生各科的考试成...
使用指针变量实现统计学生成绩的方法如下,如有不完全符合要求之处,请同学对程序稍加思考后修改。 #include <stdio.h> void main(){void average(float *p,int n);void search(float (*p)[4],int n);float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};\/\/...

C语言编程,题目1:定义一个一维数组,用指针引用的方法对该数组各元素赋值...
题目1 void main(){ int i;char a[3];a=1;(a+1)=2;(a+2)=3;for(i=0;i<3;i++){ printf("%d.\\n",a[i]);} return;} 题目二 include<stdio.h> void main(){ int i,j;int A[3][4]= { {1,2,3,4},{5,6,7,8},{9,10,11,12} };int (*p)[4]=A;for(i...

通州区14789728095: c语言用指针的方法,输入五位同学四门课的成绩并输出没有不及格科目的同学的 -
巧该双黄: #include using namespace std; int main() { int flag[5] = {1,1,1,1,1};//标识 全部及格时为1 刚开始时默认全部及格 int a[5][4] = {0}; int* p = a[0];//成绩数组头指针 //每位同学有四科成绩要记录 则每两个同学成绩的开始指针间隔为4 printf("请输入...

通州区14789728095: c语言试题及答案拜托了各位 谢谢1、输入一个五位整数,将它反向输出.例如输入12345,输出应为54321.(15分) 2、用两种循环结构分别编程计算1+2+3... -
巧该双黄:[答案] 第一题 #includevoid fun(int a){ if(a解析看不懂?免费查看同类题视频解析查看解答

通州区14789728095: c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个数字互换位置 输出数组 -
巧该双黄: #include<stdio.h> void main() {double a[] = {3, 4.2, 4, 5.3, 1, 0.4, 5};double *max=(double *)malloc(sizeof(double)); // 最大值duzhi指针double *min=(double *)malloc(sizeof(double)); // 最小值dao指针int i;*max = a[0]; // 初始化回最大值*min ...

通州区14789728095: 一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出.用字符串指针实现. -
巧该双黄: #include<stdio.h>#include<string.h> void main() { void sort(char (*p)[20]); char a[5][20];//五行20列 int i; printf("请输入5个字符串:\n"); for(i=0;i<5;i++)//这里输入五个字符串 gets(a[i]); sort(a);//调用函数进行排列 } void sort(char (*p)[20]) ...

通州区14789728095: c语言中怎样用指针求出五位数各位上的数 -
巧该双黄: #includevoid main() { int *p,num,i; printf("input a number: "); scanf("%d",&num); p=&num; while(*p) { i=(*p)%1哗珐糕貉蕹股革瘫宫凯0; *p/=10; printf("%d\n",i); } }

通州区14789728095: 题目是:用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值.
巧该双黄: #include&lt;stdio.h&gt; main() { int a[5],b[5]; int *p; int i; p=a; for(i=0;i&lt;5;i++){ scanf("%4d",p++); } for(i=0;i&lt;5;i++){ p--; b[i]=*p; } for(i=0;i&lt;5;i++){ printf("%4d",b[i]); } }

通州区14789728095: C语言 想编用指针输入5个字符的程序,可编出来却只能输入3个字符,我错在那了啊? -
巧该双黄: 你每次输入应该会输入个回车.也就是 字符+回车+字符+回车+字符 你试试: 字符+字符+字符+字符+字符 最后回车

通州区14789728095: c语言指针编程题:用指向指针的指针的方法对5个字符串排序后输出. -
巧该双黄: char *a[5];/*改成char *a[6];for(i=0;i

通州区14789728095: c语言练习指针,任意给5个数,逆序输出 -
巧该双黄: #include void change(int *p); main() { int a[5]; int *p; printf("请输入5个数字\n"); for(p=a;pscanf("%d",p); change(a); } void change(int *p) { int i=0,j=4,temp; for(;i<2;i++,j--) { temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; } for(i=0;i<5;i++) printf("%d",*p++);// 输出值 要用取值 *,否则输出地址 printf("\n");//分号掉了 }

通州区14789728095: 输入5个学生的名字,用指针的方法,找出指定学生的名字,C语言 -
巧该双黄: 我亲自写的,已经运行过了,没有发现错误,希望能够帮助你!#include #include #include typedef struct node { char name[20]; int id; struct node *next; }Stu; int main() { int i;Stu *head, *p, *q; head = (Stu*)malloc(sizeof(Stu)); p = head; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网