资源描述
注:答案仅供参考
分期还款:
#include <stdio.h>
#include <math.h>
int main()
{
double d, p,r;
scanf("%lf%lf%lf",&d,&p,&r);
printf("%.1f", log10(p/(p-d*r))/log10(1+r));
return 0;
}
计算分段函数函数值:
#include <stdio.h>
int main()
{
double x;
scanf("%lf",&x);
if(x<1) printf("%.2f", x);
else if(x>=1 && x<10) printf("%.2f", 2*x-1);
else printf("%.2f", 3*x-11);
}
成绩等级评分:
#include <stdio.h>
#include <math.h>
int main()
{
int score;
scanf("%d", &score);
if(score>100 || score<0)
printf("error");
else if(score>=90)
printf("A");
else if(score>=80)
printf("B");
else if(score>=70)
printf("C");
else if(score>=60)
printf("D");
else
printf("E");
return 0;
}
20秒后时间:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int h,m,s;
scanf("%d:%d:%d", &h,&m,&s);
s=s+20;
if(s>59)
{
s=s%60;
m++;
if(m>59)
{
m=m%60;
h++;
if(h>23)
h=0;
}
}
printf("%02d:%02d:%02d\n", h, m, s);
return 0;
}
分期还款(加强版):
#include <stdio.h>
#include <math.h>
int main()
{
double d, p,r;
scanf("%lf%lf%lf",&d,&p,&r);
if(d==0)
printf("0.0\n");
else if(d*(1+r)-p>d)
printf("God\n");
else
{
printf("%.1f", log10(p/(p-d*r))/log10(1+r));
}
return 0;
}
字母分类统计:
#include <stdio.h>
#include <math.h>
int main()
{
char ch;
int nL=0, nN=0, nS=0, nO=0;
while((ch=getchar())!='\n')
{
if(ch>='a'&&ch<='z'||
ch>='A'&&ch<='Z')
nL++;
else if (ch>='0'&&ch<='9')
nN++;
else if (ch==' ')
nS++;
else
nO++;
}
printf("%d %d %d %d\n", nL, nN, nS, nO);
return 0;
}
计算数列和:
#include<stdio.h>
main()
{ int i,n;
double a=2,b=1,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ s=s+a/b;
a=a+b;
b=a-b;
}
printf("%.4f\n",s);
}
自由落体:
#include <stdio.h>
#include <math.h>
int main()
{
double sum=-100, d=100;
int i,n;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
sum+=2*d;
d/=2;
}
printf("%.3f %.3f", sum, d);
return 0;
}
迭代法求平方根:
#include <stdio.h>
#include <math.h>
int main()
{
double a, x0, x1=1;
scanf("%lf", &a);
do
{
x0=x1;
x1=1.0/2*(x1+a/x1);
}while(fabs(x1-x0)>=1e-5);
printf("%.4lf\n", x1);
return 0;
}
打印三角形:
#include <stdio.h>
#define abs(x) ((x)>=0?(x):-(x))
int main()
{
int n,i,j;
scanf("%d", &n);
for(i=-(n-1); i<=(n-1); i++)
{
for(j=0; j<abs(i); j++)
printf(" ");
for(j=0; j<n-abs(i); j++)
printf("*");
printf("\n");
}
return 0;
}
勾股数:
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,k,n;
scanf("%d", &n);
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
{
k=(int)sqrt(i*i+j*j);
if(k*k==i*i+j*j && k<=n)
printf("%d %d %d\n", i,j,k);
}
return 0;
}
插入数据:
int n,i;
scanf("%d", &n);
for(i=14; i>=0; i--)
if(a[i]>n) a[i+1]=a[i];
else break;
a[i+1]=n;
输出不同的数:
#include"stdio.h"
main()
{ int a[20];
int i,t,p=0;
for(i=0;i<10;i++)
{ scanf("%d",&a[i]);
for(t=0;t<i;t++)
if(a[t]==a[i])break;
if(t==i)
printf("%d\n", a[i]);
}
}
鞍点:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,a[3][4],flag=0,col,r;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
col=0;
for(j=1;j<4;j++)
if(a[i][j]>a[i][col]) col=j;
for(j=0;j<4;j++)
{
if(a[i][j]==a[i][col])
{
for(r=0;r<3;r++)
if(a[r][j]<a[i][j]) break;
if(r==3)
{
printf("%d\n", a[i][j]);
flag=1;
}
}
}
}
if(!flag)
printf("NO\n");
return 0;
}
回文串:
#include "stdio.h"
#include "string.h"
main()
{ int i, j;
char buf[100];
scanf("%s",buf);
for(i=0, j=strlen(buf)-1;i<j; i++, j--)
if(buf[i]!=buf[j]) break;
if(i>=j)
printf("Y");
else
printf("N");
}
ASCII码值之和的差:
#include <stdio.h>
int sum(char *s)
{
int t=0,i=0;
while(s[i]!='\0')
t+=s[i++];
return t;
}
int main()
{
char s1[81],s2[82];
gets(s1);
gets(s2);
printf("%d", sum(s1)-sum(s2));
return 0;
}
所有数字之和:
#include "stdio.h"
int sum(int n)
{
int ret=0;
while(n>0)
{
ret+=n%10;
n/=10;
}
return ret;
}
main()
{
int n;
scanf("%d", &n);
printf("%d", sum(n));
}
元音字母:
#include "stdio.h"
void yuan(char *s,char *s2)
{
while(*s!='\0')
{
if(*s=='a' ||*s=='o' ||*s=='e' ||*s=='i' ||*s=='u' ||
*s=='A' ||*s=='O' ||*s=='E' ||*s=='I' ||*s=='U')
{*s2=*s; s2++;}
s++;
}
*s2='\0';
}
main()
{
char str[81], str2[81];
gets(str);
yuan(str,str2);
printf("%s", str2);
}
字符统计:
#include <stdio.h>
#include <string.h>
#include <math.h>
int nL=0, nN=0;
int statistics(char *s)
{
int ret=0;
while(*s!='\0')
{
if(*s>='a'&&*s<='z'||
*s>='A'&&*s<='Z')
nL++;
else if (*s>='0'&&*s<='9')
nN++;
else if (*s==' ')
ret++;
s++;
}
return ret;
}
int main()
{
char s[81];
int nS;
gets(s);
nS = statistics(s);
printf("%d %d %d\n", nL, nN, nS);
return 0;
}
选择排序:
#include <stdio.h>
int sort(int a[], int n)
{
int i,j,k,tmp;
for(i=0;i<n-1; i++)
{
k=i;
for(j=i+1; j<n; j++)
if(a[k]>a[j]) k=j;
tmp=a[k];a[k]=a[i];a[i]=tmp;
}
}
int main()
{
int a[10];
int i;
for(i=0; i<10; i++) scanf("%d", &a[i]);
sort(a,10);
for(i=0; i<10; i++) printf("%d\n", a[i]);
return 0;
}
x的n次方:
#include <stdio.h>
int F(int x, int n)
{
if(n==1) return x;
else return F(x, n-1)*x;
}
int main()
{
int x, n;
scanf("%d%d", &x, &n);
printf("%d", F(x, n));
return 0;
}
行列互换:
#include <stdio.h>
void swap(int *a, int *b)
{
int temp;
temp=*a;*a=*b;*b=temp;
}
void col(int a[][4], int i, int j)
{
int k;
for(k=0; k<4; k++)
swap(&a[k][i], &a[k][j]);
}
void row(int a[][4], int i, int j)
{
int k;
for(k=0; k<4; k++)
swap(&a[i][k], &a[j][k]);
}
int main()
{
int a[4][4];
int i,j;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf("%d", &a[i][j]);
col(a,0,2);
row(a,0,2);
col(a,1,3);
row(a,1,3);
col(a,0,3);
row(a,0,3);
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
学生信息统计:
#include <stdio.h>
void average(double a[][5], int n)
{
int i,j;double sum;
for(i=0; i<n; i++)
{
sum=0;
for(j=0; j<5; j++)
sum+=a[i][j];
printf("%.2f ", sum/5);
}
printf("\n");}
void average2(double a[][5], int n)
{
int i,j;double sum;
for(j=0; j<5; j++)
{
sum=0;
for(i=0; i<n; i++)
sum+=a[i][j];
printf("%.2f ", sum/n);
}
printf("\n");}
void top(double a[][5], int n)
{
int i,j; double max;
for(j=0; j<5; j++)
{
max=a[0][j];
for(i=1; i<n; i++)
if(a[i][j]>max) max = a[i][j];
printf("%.2f ", max);
}
printf("\n");}
int main()
{
double a[10][5];
int i, j;
for(i=0; i<10; i++)
for(j=0; j<5; j++)
scanf("%lf", &a[i][j]);
average(a,10);
average2(a,10);
top(a,10);
return 0;
}
一年的第几天:
#include <stdio.h>
struct DATE
{
int year;
int month;
int day;
};
int days(struct DATE date)
{
int day,sum;
if(date.year%4==0&&date.year%100!=0||date.year%400==0)
{
day=29;
}
else
{
day=28;
};
switch(date.month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=31+day;break;
case 4:sum=62+day;break;
case 5:sum=92+day;break;
case 6:sum=123+day;break;
case 7:sum=153+day;break;
case 8:sum=184+day;break;
case 9:sum=215+day;break;
case 10:sum=245+day;break;
case 11:sum=276+day;break;
case 12:sum=306+day;break;
};
return(sum+date.day);
}
int main()
{
struct DATE d;
scanf("%d-%d-%d", &d.year, &d.month, &d.day);
printf("%d", days(d));
}学生成绩表:
#include <stdio.h>
struct data
{
int num;
char name[20];
double score[3];
double average;};
int main()
{
int i,j;
struct data stu[10],tmp;
for(i=0; i<10; i++)
{
scanf("%d%s%lf%lf%lf", &stu[i].num, stu[i].name, stu[i].score, stu[i].score+1, stu[i].score+2);
stu[i].average=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]; }
for(i=0; i<9; i++)
for(j=0; j<9-i; j++)
{
if(stu[j].average<stu[j+1].average)
{
tmp=stu[j];stu[j]=stu[j+1];stu[j+1]=tmp;
} }
for(i=0; i<10; i++)
{
printf("%d %s %.0lf %.0lf %.0lf\n", stu[i].num, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2]);
}
return 0;
}
13 / 13
展开阅读全文