PAT1001 基础题,几乎就是练习下基本的知识语法 循环 条件输入输出。
#include<stdio.h>
int main ()
{
int n,i=0;
scanf("%d", &n);
while(n!=1)
{
if((n%2)==0)
n=n/2;
else
n=(3*n+1)/2;
i++;
}
printf("%d\n",i);
return 0;
}
PAT B1032 基础题
要考虑特殊情况及初始化赋值 比如从1还是0开始 【不然就会卡在特殊的测试案例上】
memset语法 memset(数组名,值,sizeof(数组名)) 值一般是0,-1.
当然这个程序还是按部就班的来一个循环一个循环的写 输入 操作 输出这样。
#include<stdio.h>
const int max=100001;
int main ()
{
int n,i,s,goal,hs,hg=-1;//不设-1时,若队伍都0分会出现学学校hs赋值错误
int school[max]={0};// 初始化赋值0,也可以用memset函数赋值,注意memset函数的语法和适用范围
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&s,&goal);
school[s]+=goal;
}
for(i=1;i<=n;i++)//是从学校数组中选学校,所以从1开始。
{
if (school[i]>hg)
{
hg=school[i];
hs=i;
}
}
printf("%d %d\n",hs,hg);
return 0;
}