👁🗨👁🗨1.
问题:
读入全班30个学生的C语言成绩,求全班平均成绩,并统计高于平均分
的学生人数。
分析:
读入全班30个学生的成绩也就是要用一个for循环来输入学生的成绩。学生成绩可以是小数,所以用 float 类型。30个学生的成绩可以用一个float类型的数组来存储,求全班的平均成绩即把所有的人的成绩加在一起,除以学生的数量即可。要想统计高于平均分的学生个数,就要用一个循环来比较一下学生的成绩,同时设一个变量(计数器),只要该成绩大于平均成绩就让计数器进行加一操作。
代码如下:
include <stdio.h>
int main()
{
float score[30], aver, sum = 0;
int i;
int count = 0; //计数器
for ( i = 0; i < 30; i++)
{
scanf("%f", &score[i]);
sum += score[i];
}
aver = sum / 30;
for (i = 0; i < 30; i++)
{
if (score[i] > aver)
count++;
}
printf("aver=%f\n", aver);
printf("count=%d\n", count);
return 0;
}
👁🗨👁🗨 2.
问题:
输入10个整数,按每行4个数输出这些整数,最后输出这批整数的最大值。
分析:
首先想到的就是,利用创建一个数组来存放这10个数,要求每行输出4
个数,即当数组下标%4时==0;打印一个换行就行。要想输出最大值,即用一个for循环,创建一个新变量max,先假设 a[0]=max;
当循环进行后,如果下一个数比max大,就把这个数赋值给max,然后利用for循环一直比下去,如果下一个数没有max大,就不用操作,继续进行循环即可。直到循环结束,最大值也就知道了,就是max。
代码如下:
include <stdio.h>
int main()
{
int score[10];
int i;
int max = 0;
for ( i = 0; i < 10; i++)
scanf_s("%d", &score[i]);
for (i = 0; i < 10; i++)
{
if (i % 4 == 0&&i!=0)
printf("\n");
printf("%d ", score[i]);
}
max = score[0];
for (i = 1; i < 10; i++)
if (max < score[i])
max = score[i];
printf("\n");
printf("%d",max);
return 0;
}
👁🗨👁🗨3.
问题:
写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
分析:
首先要明确什么是素数
除了1和它本身以外,不能被其他正整数整除的数叫素数。如:2,3,5,7,11,13,17……
所以就是说,你输入的这个数 i,用输入的这个数i %利用一个for循环,从2开始到输入的这个数 i-1,如果其中有一次==0的话即可判断是素数,如果到循环结束时还没有一次能够整除的,即可认定没有素数。
代码实现:
include <stdio.h>
include <string.h>
int is_Prime(int a)
{
int i;
if(a==1)
return 1;
if (a == 2)
return 0;
for (i = 2; i < a; i++)
{
if (a % i == 0)
return 1;
else
return 0;
}
}
int main()
{
int a;
scanf_s("%d", &a);
if (is_Prime(a) == 0)
printf("输入的该数是素数");
if(is_Prime(a)==1)
printf("输入的该数不是素数");
return 0;
}