以下是《基础编程题目集》的前半部分题目(4-1到4-6)及代码,为了节约时间,就直接将题目和代码粘贴如下:如果大家有其他好的思路和方法,感谢赐教
/*
4-1 简单输出整数 (10分)
本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。
*/
#include
using namespace std;
void f(int n);
int main(){
int a;
cin >> a;
f(a);
}
void f(int n){
for(int i=1;i<=n;i++)
cout << i << endl;
}
/*
4-2 多项式求值 (15分)
本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=\sum_{i=0}^{n}(a[i]\times x^i)f(x)=∑
i=0
n
(a[i]×x
i
) 在x点的值。
*/
#include
#include
const int MAXN=100;
using namespace std;
float f(float x,float n,float *a);
int main(){
float a[MAXN];
float x,n;
cin >> x;
cin >> n;
for(int i=0;i<=n;i++){
cin >> a[i];
}
cout << f(x,n,a);
return 0;
}
float f(float x,float n,float *a){
float sum=0;
for(int i=0;i<=n;i++)
sum += a[i]*std::pow(x,i);
return sum;
}
/*
4-3 简单求和 (10分)
本题要求实现一个函数,求给定的N个整数的和。
*/
#include
using namespace std;
const int MAXN=100;
int sum(int *a,int N);
int main(){
int x,a[MAXN];
int N;
cin >> N;
for(int i=0;i
cout << sum(a,N) << endl;
return 0;
}
int sum(int *a,int N){
int sumCount=0;
for(int i=0;i
return sumCount;
}
//4-4
#include
#define MAXN 10
typedef float ElementType;
ElementType Average( ElementType S[], int N );
int main ()
{
ElementType S[MAXN];
int N, i;
scanf("%d", &N);
for ( i=0; i
printf("%.2f\n", Average(S, N));
return 0;
}
ElementType Average(ElementType S[],int N){
int i=0;
ElementType sum=0;
for(i=0;i
}
return sum/N;
}
//4-5
#include
#define MAXN 10
typedef float ElementType;
ElementType Max( ElementType S[], int N );
int main ()
{
ElementType S[MAXN];
int N, i;
scanf("%d", &N);
for ( i=0; i
printf("%.2f\n", Max(S, N));
return 0;
}
/* 你的代码将被嵌在这里 */
ElementType Max(ElementType S[],int N){
int i=0;
ElementType minNum=-100000000.0;
for(i=0;i
minNum=S[i];
}
return minNum;
}
//4-6
/*
4-6 求单链表结点的阶乘和 (15分)
本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。
*/
#include
#include
typedef struct Node *PtrToNode;
struct Node{
int Data;
PtrToNode Next;
};
typedef PtrToNode List;
int FactorialSum(List L);
int main(){
int N,i;
List L,p;
scanf("%d",&N);
L = NULL;
for(i=0;i
scanf("%d",&p->Data);
p->Next = L;
L= p;
}
printf("%d\n",FactorialSum(L));
return 0;
}
int FactorialSum(List L){
List q=L;
int i,result=0;
while(q){ //这里不是q->Next 而是q
int sum=1;
for(i=1;i<=q->Data;i++)
sum *= i;
q=q->Next;
result+=sum;
}
return result;
}