一、前言
提示:以下是博主自己写的代码,仅供参考,欢迎有兴趣的朋友们留言讨论呀
二、正文
1.第一题
#include<stdio.h>
void main() {
int i = 0, n;
while (1) {
printf("请输入一个不多于5位的正整数:");
scanf("%d", &n);
if (n > 0 && n < 100000)break;
}
printf("\n原数为:%d\n", n);
printf("逆序后为:");
while (n != 0) {
printf("%d", n % 10);
n /= 10;
i++;
}
printf("\n它的位数是:%d\n", i);
}
运行结果示例:
手写版:
2.第二题
以10个字符为例
#include<stdio.h>
#define N 10
void sort();
char a[N];
void main()
{
int i;
printf("请输入%d个字符\n", N);
for (i = 0; i < N; i++)
scanf(" %c", &a[i]);
sort();
printf("\n排序后为:\n");
printf("%s\n", a);
}
void sort()//选择排序,从小到大
{
int i, j, m;
char t;
for (i = 0; i < N - 1; i++)
{
m = i;
for (j = i + 1; j < N; j++)
if (a[m] > a[j])
m = j;
if (m != i)
{
t = a[i];
a[i] = a[m];
a[m] = t;
}
}
}
运行结果示例:
手写版:
3.第三题
以6个学生为例
//示例数据如下:
学生1 01 43 65 87 12 98.5
学生2 02 65 36 94 80 87
学生3 03 76 98 45 76 34
学生4 04 65 45 98 78 90
学生5 05 99 23 54 76 97
学生6 06 34 76 23 97 87
#include<stdio.h>
#define SN 6
#define CN 5
struct {
char n[20];//姓名
int id;//学号
double g[CN];//各学科成绩
} s[SN];
void s_ave();//学生平均分
void g_ave();//各科平均分
void ave();//平均方差
double a[SN];//保存学生平均分
void main()
{
int i, j;
for (i = 0; i < SN; i++)
{
printf("请依次输入第%d个学生的信息:\n", i+1);
scanf(" %s%d", s[i].n, &s[i].id);
for (j = 0; j < CN; j++)
scanf("%lf", &s[i].g[j]);
printf("\n");
}
s_ave(); g_ave(); ave();
}
//学生平均分
void s_ave()
{
int i, j;
for (i = 0; i < SN; i++)
{
a[i] = 0;
for (j = 0; j < CN; j++)
a[i] += s[i].g[j];
a[i] /= 5;
printf("%s的平均分为:%.2lf\n", s[i].n, a[i]);
}
}
//各科平均分
void g_ave()
{
int i, j, max;
double a;
for (j = 0; j < CN; j++)
{
a = 0; max = 0;
for (i = 0; i < SN; i++)
{
a += s[i].g[j];
if (s[max].g[j] < s[i].g[j])
max = i;
}
printf("第%d门课的平均分为%.2lf,最高分为:%s\n", j + 1, a / SN, s[max].n);
}
}
//平均方差
void ave()
{
int i;
double y1 = 0, y2 = 0;
for (i = 0; i < SN; i++)
{
y1 += a[i] * a[i];
y2 += a[i];
}
y1 /= 10;y2 /= 10;
y2 *= y2;
printf("平均分方差为%.2lf\n", y1 - y2);
}
运行结果示例:
手写版:
4.第四题
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int prism(int n);
int main()
{
int n, x;
FILE *fp;
if (!(fp = fopen("result.dat", "w")))
{
printf("cannot open the file!\n"); exit(0);
}
while (1)
{
printf("请输入一个大于4的偶数:");
scanf("%d", &n);
if (n > 4 && n % 2 == 0)break;
}
for (x = 2; x <= n - x; x++)
if (prism(x) && prism(n - x))
fprintf(fp, "%d=%d+%d\n", n, x, n - x);
if (fclose(fp))
printf("cannot close the file!\n");
return 0;
}
int prism(int n)
{
int i;
for (i = 2; i < sqrt(n); i++)
if (n%i == 0)
return 0;
return 1;
}
运行结果示例:
手写版: