task1
#include <stdio.h>
char score_to_grade(int score); // 函数声明
int main() {
int score;
char grade;
while (scanf("%d", &score) != EOF) {
grade = score_to_grade(score); // 函数调用
printf("分数: %d, 等级: %c\n\n", score, grade);
}
return 0;
}
// 函数定义
char score_to_grade(int score) {
char ans;
switch (score / 10) {
case 10:
case 9: ans = 'A'; break;
case 8: ans = 'B'; break;
case 7: ans = 'C'; break;
case 6: ans = 'D'; break;
default: ans = 'E';
}
return ans;
}

Q1:将不同分段的分数分级并且以a,b,c,d,e的形式展示;整型;返回值类型是字符型
Q2:在执行完符合条件的语句后将继续运行下面的代码而不是停止
task2
#include <stdio.h>
int sum_digits(int n); // 函数声明
int main() {
int n;
int ans;
while (printf("Enter n: "), scanf("%d", &n) != EOF) {
ans = sum_digits(n); // 函数调用
printf("n = %d, ans = %d\n\n", n, ans);
}
return 0;
}
// 函数定义
int sum_digits(int n) {
int ans = 0;
while (n != 0) {
ans += n % 10;
n /= 10;
}
return ans;
}

Q1:将输入的数据中每个单位上的数加起来
Q2:能;一个是迭代,一个是递归
task3
#include <stdio.h>
int power(int x, int n); // 函数声明
int main()
{
int x, n;
int ans;
while (printf("Enter x and n: "), scanf("%d%d", &x, &n) != EOF) {
ans = power(x, n); // 函数调用
printf("n = %d, ans = %d\n\n", n, ans);
}
return 0;
}
// 函数定义
int power(int x, int n) {
int t;
if (n == 0)
return 1;
else if (n % 2)
return x * power(x, n - 1);
else {
t = power(x, n / 2);
return t * t;
}
}

Q1:用递归的方式算出n的x次方,并返回n的x次方的值
Q2:

task4
#include <stdio.h>
#include<stdlib.h>
int is_prime(int a);
int main()
{
int q, a, b=0, c=0;
printf("一百以内的孪生素数: \n");
for(a=3;a<=100;a++)
{
q=is_prime(a);
if (q==1)
{
if(c!=0&&a==(c+2))
{
b+=q;
printf("%d %d\n",c,a);
}
c=a;
}
}
printf("一百以内的孪生素数共有%d个\n",b);
system("pause");
return 0;
}
int is_prime(int a)
{
int x=2;
while(a%x!=0)
{
x+=1;
}
if(a==x)
return 1;
else
return 0;
}

task5
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int m = 0;
void Move(int n, char A, char B, char C)
{
m+=1;
if (n == 1) {
printf("%d:%c --> %c\n",n, A, C);
}
else
{
Move(n - 1, A, C, B);
printf("%d:%c --> %c\n",n, A, C);
Move(n - 1, B, A, C);
}
}
int main()
{
int n;
printf("请输入盘子数:");
while (scanf("%d", &n) != EOF)
{
Move(n, 'A', 'B', 'C');
printf("移动次数:%d次\n", m);
m = 0;
}
}

task6.1(迭代)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int func(int n, int m);
int main() {
int n, m;
int ans;
while (scanf("%d%d", &n, &m) != EOF) {
ans = func(n, m);
printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
}
return 0;
}
int func(int n, int m)
{
int i,j,k,l;
for (i = 1,j=1; i <= n; i++)
{
j *= i;
}
for (i = 1, k = 1; i <= m; i++)
{
k *= i;
}
for (i = 1,l=1;i<=(n-m); i++)
{
l *= i;
}
return j/k/l;
}

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int func(int n, int m);
int main() {
int n, m;
int ans;
while (scanf("%d%d", &n, &m) != EOF) {
ans = func(n, m);
printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
}
return 0;
}
int func(int n, int m)
{
if (n != 0 && m != 0 && n > m)
return func(n - 1, m) + func(n - 1, m - 1);
else
if (n < m)
return 0;
else
return 1;
}

task7
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int gcd(int a1, int b1, int c1);
int main() {
int a, b, c;
int ans;
while (scanf("%d%d%d", &a, &b, &c) != EOF) {
ans = gcd(a, b, c); // 函数调用
printf("最大公约数: %d\n\n", ans);
}
return 0;
}
int gcd(int a1, int b1, int c1)
{
int i,j;
i = a1 > b1 ? b1 : a1;
j = i > c1 ? c1 : i;
for (;j>=1;j--)
{
if (a1 % j == 0 && b1 % j == 0 && c1 % j == 0)
break;
}
return j;
}

浙公网安备 33010602011771号