高分:帮忙做几道C语言编程题,急!

2024-11-08 06:07:36
推荐回答(3个)
回答1:

第1题:
int main()
{
float sum = 0;
int i, tmp, a = 1, b = 2;
for (i = 0; i < 150; i++)
{
sum += (float)b / a;
tmp = a + b;
a = b;
b = tmp;
}
printf(“%f\n”, sum);
}

第2题:
int is_prime(int n)
{
if (n == 2)
return 1;
else if (n < 2 || n % 2 == 0)
return 0;

int i;
for (i = 3; i < n; i += 2)
{
if (n % i == 0)
return 0;
}

return 1;
}

int fn(int a[100])
{
int i, sum = 0;
for (i = 0; i < 100; i++)
{
if (is_prime(a[i]))
sum += a[i];
}
return sum;
}

第3题:
struct BOOK
{
char no[20];
char name[50];
char author[20];
float price;
char press[20];
int amount;
};

struct BOOK books[100];

int main()
{
int i;
float avg_price = 0;
for (i = 0; i < 100; i++)
{
struct BOOK *pb = &books[i];
printf("请输入第%d本书的图书编号,书名,作者,单价,出版社,数量: ",
i + 1);
scanf("%s %s %s %f %s %d",
&pb->no, &pb->name, &pb->author,
&pb->price, &pb->press, &pb->amount);
avg_price += pb->price;
}
avg_price /= 100;
printf("平均单价为:%f\n", avg_price);
}

int find_book_by_name(char *name)
{
int i;
for (i = 0; i < 100; i++)
{
if (strcmp(books[i].name, name) == 0)
return i;
}
return -1;
}

第4题:
struct STUDENT
{
char no[10];
char sex[10];
char name[10];
int scores[4];
float avg_score;
};

int main()
{
int i, max_index = 0;
struct STUDENT students[100];
for (i = 0; i < 100; i++)
{
struct STUDENT *ps = &students[i];
int *p = ps->scores;
printf("请输入第%d名学生的学号、性别、名字以及门课的成绩: ",
i + 1);
scanf("%s %s %s %d %d %d %d",
&ps->no, &ps->sex, &ps->name,
&p[0], &p[1], &p[2], &p[3]);
ps->avg_score = (p[0] + p[1] + p[2] + p[3]) / 4.0;
if (ps->avg_score > students[max_index].avg_score)
max_index = i;
}
struct STUDENT *pmax = &students[max_index];
printf("平均成绩最高的学生的学号、性别、姓名和平均成绩: %s %s %s %f\n",
pmax->no, pmax->sex, pmax->name, pmax->avg_score);
}

希望能帮到你哦

回答2:

第一题:
#include
#define N 150
void main()
{ float a[N]={2},b[N]={1},
sum=2;int i,j;
for(i=0,j=0;i{a[i+1]=a[i]+b[j];
b[j+1]=a[i];
sum+=a[i+1]/b[j+1];}
printf("sum=%f\n",sum);}

第二题:
#include
#include
void main()
{
int m,k,i,n=0;
for(m=1;m<=100;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%5d",m);
}
}

}这个是输出0~100的素数,不知道你100个int里面有什么,所以···自己改一下吧

第四题我有类似的题目,要的话去我的文库下载。

回答3:

1。
#include
int main()
{

double sum = 0 ;
long i = 2 ;
long j = 1;
int itemNum = 150 ;
int count = 1 ;
while(count<=itemNum)
{
sum += i / (j*1.0);
long int lastI = i;
printf("%d:%ld\t%ld\n",count ,i,j); // 此句是验证结果 可注释掉
i = i + j ;
j = lastI ;
count++ ;
}
printf("sum is :%lf\n",sum);

getchar();

return 0 ;
}

2。
int isPrime(int n )
{
int i ;
for(i = 2 ; i < n ; i ++ )
if(n % i == 0 )
return 0 ;
return 1 ;
}
long PrimeSum(int data[] ,int size)
{ // size 是data中元素的个数
int i ;
long sum = 0 ;
for(i = 0 ; i< size ; i ++ )
if(isPrime(data[i]))
sum += data[i] ;
return sum ;
}