PAT入门笔记
菜鸡基础不牢从基础题开始刷
6-1 简单输出整数
本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。
void PrintN(int N){
for (int i = 1; i <= N; i ++ )
{
printf("%d\n",i);
}
}
很简单 注意分号以及for循环的格式.
6-2多项式求值 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3bb2fc111da42d9000d39862c6b0798b.png)
double f( int n, double a[], double x )
{
double sum = a[0];
for(int i = 1; i <=n; i++){
sum = sum+(a[i]*pow(x,i));
}
return sum;
}
答案很简单最开始没看懂题目,按照题中给出的公式利用for循环求和即可.
6-3 简单求和
本题要求实现一个函数,求给定的N个整数的和
输入样例:
3
12 34 -5
输出样例:
41
int Sum ( int List[], int N )
{
double sum;
for(int i = 0; i < N; i++)
{
sum = sum + List[i];
}
return sum;
}
遍历数组求和即可.注意数组是从0开始.
6-4 求自定类型元素的平均
ElementType Average( ElementType S[], int N )
{
double sum;
float average;
for(int i = 0; i < N; i++)
{
sum = sum + S[i];
}
average = sum/N;
return average;
}
遍历数组求和之后除以数字个数即可,注意最终值的数据类型避免整数型跟浮点型弄混.
6-5 求自定类型元素的最大值
ElementType Max( ElementType S[], int N ){
double max = S[0];
for(int i = 0; i < N; i++)
{
if(S[i] > max)
{
max = S[i];
}
}
return max;
}
比较排序,设定一个参数为数组中的一个元素,遍历数组比较大小排序.后续再看冒泡排序怎么回事.
6-6 求单链表结点的阶乘和
此题目存疑.由于对链表跟指针实在是不是很了解.留作后续做.
6-7 统计某类完全平方数![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3d3b99047c1e9345d4be043641c17370.png)
#include<math.h>
int IsTheNumber ( const int N )
{
int m,n;
int t = 0;
int k = 0;
int j = 0;
n = (int)sqrt(N);
m = n*n;
int num[10] ;
if(m == N)
{
while(m > 0 )
{
num[t] = m%10;
m = m/10;
t++;
}
for(int i = 0; i < t ; i++){
for( j = i+1; j <t; j++ ){
if(num[i]==num[j]){
k=1 ;
}
}
}
if(k == 1){
return 1;
}else{
return 0;
}
}else{
return 0;
}
}
具体思路: 将输入的N开方后取整再平方看是否相等,相等则满足条件一,继续,否则返回0.
继续后将数字除10取余数,也就是将每一位提取出来存入到数组中.再遍历两次数组,查找是否有相同元素,有相同元素则返回1,否则返回0.
总结
今天第一天刷题,语法以及思路都不太清晰, 注意审题,注意语法跟变量命名的格式. 加油刷题!