永发信息网

关于C语言的两个问题

答案:3  悬赏:60  手机版
解决时间 2021-06-03 16:02
  • 提问者网友:贪了杯
  • 2021-06-02 17:44

两个程序编写题目,要求使用指针编写~

1 从键盘输入10名学生的成绩,显示其中最低分、最高分以及平均成绩(使用指针)

2 从键盘输入数组元素,最大的与第一个交换,最小的与最后一个元素交换,并输出数组(使用指针)

最佳答案
  • 五星知识达人网友:冷風如刀
  • 2021-06-02 18:16

#include <stdio.h>
int main()
{
int score[10],i,*max,*min;
float *ave=0,sum=0;


printf("input ten digiter:")
for(i=0;i<10;i++){
scanf("%d",&score[i]);
}
max=&score[0],min=&score[0];
for(i=0;i<10;i++){
if(*max<score[i]) max=&score[i];
if(*min>score[i]) min=&score[i];
sum+=score[i];
}
*ave=sum/i;
printf("min=%d max=%d ave=%f",*min,*max,*ave);
return 0;
}


截图:



我在第一题的基础上进行改编,就成第二题答案了:


#include <stdio.h>
int main()
{
int score[10],i,*max,*min;
printf("input ten digiters:");
for(i=0;i<10;i++){
scanf("%d",&score[i]);
}
max=&score[0],min=&score[0];
for(i=0;i<10;i++){
if(*max<score[i]){
max=&score[i];
}
if(*min>score[i]){
min=&score[i];
}
}
i=*min;*min=score[9];score[9]=i;
i=*max;*max=score[0];score[0]=i;
printf("after sort digiters:");
for(i=0;i<10;i++){
printf("%-5d",score[i]);
}
getch() ;
return 0;
}
截图:

全部回答
  • 1楼网友:行路难
  • 2021-06-02 20:05

写得比较简单!

第一题:

#include<stdio.h> void main() { int i; float a[10],max,min,sum=0,*p=a; printf("输入10个学生的成绩\n"); for(i=0;i<10;i++) scanf("%f",p+i); max=a[0];min=a[0];p=a; for(i=1;i<10;i++,p++) { sum+=*p; if(*p>max)max=*p; if(*p<min)min=*p; } printf("最高分:%.2f",max); printf("\n最低分:%.2f",min); printf("\n平均分:%.2f\n",sum/10.0); }

第二题:

#include<stdio.h> void main() { int a[10],i,*max,*min,*p=a; printf("输入10个数\n"); for(i=0;i<10;i++,p++) scanf("%d",p); max=a;min=a; for(i=1;i<10;i++) { if(*(a+i)>*max)max=a+i; if(*(a+i)<*min)min=a+i; } i=*max;*max=a[0];a[0]=i; i=*min;*min=a[9];a[9]=i; for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); }

  • 2楼网友:野味小生
  • 2021-06-02 18:59

第一题 #include <stdio.h>

#define N 10

int main() { float a[N], *min, *max, *p, sum = 0; int i = 0; for(min = max = p = a; p < a + N; p++) { printf("输入第%d个学生成绩:", ++i); scanf("%f", p); if(*max < *p) max = p; else if(*min > *p) min = p; sum += *p; } printf("最高分:%.1f\n", *max); printf("最低分:%.1f\n", *min); printf("平均分:%.1f\n", sum / N); return 0; } 运行截图:

第二题 #include <stdio.h>

#define N 10 #define SWAP(a, b) t = a , a = b , b = t

int main() { int a[N], *min, *max, *p, t; printf("输入10个整数:\n"); for(min = max = p = a; p < a + N; p++) { scanf("%d", p); if(*max < *p) max = p; else if(*min > *p) min = p; } SWAP(*max, *a); if(min == a) min = max; SWAP(*min, *(a + N - 1)); printf("交换后的数组:\n"); for(p = a; p < a + N; p++) printf("%d ", *p); return 0; } 运行截图:

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