文档库 最新最全的文档下载
当前位置:文档库 › mooc答案

mooc答案

计算两个数的平方和
#include
#include
int main()
{
printf("Please input x and y:\n");
float x, y;
scanf("%f,%f", &x, &y);
printf("Result=%.2f\n", pow(x,2)+pow(y,2));
return 0;
}
逆序数的拆分计算
#include
int main()
{
printf("Input x:\n");
int x;
scanf("%d", &x);
if(x<=0)
{
x=-x;
}
int a, b, c, d;
a=x/1000;
b=x/100%10;
c=x/10%10;
d=x%10;
printf("y=%d\n", d*1000+c*100+b*10+a);
printf("a=%d,b=%d\n", d*10+c, b*10+a);
printf("result=%d\n", (b*10+a)*(b*10+a)+(d*10+c)*(d*10+c));
return 0;
}
拆分英文名
#include
int main()
{
printf("Input your English name:\n");
char a, b, c;
scanf("%c%c%c", &a, &b, &c);
printf("%c%c%c\n", a+'A'-'a', b, c);
printf("%c:%d\n", a, a-'a'+1);
printf("%c:%d\n", b, b-'a'+1);
printf("%c:%d\n", c, c-'a'+1);
return 0;
}
计算体指数
#include
int main()
{
int x, y;
printf("Input weight, height:\n");
scanf("%d,%d", &x, &y);
printf("weight=%d\n", x*2);
printf("height=%.2f\n", y/100.0);
printf("t=%.2f\n", x/((y/100.0)*(y/100.0)));
return 0;
}
数位拆分v2.0
#include
main()
{
int m,x,y;
printf("Please input n:\n");
scanf("%d",&m);
x=m/100;
y=m%100;

printf("%d,%d\n",x,y);
printf("sum=%d,sub=%d,multi=%d\n",x+y,x-y,x*y);
if (y!=0){
printf("dev=%.2f,mod=%d\n",(float)x/y,x%y);

}
else{
printf("The second operater is zero!\n");
}
}
快递费用计算
#include
#include
int main()
{
int area;
float weight,price,x1,x2;
scanf("%d,%f",&area,&weight);
if (weight<=1){
x1=1.0;
}
else{
x1=1.0;
x2=ceil(weight-1);

}
if (area>0&&area<=4){
switch(area){
case(0):price=x1*10+x2*3;break;
case(1):price=x1*10+x2*4;break;
case(2):price=x1*15+x2*5;break;
case(3):price=x1*15+x2*6.5;break;
case(4):price=x1*15+x2*10;break;
}
printf("Price: %5.2f\n",price);
}
else {
printf("Error in Area\n");
printf("Price: 0.00\n");
}
return 0;
}
数据区间判断
#include
#include
int main()
{
int x;
printf("Please enter the number:\n");
scanf("%d",&x);
if (x>=1000&&x<=9999) printf("%d: 1000-9999\n",x);
else if (x>0&&x<=9) printf("%d: 0-9\n",x);
else if (x>=10&&x<=99) printf("%d: 10-99\n",x);
else if (x>=100&&x<=999) printf("%d: 100-999\n",x);
else printf("error!\n");
return 0;
}
计算一元二次方程的根v2.0
#include
#include
int main()
{
float a,b,c,x1,x2,m;
printf("Please enter the coefficients a,b,c:\n");
scanf("%f,%f,%f",&a,&b,&c);
m=b*b-4*a*c;
if (m<0){
printf("error!\n");
}
else{

x1=(-b+sqrt(m))/(2*a);
x2=(-b-sqrt(m))/(2*a);
printf("x1=%7.4f, x2=%7.4f\n",x1,x2);
}
return 0;
}
6位密码输入检测
#include
int main()
{
char a;
int i=0;
printf("Input your password:\n");
while(i<6)
{
scanf("%c",&a);
if (a>=48&&a<=57)
{
printf("%c, you have enter %d-bits number\n",a,++i);
}
else
printf("error\n");
getchar();
}
return 0;
}
判断一个整型数据有几位v1.0
#include
int main(){
int x,y,n;
printf("Please enter the number:\n");
scanf("%d",&x);
n=x;
for(y=1;x/=10;y++);
printf("%d: %d bits\n",n,y);
return 0;
}
检测输入数据中奇数和偶数的个数
#include
int main(){
int s,odd=0,even=0;
printf("Please enter the number:\n");
do{
scanf("%d",&s);
if (s==-1&&odd==0&&even==0) printf("over!\n");
else if( s%2!=0 &&s!=-1) {printf("%d:odd\n",s);odd++;}
else if (s%2==0){printf("%d:even\n",s);even++;}
else even+=0;
}while (s!=-1);
printf("The total number of odd is %d\n",odd);
printf("The total number of even is %d\n",even);

return 0;
}
计算球的反弹高度
#include
int main(){
int time,i;
float each=0,sum=0,h=100;
printf("Input:\n");
scanf("%d",&time);
for (i=0;isum+=h;
h/=2;
each=h;
sum+=each;
}
printf("%d times:\n",time);
printf("%.3f\n",sum-each);
printf("%.3f\n",each);

return 0;
}
程序改错v2.0
#include
int main()
{
int score,m=0;
char grade;
printf("Please input score:\n");
do{
m=scanf("%d", &score);
getchar();
if (m!=1 ||score < 0 || score > 100)
{ printf("Input error!\nPlease input score:\n");m=0;}
}while (m==0);
if (score >= 90)
grade = 'A';
else if (score >= 80)
grade = 'B';
else if (score >= 70)
grade = 'C';
else if (score >= 60)
grade = 'D';
else
grade = 'E';
printf("grade: %c\n", grade);
return 0;
}
编程计算a+aa+aaa+…+aa…a(n个a)的值
#include
int main(){
int a,n,sum=0,tem=1;
printf("Input a,n:\n");
scanf("%d,%d",&a,&n);
int i;
for (i=1;i<=n;i++)
{
sum+=(a*tem);
tem=tem*10+1;
}
printf("sum=%d\n",sum);
return 0;
}
搬砖问题
#include
int main(){
int woman,man,kid,n;
printf("Input n(27scanf("%d",&n);
for (man=0;man<=36;man++)
{
for (woman=0;woman<=36;woman++)
{
kid=36-man-woman;
if (8*man+6*woman+kid==2*n)
printf("men=%d,women=%d,children=%d\n",man,woman,kid); }
}
return 0;
}
编程输出某年某月有多少天(考虑到闰年)。
#include
int isleap(int n);
int main(){
int year,month;
printf("Input year,m

onth:\n");
scanf("%d,%d",&year,&month);
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: printf("31 days\n");break;
case 4:
case 6:
case 9:
case 11:printf("30 days\n");break;
case 2:if (isleap(year))
{
printf("29 days\n");break;
}
else{ printf("28 days\n");break;
}
default : printf("Input error!\n");

}
return 0;

}
int isleap(int n)
{
if (n%100!=0&&n%4==0||n%400==0)
return 1;
else
return 0;
}
递归法计算游戏人员的年龄
#include
unsigned int Age(unsigned int age);
int main(){
unsigned int n=0;
scanf("%ud",&n);
printf("The person's age is %u\n",Age(n));
return 0;
}
unsigned int Age(unsigned int n)
{
if (n==1)
return 10;
else
return Age(n-1)+2;
}
魔术师猜数
#include
int Magic(int m);
int main(){
int m;
scanf("%d",&m);
if( Magic(m))
printf("The number is %d\n",Magic(m));
else
printf("The sum you calculated is wrong!\n");
return 0;
}

int Magic(int n)
{
int m;
int a,b,c;
for (m=100;m<1000;m++){
a=m/100;
c=m%10;
b=(m-a*100)/10;
if ((a*122+b*212+c*221)==n)
return m;
}
return 0;
}
寻找中位数v1.0
#include
int mid(int a, int b, int c);
int main(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("The result is %d\n",mid(a,b,c));
return 0;
}

int mid(int a, int b, int c)
{
int j,i,t;
int m[3]={a,b,c};
for (i=0;i<2;i++)
for (j=i;j<=2;j++)
if (m[j]>m[i])
{t=m[j];
m[j]=m[i];
m[i]=t;
}
return m[1];
}
还原算术表达式
#include
int main()
{
int x,y,z,n;
printf("Input n(n<1000):\n");
scanf("%d",&n);
for (x=0;x<10;x++)
{
for (y=0;y<10;y++)
{
for (z=0;z<10;z++)
{
if ((x*100+y*110+z*12)==n)
{
printf("X=%d,Y=%d,Z=%d\n",x,y,z);
return 0;
}
}
}
}
printf("Invalid\n");
}
计算礼炮声响次数
#include
int main()
{
int t,n=0;
for (t=0;t<=140;t++)
{
if (t%5==0 && t<=21*5)
{
n++;
continue;
}
if (t%6==0 && t<=21*6)
{
n++;
continue;
}
if (t%7==0 && t<=21*7)
{
n++;
continue;
}
}
printf("n=%d",n);

return 0;
}
兔子生崽问题
#include
int creat(int n);
int main()
{
int total,i,n;
printf("Input n(n<=12):\n");
scanf("%d",&n);
for (i=1;i<=n;i++)
{printf("%4d",creat(i+1));}
printf("\nTotal=%

d\n",creat(n+1));
return 0;
}
int creat(int n)
{
if (n==1 || n==2)
return 1;
else
return creat(n-1)+creat(n-2);
}
抓交通肇事犯
#include
int main()
{
int a,b,c,d,i,j;
for (i=31;i<100;i++)
{
j=i*i;
a=j/1000;
d=j%10;
b=j%1000/100;
c=j%100/10;
if (a==b&&c==d&&a!=c)
printf("k=%d,m=%d\n",j,i);
}
return 0;
}
检验并打印幻方矩阵。
#include
int judge ();
int i,j;
int m[5][5]={0};
int main()
{
for(i=0;i<5;i++)
for (j=0;j<5;j++)
scanf("%d",&m[i][j]);
if (judge()){
printf("It is a magic square!\n");
for(i=0;i<5;i++)
{
for (j=0;j<5;j++)
printf("%4d",m[i][j]);
printf("\n");
}
}
else
printf("It is not a magic square!\n");

return 0;
}

int judge ()
{
int l=0,r=0;
int s[5]={0},t[5]={0};
for (i=0;i<5;i++)
for (j=0;j<5;j++)
{
s[i]+=m[i][j];
t[j]+=m[i][j];
if (i==j) l+=m[i][j];
if (i+j==4) r+=m[i][j];
}
if (l!=r) return 0;
for (i=0;i<5;i++) if (s[i]!=l||t[i]!=l) return 0;
return 1;
}
ISBN识别码判断
#include
#include
int i=0,j=0;
int main()
{
char s[14],d[14];
int m[9]={0};
int n=0,l=0;
gets(s);
n=s[12]-48;
for (i=0;s[i]!='\0';i++)
{
if (s[i]!='-')
{
m[j]=s[i];
j++;
}
}
for (j=1;j<=9;j++)
{
l+=(m[j-1]-48)*j;
}
l=l%11;

if (l==n)
printf("Right");
else
{
strncpy(d,s,12);
d[12]=l+48;
d[13]='\0';
printf("%s",d);
}
return 0;
}
摘苹果
#include
int main(){
int m[10]={0};
int i,j=0,n;
for (i=0;i<10;i++)
scanf("%d",&m[i]);
scanf("%d",&n);
for (i=0;i<10;i++)
if(m[i]<=n+30)
j++;
printf("%d",j);
return 0;
}
求最大素数
#include
#include
int judge(int n);
int main(){
int m[500];
int n,j,l=0,sum=0;
printf( "Input n(n<=500):\n");
scanf("%d",&n);
for (j=n;j>0;j--)
{
if (judge(j))
m[l++]=j;
}
for (j=0;j<10;j++)
{
sum+=m[j];
printf("%6d",m[j]);
}
printf("\nsum=%d\n",sum);
return 0;
}
int judge(int n)
{
int i;
for (i=2;i<=sqrt((double)n);i++)
{
if (n%i==0)
return 0;
}
return 1;
}
字符串逆序
#include
#include
#define maxn 80
void Inverse(char str[]);
int main(){
char str[maxn];
printf("Input a string:\n");
gets(str);
printf("Inversed results:\n");
Inverse(str);
puts(str);
return 0;
}
void Inverse(char str[])
{
char ch;
int len = strlen(str),i;
for(i = 0; i < len / 2; i++)
{
ch = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = ch;
}
}
水手分椰子
#include

tdio.h>
int n;
check(int a){
int i;
for(i=0; i{
if(a%n!=1)
return 0;
a=a/n*(n-1);
}
return 1;
}
int main()
{
int i;
printf("Input n(n<=5):\n");
scanf("%d",&n);
for(i=6; i<10000; i++)
{
if(check(i))
{
printf("y=%d\n",i);
break;
}
}
return 0;
}
找最值
#include
int FindMax(int num[], int n, int *pMaxPos);
int FindMin(int num[], int n, int *pMinPos);
int num[10];
int i,maxdex=0,mindex=0;

int main(){
int max,min;
int m,n;
printf("Input 10 numbers:\n");
for (i=0;i<10;i++)
scanf("%d",&num[i]);
max=FindMax(num,10,&m);
min =FindMin(num,10,&n);
printf("Max=%d,Position=%d,Min=%d,Position=%d\n",m,max,n,min);
return 0;
}
int FindMax(int num[], int n, int *pMaxPos)
{
*pMaxPos=num[0];
for (i=1;iif (num[i]>*pMaxPos)
{*pMaxPos=num[i];
maxdex=i;
}
return maxdex;
}
int FindMin(int num[], int n, int *pMinPos)
{
*pMinPos=num[0];
for (i=1;iif (num[i]<*pMinPos)
{*pMinPos=num[i];
mindex=i;
}
return mindex;
}
星期查找
#include
#include
#define max 50

int main()
{
char week[7][10] ={"Sunday","Monday","Tuesday","Wednesday" ,"Thursday","Friday","Saturday"};
int i,flag=0;
char find[max];
printf("Please enter a string:\n");
gets(find);
for (i=0; i<7; i++)
if (strcmp(week[i],find)==0)
{
flag=1;
break;
}
if(flag==0)
printf("Not found!\n");
else
printf("%s is %d\n",find,i);
return 0;
}
杨辉三角
#include
int main()
{
int n;
int i,j,a[10][10];
printf("Input n (n<=10):\n");
scanf("%d",&n);
for(i=0; ifor(j=0; j{
a[i][0]=1;
a[i][i]=1;
}
for(i=2; ifor(j=1; j<=i-1; j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0; i{
for(j=0; j<=i; j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
找数组最值
#include
void InputArray(int (*p)[10], int m, int n);
int FindMax(int (*p)[10], int m, int n, int *pRow, int *pCol);
int i,j;
int num[10][10];
int main()
{
int m,n;
int max=0;
int row,col;
int *pRow=&row;
int *pCol=&col;
printf("Input m,n:\n");
scanf("%d,%d",&m,&n);
printf("Input %d*%d array:\n",m,n);
InputArray(num,m,n);
max=FindMax(num,m,n,pRow,pCol);
printf("max=%d,row=%d,col=%d\n",max,row,col);
return 0;
}
int FindMax(int (*p)[10], int m, int n, int *pRow, int *pCol)
{
int tem=p[0][0];
for(i=0;ifor(j=0;jif (p[i][j]>tem){
tem=

p[i][j];
*pRow=i;
*pCol=j;
}
return tem;
}

void InputArray(int (*p)[10], int m, int n)
{
for(i=0;ifor(j=0;jscanf("%d",&p[i][j]);
}
冒泡排序
#include
int i,j;
int num[10000];
void Swap(int *m,int *n);
int main()
{
int n;
printf("Input n:");
scanf("%d",&n);
printf("Input %d numbers:",n);
for(i=0;iscanf("%d",&num[i]);
for(i=0;ifor (j=i;jif (num[j]Swap(&num[j],&num[i]);
printf("Sorting results:");
for (i=0;iprintf("%4d",num[i]);
return 0;
}
void Swap(int *m,int *n)
{
int tem;
tem=*m;
*m=*n;
*n=tem;
}
删除字符串中与某字符相同的字符
#include
#include
#define maxn 1000
void delete_string(char str[],char ch);
int main()
{
char m[maxn],l[maxn];
char n;
printf("Input a string:\n");
gets(m);
printf("Input a character:\n");
n=getchar();
delete_string(m,n);
printf("Results:%s\n",m);
return 0;
}
void delete_string(char str[],char ch)
{
int i,j;
for(i=j=0; str[i]!='\0'; i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]='\0';
}
求最大数和最小数的最大公约数
#include
#include
#define maxn 10
void Swap(int *m,int *n);
int gcd(int x,int y);
int i,j=0;
int num[maxn];
int main()
{
int max,min;
printf("Input 10 numbers:\n");
for (i=0; i<10; i++)
scanf("%d",&num[i]);
for(i=0; i<9; i++)
for (j=i; j<10; j++)
if (num[j]Swap(&num[j],&num[i]);
max=num[9];
min=num[0];
printf("maxNum=%d\nminNum=%d\n",max,min);
if (max!=0&&min!=0)
printf("%d",gcd(max,min));
return 0;
}
void Swap(int *m,int *n)
{
int tem;
tem=*m;
*m=*n;
*n=tem;
}
int gcd(int x,int y)
{
int m;
if(xreturn gcd(y,x);
if(x%y!=0)
return gcd(y,x%y);
else
return y;
}
百万富翁的换钱计划
#include
int main()
{
float a=0,i;
double c=0,b=0.005;
for(i=0;i<30;i++)
{
a+=100000;
b*=2;
c+=b;
}
printf("to Stranger: %.2f yuan\n",c);
printf("to Richman: %.2f yuan\n",a);
return 0;
}
用计数控制的循环实现正数累加求和
#include
int main()
{
int a,s=0,i=0;
do
{
printf("Input a number:\n");
scanf("%d",&a);
if (a>0) {s+=a;i++;}
}while(a!=0);
printf("sum=%d,count=%d\n",s,i);

return 0;
}
平方根表
#include
#include
int main()
{
int i,j,x;
float a[10][10];
printf("Input n(n<=10):\n");
scanf("%d",&x);
for(i=0;i{
for(j=0;j{
a[i][j]=sqrt(i*10+j);
}
}
for(i=0;iprintf("%7d",i);
printf("\n");

for(i=0;i{
printf("%d",i);
for(j=0;j{
printf("%7.3f",a[i][j]);
}
printf("\n");
}
return 0;
}
最大公约数
#include
int CommonFactors(int a, int b);
int main()
{
int i,j;
printf("Input a and b:\n");
scanf("%d,%d",&i,&j);
CommonFactors(i,j);
return 0;
}
int CommonFactors(int a, int b)
{
int k,ans=0;
if(a< 0||b< 0) return 0-1;
for (k=a;k>=1;k--)
{
if (a%k==0&&b%k==0)
{
ans++;
printf("Common factor %d is %d\n",ans,k);
}
}
return ans;
}

相关文档