175
社区成员
发帖
与我相关
我的任务
分享题目11:给定不超过6的正整数A,考虑从A开始的连续4个数字,输出所有由他们组成的无重复数字的3位数
#include <stdio.h>
int main(){
int A;
printf("请输入数字:");
scanf("%d", &A);
int i, j, k;
int cnt = 0;
i = A;
while (i <= A + 3)
{
j = A;
while (j <= A + 3)
{
k = A;
while (k <= A + 3)
{
if (i != j && i != k && j != k)
{
cnt++;
printf("%d%d%d", i, j, k);
if (cnt == 6)
{
printf("\n");
cnt = 0;
}
else
{
printf(" ");
}
}
k++;
}
j++;
}
i++;
}
return 0;
}
结果:

题目12:猜数字游戏:令系统随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到 ,则提示“Game Over”,并结束程序。(此处假设N=5)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int number, N;
int cnt = 0;
int finished = 0;
int guess;
number = rand()%100;
N = 5;
do
{
scanf("%d", &guess);
cnt++;
if (guess < 0) { printf("Game Over\n"); finished = 1; }//负数是错误的
else if (guess > number) { printf("Too big\n"); }//大了
else if (guess < number) { printf("Too small\n"); }//小了
else//猜的数等于生成数
{
if (cnt == 1) { printf("Bingo!\n"); }
else if( cnt <= 3 && cnt > 1){ printf("Lucky You!\n"); }
else { printf("Good Guess!\n"); }
finished = 1;
}
if (cnt == N)
{
if (!finished)
{
printf("Game Over\n");
finished = 1;
}
}
} while (!finished);
return 0;
}
结果:

题目13: 计算序列2/1+3/2+5/3+8/5+...的前n项之和。(注意该序列从第2项起,每一项的分子是前一项分子和分母的和,分母是前一项的分子)
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
double FengZi=2, FengMu=1;
double sum=0.0;
int i;
int t;//用来储存分子分母变化后的数据
for (i = 1; i <= n; i++)
{
sum += (FengZi / FengMu);
t = FengZi;
FengZi = FengZi + FengMu;
FengMu = t;
}
printf("%.2f\n", sum);
return 0;
}
结果:

题目14:输入分子分母,程序自动化简为最简分式。
#include <stdio.h>
int main()
{
int FengZi, FengMu;
scanf("%d/%d", &FengZi, &FengMu);
int n;
int a=FengZi,b=FengMu,c=0;
while (b > 0)//辗转相除法
{
n = a % b;
a = b;
b = n;
}
printf("%d/%d\n", FengZi / a, FengMu / a);
return 0;
}
结果:

题目15:念数字:输入一个整数,输出每个数字对应的拼音,当整数为负数时,先输出“fu”字。
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
if (n < 0)
{
printf("fu ");
n = -n;
}
int t = n;
int mask = 1;
while (t > 9)
{
t /= 10;
mask *= 10;
}
do
{
int a = n / mask;
switch ( a )
{
case 0:printf("ling"); break;
case 1:printf("yi"); break;
case 2:printf("er"); break;
case 3:printf("san"); break;
case 4:printf("si"); break;
case 5:printf("wu"); break;
case 6:printf("liu"); break;
case 7:printf("qi"); break;
case 8:printf("ba"); break;
case 9:printf("jiu"); break;
}
if (mask > 9)
{
printf(" ");
}
n %= mask;
mask /= 10;
} while (mask > 0);
printf("\n");
return 0;
}
结果:

题目16:求a的连续和:输入两个整数a和n,a的范围是【0,9】,n的范围是【1,8】,求数列之和S=a+aa+aaa+aaaa+...+aa...a(n个a)
#include <stdio.h>
int main()
{
int a, n;
scanf_s("%d %d", &a, &n);
int S = 0;
int change = 0;
while (n > 0)
{
change += a;
S += change;
a *= 10;
n--;
}
/*
另一种写法:
int i;
for ( i = 0; i < n; i++)
{
change = change * 10 + a;
S += change;
}
*/
printf("%d", S);
return 0;
}
结果:

题目17:
结果: