PTA第七周作业
7-1 求整数的位数及各位数字之和 (15分)
#include <stdio.h>
int main() {
int N, w, s;
w = 0;
s = 0;
scanf("%d", &N);//李志杰
while (N != 0) {
w++;
s = s + N % 10;
N = N / 10;
}
printf("%d %d\n", w, s);
return 0;
}
7-2 野王认证 (8分)
#include<stdio.h>
int main()
{
int h, a, H, A, ph, pa, i = 0, count = 0, t;
scanf("%d%d%d%d%d%d", &h, &a, &H, &A, &ph, &pa);
h = h + ph;
a = a + pa;
t = H;
while (1)
{
if (a >= H)
{
printf("The king of the wild certification!");
return 0;
}
t = t - a;
if (t <= 0)
{
t = H;
count++;
continue;
}
h = h - A;
if (h <= 0)
{
break;
}
}
if (h <= 0 && count == 0)
{
printf("I'm too dishes!");
}
else
printf("%d", count);
return 0;
}
7-3 循环-古角猜想 (20分)
#include<stdio.h>
int main()
{
int n, i;
scanf("%d", &n);//李志杰
if (n == 1)
printf("0");
while (n != 1)
{
i = 0;
while (n != 1)
{
if (n % 2 == 0)
{
printf("%d/2=%d\n", n, n / 2);
n = n/2;
}
else
{
printf("%d*3+1=%d\n", n, n * 3 + 1);
n = n * 3 + 1;
}
i++;
}
}
return 0;
}
7-4 猜数字游戏 (15分)
#include<stdio.h>
int main()
{
int a,b,i=1,num,d=0,f=0,g=0;
scanf("%d %d",&a,&b);
if(num>=0)
{
while(i<=b)
{ scanf("\n%d",&num);
if(num>=0)
{
if(num==a) break;
if(num>a) printf("Too big\n");//李志杰
if(num<a) printf("Too small\n");
i++;
}
else
{ printf("Game Over"); d=1; break;
}
}
if(d==0)
{
if(i==1) printf("Bingo!");
if(i==2||i==3) printf("Lucky You!");
if(i>3&&i<=b) printf("Good Guess!");
if(i>b) printf("Game Over");
}
}
else
{
printf("Game Over");}
return 0;
}
7-5 找出一批学生的最高分 (15分)
#include<stdio.h>
int main()
{
int grade,max;
while(grade>=0)
{
scanf("%d",&grade)!= EOF;//李志杰
if(max<grade)
{
max=grade;
}
}
printf("%d\n",max);
return 0;
}
#include<stdio.h>
int main()
{
int grade,max=-100;
while(grade>=0)
{
scanf("%d",&grade);
if(max<grade)
{
max=grade;
}
}
printf("%d\n",max);
return 0;
}
7-6 购物(二) (25分)
#include<stdio.h>
int main()
{
int count=0;
double m,sum=0,average=0;//李志杰
scanf("%lf",&m);
while(m!=-1)
{
sum=sum+m;
count++;
scanf("%lf",&m);
}
if(count==0)
{
count=1;
}
average=sum/count;
printf("%.2f\n",average);
return 0;
}
7-7 单重循环—数鸡蛋。 (10分)
#include <stdio.h>
int main ()
{
int s=1,y,z,sum=0;
scanf("%d %d",&y,&z);//李志杰
while(s<1000)
{
s++;
if(s % 3 == 1 && s % 5 == z && s % 7 == 3)
{
sum = s + y;break;
}
}
printf("%d",sum);
return 0;
}
# include <stdio.h>
int main ()
{
int x,y,z,sum=0;
scanf("%d %d",&y,&z);
for(x = 1;x < 1000;x ++){
if(x % 3 == 1 && x % 5 == z && x % 7 == 3){
sum = x + y;break;
}
}
printf("%d",sum);
return 0;
}
7-5条件特殊(给出一系列非负整数)!!!!!
可参考:
这个EOF用法适用于整个C语言,不单单针对编译gcc
其实这里有限制条件-1;也可以不采用EOF,但是在日后会经常和它打交道。