★一道C语言入门编程问题,高手救命!(+﹏+)~狂晕

作者&投稿:殳凯 (若有异议请与网页底部的电邮联系)
C语言编程问题 请各位高手救命~

#include

int fib(int n);
double solve(int n);

int main(int argc,char* argv[])
{
FILE* pf=fopen("res.txt","w");
int n;
printf("Please input an integer:");
scanf("%d",&n);
fprintf(pf,"%lf",solve(n));
fclose(pf);
return 0;
}

int fib(int n)
{
if(n==1)
return 1;
else
if(n==2)
return 2;
else
return fib(n-1)+fib(n-2);
}
double solve(int n)
{
double res=0.0;
int i;
for(i=1;i<=n;i++)
res+=fib(i+1)/(double)(fib(i));
return res;
}

我也是初学者,那会儿同学推荐买了谭浩强的c程序设计第三版,我觉得那个讲的挺细的,我基本上就看那个书学的。你要是自学的话,可以买那本。

思路:用数组储存每一个员工的奖金 再扫描一遍数组把每个员工的奖金累加起来就是公司应该发的总的奖金数啦

我这里把计算员工的奖金的那个判断语句独立成一个函数

这样主函数就没有那么臃肿了

希望对你有点帮助

代码如下:

#include <stdio.h>

#define N 4  //4个员工 

float Bonus(long i);  //计算员工的奖金 独立成一个函数 

