2019/12/16日补档
今天晚上研究了C语言两道习题——“求质数”和“在12个球里面区分一个质量与其他小球不一样的球,并输出是几号球、过轻还是过重”。目的是加强对循环体和调用函数的概念。
(补充:以下为代码)
求质数:
#include<stdio.h>
int main()
{
int i, a, flag=1;
printf("请输入一个整数。\n");
scanf_s("%d", &a);
for (i = 2; i < a; i++)
{
if (a % i == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("此数为质数\n");
else printf("此数不是质数");
return 0;
}
孰轻孰重
#include<stdio.h>
#include<iomanip>
#include<iostream>
using namespace std;
int main()
{
int a,b, i, m[12];
int plus(int, int, int m[]);
void bijiao(int, int, int m[]);
void bijiao1(int, int, int m[], int);
i = rand() % 12;//不标准值的下标
m[i] = rand() % 100 + 1;//不标准值
b = rand() % 100 + 1;//标准值
if (m[i] == b)b = rand() % 100 + 1;//以防标准值和不标准值相同
for (a = 0; a <= 11; a++)
{
if (a == i)continue;
m[a] = b;
}
for (a = 0; a <= 11; a++)
{
cout << m[a] << " ";
}
cout << endl;
if (plus(0, 5, m) == 6 * b)
{
if (plus(6, 8, m) == 3 * b)
{
if (plus(9, 10, m) == 2 * b)bijiao(b, 11, m);
else bijiao1(9, 10, m, b);
}
else if (plus(6, 7, m) == 2 * b)bijiao(b, 8, m);
else bijiao1(6, 7, m, b);
}
else if (plus(0, 2, m) == 3 * b)
{
if (plus(3, 4, m) == 2 * b)bijiao(b, 5, m);
else bijiao1(3, 4, m, b);
}
else if (plus(0, 1, m) == 2 * b)bijiao(b, 2, m);
else bijiao1(0, 1, m, b);
system("pause");
return 0;
}
int plus(int a, int b, int m[])
{
int c = 0;
for (; a <= b; a++)
{
c = m[a] + c;
}
return c;
}
void bijiao(int a, int b, int m[])//a为标准值,b为要比较的下标值
{
if (a < m[b])cout << (b + 1) << "号球偏重";
else cout << (b + 1) << "号球偏轻";
}
void bijiao1(int a, int b, int m[], int c)//c为标准值
{
if (m[a] == c)
{
if (m[b] > c)cout << (b + 1) << "号球偏重";
else cout << (b + 1) << "号球偏轻";
}
else if (m[a] > c)cout << (a + 1) << "号球偏重";
else cout << (a + 1) << "号球偏轻";