哪个好心人帮忙做几道C语言编程题?能做多少是多少,谢谢各位了!全做了再追加分数!!
1.编写程序求任一输入整数为几位整数。(难度中)2.某宿舍有8个人,按老大﹑老二……老八顺序排列,编程实现输入一个名字,如在此8人内,输出前一个人的名字和后一个人的名字。...
1. 编写程序求任一输入整数为几位整数。(难度中)
2. 某宿舍有8个人,按老大﹑老二……老八顺序排列,编程实现输入一个名字,如在此8人内,输出前一个人的名字和后一个人的名字。
3. 利用结构体,编程实现复数complex(如a+bi)求模和两个复数求和操作。(一共两个函数,难度低)
4. 某数列f(n)=2f(n-1)+3f(n-2),f(1)=1,f(2)=1,编程实现:输入任意的整数n,求f(n)。(递归,难度中)
5. 数据结构课(周)平时成绩计算规则如下:
1)旷课一次扣5分,作业一次不交扣5分,作业明显抄袭扣10分。
2)上课回答问题正确加1分,完全正确加2分,无论对错,在回答中包含了个人的思考加3分,有创新者加5分。
3)主动回答问题者按以上得分规则加倍。
4)旷课1/4及以上者无平时成绩,亦无考试资格。
5)平时分基数以本次作业为准,本次作业完成2题者,基数60分;完成3题者,基数65分;完成4题者,基数70分;完成5题者,基数80分;完成6题者,基数85分;完成全部题目者,基数90分。
请编程,根据输入的完成题目数量,计算你的平时分基础数目。
6. 编程实现:1!+2!+3!+ ……+1000!(不可用双重循环,会陷入机器假死状态,难度高) 展开
2. 某宿舍有8个人,按老大﹑老二……老八顺序排列,编程实现输入一个名字,如在此8人内,输出前一个人的名字和后一个人的名字。
3. 利用结构体,编程实现复数complex(如a+bi)求模和两个复数求和操作。(一共两个函数,难度低)
4. 某数列f(n)=2f(n-1)+3f(n-2),f(1)=1,f(2)=1,编程实现:输入任意的整数n,求f(n)。(递归,难度中)
5. 数据结构课(周)平时成绩计算规则如下:
1)旷课一次扣5分,作业一次不交扣5分,作业明显抄袭扣10分。
2)上课回答问题正确加1分,完全正确加2分,无论对错,在回答中包含了个人的思考加3分,有创新者加5分。
3)主动回答问题者按以上得分规则加倍。
4)旷课1/4及以上者无平时成绩,亦无考试资格。
5)平时分基数以本次作业为准,本次作业完成2题者,基数60分;完成3题者,基数65分;完成4题者,基数70分;完成5题者,基数80分;完成6题者,基数85分;完成全部题目者,基数90分。
请编程,根据输入的完成题目数量,计算你的平时分基础数目。
6. 编程实现:1!+2!+3!+ ……+1000!(不可用双重循环,会陷入机器假死状态,难度高) 展开
展开全部
1、
#include <stdio.h>
int solve(int n)
{
int cnt = 1;
while (n /= 10)
{
++cnt;
}
return cnt;
}
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", solve(n));
return 0;
}
2、
#include <stdio.h>
#include <string.h>
char names[8][100] = {"bob", "alex", "allen", "joker", "jack", "jacky", "robbot", "sheldon"};
int main()
{
char name[100];
scanf("%s", name);
for (int i=0; i!=8; ++i)
{
if (strcmp(names[i], name) == 0)
{
if (i == 0)
{
printf("前面没有人, 后面是%s\n", names[i + 1]);
}
else if (i == 7)
{
printf("后面没有人, 前面是%s\n", names[i - 1]);
}
else
{
printf("前面是%s, 后面是%s\n", names[i - 1], names[i + 1]);
}
}
}
return 0;
}
3、
#include <stdio.h>
#include <math.h>
typedef struct
{
double a;
double b;
}complex;
complex add(complex c1, complex c2)
{
complex ret;
ret.a = c1.a + c2.a;
ret.b = c1.b + c2.b;
return ret;
}
double mod(complex c)
{
return sqrt(c.a * c.a + c.b * c.b);
}
int main()
{
//test
complex c1;
c1.a = 3;
c1.b = 4;
printf("%lf\n", mod(c1));
return 0;
}
4、
#include <stdio.h>
double fibs(int n)
{
if (n == 1 || n == 2)
{
return 1.0;
}
return 2 * fibs(n - 1) + 3 * fibs(n - 2);
}
int main()
{
int n;
scanf("%d", &n);
printf("%lf\n", fibs(n));
return 0;
}
6、
这个题你先告诉我是高精度问题么?
1000的阶乘答案非常的巨大,如果是高精度问题再给你做
#include <stdio.h>
int solve(int n)
{
int cnt = 1;
while (n /= 10)
{
++cnt;
}
return cnt;
}
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", solve(n));
return 0;
}
2、
#include <stdio.h>
#include <string.h>
char names[8][100] = {"bob", "alex", "allen", "joker", "jack", "jacky", "robbot", "sheldon"};
int main()
{
char name[100];
scanf("%s", name);
for (int i=0; i!=8; ++i)
{
if (strcmp(names[i], name) == 0)
{
if (i == 0)
{
printf("前面没有人, 后面是%s\n", names[i + 1]);
}
else if (i == 7)
{
printf("后面没有人, 前面是%s\n", names[i - 1]);
}
else
{
printf("前面是%s, 后面是%s\n", names[i - 1], names[i + 1]);
}
}
}
return 0;
}
3、
#include <stdio.h>
#include <math.h>
typedef struct
{
double a;
double b;
}complex;
complex add(complex c1, complex c2)
{
complex ret;
ret.a = c1.a + c2.a;
ret.b = c1.b + c2.b;
return ret;
}
double mod(complex c)
{
return sqrt(c.a * c.a + c.b * c.b);
}
int main()
{
//test
complex c1;
c1.a = 3;
c1.b = 4;
printf("%lf\n", mod(c1));
return 0;
}
4、
#include <stdio.h>
double fibs(int n)
{
if (n == 1 || n == 2)
{
return 1.0;
}
return 2 * fibs(n - 1) + 3 * fibs(n - 2);
}
int main()
{
int n;
scanf("%d", &n);
printf("%lf\n", fibs(n));
return 0;
}
6、
这个题你先告诉我是高精度问题么?
1000的阶乘答案非常的巨大,如果是高精度问题再给你做
更多追问追答
追问
是高精度问题,谢谢你啦!做完就采纳你再追加分数!!
追答
第六题写出来了,瞬间计算出精确结果,但是有点长,发不上来,你的邮箱多少
展开全部
6.
#include <stdio.h>
int product(int *p,int a,int n)
{
int i,carry=0,temp;
for(i=0;i<n;i++)
{
temp=p[i]*a;
p[i]=(temp+carry)%1000000;
carry=(temp+carry)/1000000;
}
while(carry>0)
{
p[n]=carry%1000000;
carry=carry/1000000;
n=n+1;
}
return n;
}
int add(int *p,int *q,int np,int nq)
{
int i,n,carry=0,temp;
n=np>nq?np:nq;
while(np<n) p[np++]=0;
while(nq<n) q[nq++]=0;
for(i=0;i<n;i++)
{
temp=p[i]+q[i]+carry;
p[i]=temp%1000000;
carry=temp/1000000;
}
if(carry) p[n++]=carry;
return n;
}
void main()
{
int p[500],q[500],m,n,i,j,x=1000;
p[0]=0;
m=1;
for(i=1;i<=x;i=i++)
{
q[0]=1;
n=1;
for(j=1;j<=i;j++) n=product(q,j,n);
m=add(p,q,m,n);
}
printf("%d",p[--m]);
while(m--) printf("%06d",p[m]);
printf("\n");
}
#include <stdio.h>
int product(int *p,int a,int n)
{
int i,carry=0,temp;
for(i=0;i<n;i++)
{
temp=p[i]*a;
p[i]=(temp+carry)%1000000;
carry=(temp+carry)/1000000;
}
while(carry>0)
{
p[n]=carry%1000000;
carry=carry/1000000;
n=n+1;
}
return n;
}
int add(int *p,int *q,int np,int nq)
{
int i,n,carry=0,temp;
n=np>nq?np:nq;
while(np<n) p[np++]=0;
while(nq<n) q[nq++]=0;
for(i=0;i<n;i++)
{
temp=p[i]+q[i]+carry;
p[i]=temp%1000000;
carry=temp/1000000;
}
if(carry) p[n++]=carry;
return n;
}
void main()
{
int p[500],q[500],m,n,i,j,x=1000;
p[0]=0;
m=1;
for(i=1;i<=x;i=i++)
{
q[0]=1;
n=1;
for(j=1;j<=i;j++) n=product(q,j,n);
m=add(p,q,m,n);
}
printf("%d",p[--m]);
while(m--) printf("%06d",p[m]);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1
#include "stdio.h"
#include<string.h>
int main(void)
{
char s[100];
scanf("%s",s);
printf("%d\n",strlen(s));
return 0;
}
4
#include "stdio.h"
#include<string.h>
__int64 f(int n)
{
if(n<=2)return 1;
return 2*f(n-1)+3*f(n-2);
}
int main(void)
{
//f(n)=2f(n-1)+3f(n-2),f(1)=1,f(2)=1
int n;
scanf("%d",&n);//N不能太大,你给的分数只能写到这个程度的
printf("%I64d\n",f(n));
return 0;
}
6
#include "stdio.h"
#include<string.h>
#include<math.h>
const int MAX=3000;
struct BigNum
{
int dig[MAX];
int len;
void Clr()
{
memset(dig,0,sizeof(dig));
len=1;
}
void print()
{
int i=len-1;
for(;i>=0;i--)printf("%d",dig[i]);
puts("");
}
}f[1001];
BigNum mul(BigNum a,int n)
{
int i;
for(i=0;i<a.len;i++)a.dig[i]*=n;
for(i=0;i<MAX-1;i++)
{
a.dig[i+1]+=a.dig[i]/10;
a.dig[i]%=10;
}
for(i=MAX-1;i>=0&&a.dig[i]==0;i--);
i++;
a.len=i;
return a;
}
BigNum add(BigNum a,BigNum b)
{
int i;
if(b.len>a.len)a.len=b.len;
for(i=0;i<a.len;i++)
{
a.dig[i]+=b.dig[i];
if(a.dig[i]>9)
{
a.dig[i]-=10;
a.dig[i+1]++;
}
}
if(a.dig[a.len]>0)a.len++;
return a;
}
int main(void)
{
const int M=1000;
int i;
f[0].Clr();
f[0].dig[0]++;
for(i=1;i<=M;i++)
{
f[i]=mul(f[i-1],i);
}
for(i=2;i<=M;i++)
{
f[i]=add(f[i-1],f[i]);
}
f[M].print();
return 0;
}
你给的分数只能帮你做这么多
#include "stdio.h"
#include<string.h>
int main(void)
{
char s[100];
scanf("%s",s);
printf("%d\n",strlen(s));
return 0;
}
4
#include "stdio.h"
#include<string.h>
__int64 f(int n)
{
if(n<=2)return 1;
return 2*f(n-1)+3*f(n-2);
}
int main(void)
{
//f(n)=2f(n-1)+3f(n-2),f(1)=1,f(2)=1
int n;
scanf("%d",&n);//N不能太大,你给的分数只能写到这个程度的
printf("%I64d\n",f(n));
return 0;
}
6
#include "stdio.h"
#include<string.h>
#include<math.h>
const int MAX=3000;
struct BigNum
{
int dig[MAX];
int len;
void Clr()
{
memset(dig,0,sizeof(dig));
len=1;
}
void print()
{
int i=len-1;
for(;i>=0;i--)printf("%d",dig[i]);
puts("");
}
}f[1001];
BigNum mul(BigNum a,int n)
{
int i;
for(i=0;i<a.len;i++)a.dig[i]*=n;
for(i=0;i<MAX-1;i++)
{
a.dig[i+1]+=a.dig[i]/10;
a.dig[i]%=10;
}
for(i=MAX-1;i>=0&&a.dig[i]==0;i--);
i++;
a.len=i;
return a;
}
BigNum add(BigNum a,BigNum b)
{
int i;
if(b.len>a.len)a.len=b.len;
for(i=0;i<a.len;i++)
{
a.dig[i]+=b.dig[i];
if(a.dig[i]>9)
{
a.dig[i]-=10;
a.dig[i+1]++;
}
}
if(a.dig[a.len]>0)a.len++;
return a;
}
int main(void)
{
const int M=1000;
int i;
f[0].Clr();
f[0].dig[0]++;
for(i=1;i<=M;i++)
{
f[i]=mul(f[i-1],i);
}
for(i=2;i<=M;i++)
{
f[i]=add(f[i-1],f[i]);
}
f[M].print();
return 0;
}
你给的分数只能帮你做这么多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/************************************************************************/
/* 第一题应该考虑状态问题:例如第一位是'+','-','0',一下仅作参考,没考虑*/
/* 00000000000000000 状态输入有字符就不是整形 */
/************************************************************************/
#include <stdio.h>
#include <string.h>
int CountInt( int *flag);
void main()
{
char c;
int i, flag;
while(1)
{
i=0;
flag = 0;
scanf("%c", &c);
if (c == '-' || c == '+' )
{
}
else if(c >= '0' && c <= '9')
{
i=1;
}
else
{
flag = 1;
}
i += CountInt(&flag);
if (flag == 0)
{
printf("%-5d位整数\n", i);
}
else
{
printf("输入不对\n");
}
}
}
int CountInt( int *flag)
{
int i=0;
char c;
while(scanf("%c", &c) != EOF)
{
if (c>='0'&&c<='9')
{
i++;
}
else if (c == '\n')
{
break;
}
else
{
*flag = 1;
}
}
return i;
}
/* 第一题应该考虑状态问题:例如第一位是'+','-','0',一下仅作参考,没考虑*/
/* 00000000000000000 状态输入有字符就不是整形 */
/************************************************************************/
#include <stdio.h>
#include <string.h>
int CountInt( int *flag);
void main()
{
char c;
int i, flag;
while(1)
{
i=0;
flag = 0;
scanf("%c", &c);
if (c == '-' || c == '+' )
{
}
else if(c >= '0' && c <= '9')
{
i=1;
}
else
{
flag = 1;
}
i += CountInt(&flag);
if (flag == 0)
{
printf("%-5d位整数\n", i);
}
else
{
printf("输入不对\n");
}
}
}
int CountInt( int *flag)
{
int i=0;
char c;
while(scanf("%c", &c) != EOF)
{
if (c>='0'&&c<='9')
{
i++;
}
else if (c == '\n')
{
break;
}
else
{
*flag = 1;
}
}
return i;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面几题都好说,最后一题我给你做了,答案是:
40238726007709377354370243392300398571937486421071463254379991042993851239862902
05920442084869694048004799886101971960586316668729948085589013238296699445909974
24504087073759918823627727188732519779505950995276120874975462497043601418278094
64649629105639388743788648733711918104582578364784997701247663288983595573543251
31853239584630755574091142624174743493475534286465766116677973966688202912073791
43853719588249808126867838374559731746136085379534524221586593201928090878297308
43139284440328123155861103697680135730421616874760967587134831202547858932076716
91324484262361314125087802080002616831510273418279777047846358681701643650241536
91398281264810213092761244896359928705114964975419909342221566832572080821333186
11681155361583654698404670897560290095053761647584772842188967964624494516076535
34081989013854424879849599533191017233555566021394503997362807501378376153071277
61926849034352625200015888535147331611702103968175921510907788019393178114194545
25722386554146106289218796022383897147608850627686296714667469756291123408243920
81601537808898939645182632436716167621791689097799119037540312746222899880051954
44414282012187361745992642956581746628302955570299024324153181617210465832036786
90611726015878352075151628422554026517048330422614397428693306169089796848259012
54583271682264580665267699586526822728070757813918581788896522081643483448259932
66043367660176999612831860788386150279465955131156552036093988180612138558600301
43569452722420634463179746059468257310379008402443243846565724501440282188525247
09351906209290231364932734975655139587205596542287497740114133469627154228458623
77387538230483865688976461927383814900140767310446640259899490222221765904339901
88601856652648506179970235619389701786004081188972991831102117122984590164192106
88843871218556461249607987229085192968193723886426148396573822911231250241866493
53143970137428531926649875337218940694281434118520158014123344828015051399694290
15348307764456909907315243327828826986460278986432113908350621709500259738986355
42771967428222487575867657523442202075736305694988250879689281627538488633969099
59826280956121450994871701244516461260379029309120889086942028510640182154399457
15680594187274899809425474217358240106367740459574178516082923013535808184009699
63725242305608559037006242712434169090041536901059339838357779394109700277534720
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000
40238726007709377354370243392300398571937486421071463254379991042993851239862902
05920442084869694048004799886101971960586316668729948085589013238296699445909974
24504087073759918823627727188732519779505950995276120874975462497043601418278094
64649629105639388743788648733711918104582578364784997701247663288983595573543251
31853239584630755574091142624174743493475534286465766116677973966688202912073791
43853719588249808126867838374559731746136085379534524221586593201928090878297308
43139284440328123155861103697680135730421616874760967587134831202547858932076716
91324484262361314125087802080002616831510273418279777047846358681701643650241536
91398281264810213092761244896359928705114964975419909342221566832572080821333186
11681155361583654698404670897560290095053761647584772842188967964624494516076535
34081989013854424879849599533191017233555566021394503997362807501378376153071277
61926849034352625200015888535147331611702103968175921510907788019393178114194545
25722386554146106289218796022383897147608850627686296714667469756291123408243920
81601537808898939645182632436716167621791689097799119037540312746222899880051954
44414282012187361745992642956581746628302955570299024324153181617210465832036786
90611726015878352075151628422554026517048330422614397428693306169089796848259012
54583271682264580665267699586526822728070757813918581788896522081643483448259932
66043367660176999612831860788386150279465955131156552036093988180612138558600301
43569452722420634463179746059468257310379008402443243846565724501440282188525247
09351906209290231364932734975655139587205596542287497740114133469627154228458623
77387538230483865688976461927383814900140767310446640259899490222221765904339901
88601856652648506179970235619389701786004081188972991831102117122984590164192106
88843871218556461249607987229085192968193723886426148396573822911231250241866493
53143970137428531926649875337218940694281434118520158014123344828015051399694290
15348307764456909907315243327828826986460278986432113908350621709500259738986355
42771967428222487575867657523442202075736305694988250879689281627538488633969099
59826280956121450994871701244516461260379029309120889086942028510640182154399457
15680594187274899809425474217358240106367740459574178516082923013535808184009699
63725242305608559037006242712434169090041536901059339838357779394109700277534720
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这么简单还来问……再说,分成小题再问啊~就150分……你一题20分我帮你做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询