int main()

 int j; 

 long i;

 float worker[4],total=0.0;

 

 for(j=0;j<N;j++)

 {

  printf("输入第%d个员工的利润i:",j+1);  //输入第i个员工的利润 

  scanf("%ld",&i);

  worker[j]=Bonus(i);  //存储第j个员工的bonus 

 }

 total=0.0;  //公司应该发的总的奖金数 

 for(i=0;i<N;i++) //循环n次把n个员工的bonus输出并同时累计总的奖金数

 {

  total+=worker[i];

  printf("第%d个员工的奖金:%.2f
",i+1,worker[i]); 

 }

 printf("公司应该发的总奖金数为:%.2f
",total);

 return 0;

}

float Bonus(long i)

{

 float bonus,bon1,bon2,bon4,bon6,bon10;

 bon1=100000*0.1;

 bon2=bon1+100000*0.075;

 bon4=bon2+200000*0.05;

 bon6=bon4+200000*0.03;

 bon10=bon6+400000*0.015;

 if(i<=100000)

  bonus=i*0.1;

  else if(i<=200000)

  bonus=bon1+(i-100000)*0.075;

  else if(i<=400000)

  bonus=bon2+(i-200000)*0.05;

  else if(i<=600000)

  bonus=bon4+(i-400000)*0.03;

  else if(i<=1000000)

  bonus=bon6+(i-600000)*0.015;

  else

  bonus=bon10+(i-1000000)*0.01;

  return bonus;

}



你说的输入四个员工当月所创利润是依次输入四个员工的利润后再显示他们的奖金,还是输入一个员工的利润出一个奖金啊?
如果是后者,只需在printf("请输入利润i:");前面加个for循环即可,
int n=0;
for(;n<4;n++)
{
printf("请输入利润i:");
scanf("%ld",&i);
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bon1+(i-100000)*0.075;
else if(i<=400000)
bonus=bon2+(i-200000)*0.05;
else if(i<=600000)
bonus=bon4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bon6+(i-600000)*0.015;
else
bonus=bon10+(i-1000000)*0.01;
printf(”奖金是%10.2f\n",bonus);
}
如果是前一种,同时输入四个数据,存在数组中,然后再分别求奖金即可。

#include <stdio.h>
#define N 4
main()
{
long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
float profit[N];
char name[N]={'A','B','C','D'};
int n=0;

bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;

printf("请输入利润: \n");

for(n=0;n<N;n++)
{
printf("%c:",name[n]) ;
scanf("%f",&profit[n]);
}

for(n=0;n<N;n++)
{ i=profit[n];
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bon1+(i-100000)*0.075;
else if(i<=400000)
bonus=bon2+(i-200000)*0.05;
else if(i<=600000)
bonus=bon4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bon6+(i-600000)*0.015;
else
bonus=bon10+(i-1000000)*0.01;
printf("%c 的奖金是: %10.2f\n",name[n],bonus);
}

getch();
}


c语言一道编程题!会的帮忙 谢谢
include <stdio.h> main(){ float price;int flag=1;while(flag){ printf("请输入消费金额");scanf(price,%f);if(price<0){printf("对不起,您输入的数据有误,请重新输入 \/n");continue;} else if(price<100){printf("折扣率是0%\/n");printf("您的应付金额为" & price,%f);break;}...

一道简单C语言编程,帮忙分析一下
main(){int s,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\\n",s);} s=0,i=0是并列的起始条件;只有一个判断条件i<3;两个可循环条件i++,s+=i;现在看循环第一次执行s=0,i=0经判断语句i<3符合执行下个语句i++,s+=i;其中‘,'运算符是自左向右执行i++后,i就等于2,再...

C语言编程之道(1DVD)内容简介
Server 2003系统中可以顺利编译和运行,为学习者提供了实战演练的宝贵资源。无论你是大中专院校的学生,还是刚毕业或寻求就业的编程爱好者,或是初入编程领域的学习者,这本书都是极好的学习伴侣。它不仅适合系统学习C语言,也是初学者入门编程的实用指南。通过它,你将更深入地理解C语言,提升编程技能。

一道c语言编程题,将十进制转换为二进制
更多关于c语言编程的知识 > 网友都在找: 独占设备采用哪种分配方式 正在求助 换一换 回答问题,赢新手礼包 苦等12分钟: 本命穿红内裤真的容易让人转运吗? 回答 苦等14分钟: 泰姬陵很漂亮吗,怎么我觉得很普通? 回答 苦等19分钟: 大旗健身怎么样,好不好的默认点评 回答 苦等21分钟: 请问眼袋的问题...

菜鸟问一道简单的C语言编程题
完整程序如下,我加的就是定义了一个函数AREA include <stdio.h> include <math.h> \/\/函数的定义,定义area=sqrt((s*(s-a)*(s-b)*(s-c))根号下的内容,返回一个值,在主函数里调用该函数 float AREA(float s,float a,float b,float c){ float X=s*(s-a)*(s-b)*(s-c);return ...

求一道c语言编程,能会其中一部分也帮帮忙吧
include <stdio.h>#include <stdlib.h>#include #define TRUE 1#define FALSE 0 #define gen_random( min, max ) (( rand() % (int)((( max ) + 1 ) - ( min ))) + ( min )) int number = 0, input_number=0, score=100, times=7; int gen_number(){ srand( time...

一道大一计算机C语言编程题,急求答案,谢谢!
include "stdafx.h"void main(){int a=1,b,c,d,e,f;printf("请输入第一个数:");scanf("%d",&b);printf("请输入第二个数:");scanf("%d",&c);d=b>c?c:b;for(int i=2;i<=d;i++){if(b%i==0&&c%i==0){a=i;}}if(a==1){printf("\\n没有公约数\\n");}else{...

c语言的基础知识入门有哪些?
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。c语言入门基础知识:1、c语言的命名编程时...

一道C语言编程
\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"int main(void){ int a[]={5,2,6},i,j,k; for(i=0;i<3;i++){ for(k=i,j=k+1;j<3;j++) if(a[k]

C语言的一道编程题
include <stdio.h> define N 15 int fun(int a[]){ int cnt=0;int i,j,k;int n=N;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]==a[j]){ for(k=j;k<n-1;k++)a[k]=a[k+1];cnt++;n--;} return N-cnt;} int main(){ int a[N],i,cnt;for(i=0;i<...

招远市13088076004: 请求C语言编程高手帮小弟解决一道入门题(有详细讲解更好,没有也行)
道追异山: #include <stdio.h> #include <math.h> void main() { int a,b,c,d,f,w; int n[10]={0};printf("输入一个正整数:\n"); scanf("%d",&w); f=w; a=w;if(f<100000 && f>0) { for(b=1;;b++) { if(f<10) { break; } else f=f/10; } printf("此数的位数:%d\n",b)...

招远市13088076004: 一道简单的c语言题目,高手来,跪求..新手..没分给最佳 -
道追异山: #include"stdio.h" #define N 5 void main() {int i,j=0,a[5];double s=0,sum=0;printf("请输入五个数:\n");for(i=0;iscanf("%d",&a[i]); for(i=0;i { s+=a[i]; sum=s/N; } for(i=0;i { if(a[i]>sum) j++; } printf("平均分是=%d\n低于平均分的人数=%d",sum,j); }

招远市13088076004: c程序入门的一道题 -
道追异山: 1个错误的原因:sqrt后面多了一个括号“(” 警告1:ln()没有被定义,也就是math.h里没有ln()这样一个函数可以用log();log()就是你的ln()的意思;警告2:printf 是输出函数 包含在标准输入输出头文件里;需要加上: #include <stdio.h> 下面是正确代码:#include <stdio.h>#include <math.h> main() { int x=15; double y; y=sqrt(fabs(sin(45*3.14/360)+5/8)) +log(x)/x/log10(x); printf("y=%f",y); }

招远市13088076004: 关于C语言指针的一道入门编程题! -
道追异山: #include<stdio.h> int my_strlen(const char * str) { int len = 0; while(*str != '\0') str++,len++; return len; } void main(void) { char str[50]; printf("Please input a string:"); scanf("%s",str); printf("The length of this string is %d\n", my_strlen(str)); }

招远市13088076004: 一道C语言编程题,求大神救小白! -
道追异山: #include main() { int a,b,c,d; for(a=0;a for(b=0;b for(c=0;c for(d=0;d if((a*10+b)*(c*10+d)==(b*10+a)*(d*10+c)&&(a!=b)&&(c!=d)&&(a!=d)&&(b!=c)&&((a*10+b) printf("%d%d*%d%d=%d%d*%d%d\n",a,b,c,d,b,a,d,c); }如图所示,望采纳......

招远市13088076004: 一道C语言题目,请高手给详细解答: -
道追异山: 1、从main()主函数开始从上往下执行函数2、执行到调用函数fun()后,结果是a=3,b=4,即px=3,py=43、由于是px、py是指针,px和 x指向同一个地址, py 和y也是一样的4、所以输出...

招远市13088076004: 初学C语言. 问道小题
道追异山: 答案是对的.前面没什么问题,后面“int c ,c=a,a=b,b=c”即是开辟一个新的存储空间c,把a的值赋给c,b的值赋给a(此时a空间的原值被替换为b的原值),c的值赋给b.(因为c存的是a的原值,最后一步完成后,b存的便是a的原值)最后printf(“&a,&b,a,b”)就完成了.不懂的话我书可以借你哦

招远市13088076004: C语言编程初学问题 -
道追异山: (1)程序输出:c1=a;c2=b;c1=97;c2=98;因为:你用%c,就是你要输出一个字符,97的ascii码就是小写字母a,98为b; (2)如果你把c1=197,c2=198,应该会提示隐式转换吧,如果定义char c1,c2,默认为有符号的char型,取值范围为-128~127,因此输出的是197-256=-59,198-256=-58,貌似用%c一般机器输出的是?吧,一般的就输出0-127能输出字符吧. (3)换成int和(2)的%c一样,%d就是int的值.

招远市13088076004: C程高手这边看,一道基础C语言题 -
道追异山: #include#include void main() { char a[20],b[20],t; int i,j,p=0; gets(a); for(i=0;i { t=a[i]; for(j=i+1;j if(t==a[j]) {a[i]=a[j]='\0';} } for(i=0;i if(a[i]!='\0') b[p]=a[i],p++; b[p]='\0'; puts(b); } 原理就是这样,改成int型函数就行了

招远市13088076004: c语言问题 高手速回救命!!!
道追异山: 试试这些代码 #include <stdio.h> void main() { int a[9]={1,2,3,4,5,6,7,8,9}; for(int i=0;i<9;i++) { printf("%d",a[i]); } } 哦,漏了个0, #include <stdio.h> void main() { int a[9]={0,1,2,3,4,5,6,7,8,9}; for(int i=0;i<=9;i++) { printf("%d",a[i]); } }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网