点 点赞和关注吧!!!
博主在尽力的补代码和思路;
里面包含了自己学习C语言,通过网站的挑战来巩固自己对C的理解;
里面的代码仅供参考,若有错误之处,欢迎提出;
大家也可以跟我一样去通过闯关来理解C的不一样;
C语言挑战网站
这个比较简单,直接打印输出即可。
#include
int main(void)
{
/********* Begin *********/
printf("Hello World");
/********* End *********/
return 0;
}
每一步打印就OK
#include
int main(void)
{
/********* Begin *********/
printf(" *\n");
printf(" ***\n");
printf(" OK\n");
printf(" Hello!\n");
printf("*********\n");
/********* End *********/
return 0;
}
直接定义a为最大值,然后通过a,b,c比较找到最大值。
#include
int main(void)
{
/********* Begin *********/
int a,b,c; //输入三个整数 //每次输入以Enter键结束
scanf("%d,%d,%d",&a,&b,&c); //输入变量
int max=a;
if(max<b) //比较大小
max=b; //把数值大的那一个数
if(max<c) //比较大小
max=c; //把数值大的那一个数
printf("max=%d\n",max); //输出结果
/********* End *********/
return 0;
}
判断值是否为5是的话直接输出需要的值,不需要就输出另外一个。
#include"stdio.h"
int main(void)
{
/********* Begin *********/
int x;
int y=2,z=3;
scanf("%d",&x);
if(x==y+z)
printf("*****");
else
printf("#####" );
return 0;
/********* End *********/
}
直接定义a+b=c,然后直接输出就c OK。
#include
int main(void)
{
int a,b,c;
//Please input a,b:
/*********Begin*********/
scanf("%d,%d",&a,&b);
c=a+b;
printf("%d+%d=%d\n",a,b,c);
/*********End**********/
return 0;
}
输出时直接输出就OK
#include
int main(void)
{
int a,b;
//Enter a and b:
scanf("%d%d",&a,&b);
printf("a=%d b=%d\n",a,b);
/*********Begin*********/
/*********End**********/
printf("a=%d b=%d\n",b,a);
return 0;
}
利用宏定义来定义P的值,然后直接用宏定义就OK
#include
#define p 30
int main(void)
{
/*********Begin*********/
int x;
scanf("%d",&x);
printf("%d",x*p);
/*********End**********/
return 0;
}
第一次模输出个位,然后除以10 然后模输出十位,然后/100模输出百位。
#include
int main(void)
{
/*********Begin*********/
int a,b,x,c;
scanf("%d",&x);
c=x%10;
b=(x/10)%10;
a=(x/100)%10;
printf("%d %d %d",a,b,c);
/*********End**********/
return 0;
}
直接将每个成绩加起来,然后除以同学数,计算平均值。
#include
int main(void)
{
/*********Begin*********/
int a,b,c,d,e;
scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
int sum=0;
double ave=0;
sum=(a+b+c+d+e);
ave=(a+b+c+d+e)/5.00;
printf("%d ",sum);
printf("%.2f",ave);
/*********End**********/
return 0;
}
输入三角形的各个边长,然后用三角形的公式计算出面积。
#include
#include
int main(void)
{
/*********Begin*********/
double a,b,c,s,area;
scanf("%lf %lf %lf",&a,&b,&c);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%.3f",area);
/*********End**********/
return 0;
}
计算立体几何的面积,周长,表面积,利用所学的公式直接计算输出即可。
#include
#define PI 3.14
int main(void)
{
/*********Begin*********/
double r,C1,Sb,Vb,h;
scanf("%lf,%lf",&r,&h);
C1=PI*r*2;
Sb=4*PI*r*r;
Vb=h*PI*r*r;
printf("C1=%.2f\n",C1);
printf("Sb=%.2f\n",Sb);
printf("Vb=%.2f\n",Vb);
/*********End**********/
return 0;
}
#include
int MaxCommonFactor( int a, int b)
{
int c;
if(a<=0||b<=0)
return -1;
while(b!=0)
{
c=a%b;
a=b;
b=c;
}
return a;
}
int main(void)
{
/*********Begin*********/
int a=0,b=0;
int tmp=0;
scanf("%d,%d",&a,&b);
if(a<b){
tmp=b;
b=a;
a=tmp;
}
while(b!=0)
{
tmp=a%b;
a=b;
b=tmp;
}
printf("%d",a);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int a,b,c;
int tmp;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
tmp=a;
a=b;
b=tmp;
}
if(a>c)
{
tmp=a;
a=c;
c=tmp;
}
if(b>c)
{
tmp=b;
b=c;
c=tmp;
}
printf("从小到大排列为:%d,%d,%d",a,b,c);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int year;
scanf("%d",&year);
if(year % 4 == 0 && year % 100 != 0)
{
printf("%d 是闰年!",year);
}
else if(year % 400 == 0)
{
printf("%d 是闰年!",year);
}
else printf("%d 不是闰年! ",year);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
double x;
double y;
scanf("%lf",&x);
if(x < 0 && x != -3)
{
y=x*x+x-6;
}
else if(x >= 0 && x < 10 && x != 2 && x != 3)
{
y=x*x - 5 * x +6;
}
else
{
y=x*x - x -1;
}
printf("%.3f",y);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int Score;
scanf("%d",&Score);
if(Score>=90 && Score <= 100)
{
printf("A");
}
else if(Score < 90 && Score >= 80)
{
printf("B");
}
else if(Score < 80 && Score >= 70)
{
printf("C");
}
else if(Score < 70 && Score >= 60)
{
printf("D");
}
else if(Score < 60 && Score >= 0)
{
printf("E");
}
else printf("Score is error!");
/*********End**********/
return 0;
}
#include
#include
int main(void)
{
/*********Begin*********/
int area = 0;
float weight,start_weight,extra_weight,price = 0;
int area_start_money[5] = {
10,10,15,15,15}; // 每个区域的起重费用
float area_extra_money[5] = {
3,4,5,6.5,10}; // 每个区域的续重费用
// printf("please input area number and weight(eg:0,10.5):\n");
scanf("%d,%f",&area,&weight);
//输入合法性检查
if(area<0 || area>4){
printf("Error in Area\n");
price = 0;
}
else if(weight < 0){
printf("Error in Weight!\n");
price = 0;
}
else{
start_weight = 1;
extra_weight = ceil(weight - 1); //ceil表示向上去整,不足1公斤,按1公斤计算
price = area_start_money[area] + extra_weight * area_extra_money[area];
}
printf("Price: %.2f\n",price);
/*********End**********/
return 0;
}
#include
#include
int main(void)
{
/*********Begin*********/
printf("Please enter the coefficients a,b,c:\n");
double a,b,c,tmp,y,x1,x2;
scanf("%lf,%lf,%lf",&a,&b,&c);
tmp=-(b/(2*a));
y=(b*b - 4*a*c);
if(y<0) printf("error!\n");
else
{
x1=tmp+sqrt(y)/(2*a);
x2=tmp-sqrt(y)/(2*a);
printf("x1=%.4f, x2=%.4f\n",x1,x2);
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int Item,Purchase,mm,dd,yy;
double Unit;
printf("Enter item number:\n");
scanf("%d",&Item);
printf("Enter unit price:\n");
scanf("%lf",&Unit);
printf("Enter purchase date (mm/dd/yy):\n");
scanf("%d/%d/%d",&mm,&dd,&yy);
printf("Item Unit Purchase\n");
printf("%-9d$ %-9.2f",Item,Unit,Purchase);
printf("%d%02d%d",mm,dd,yy);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int N;
double M,sum;
scanf("%lf%d",&M,&N);
sum = M;
for(int i=2;i<=N;i++)
{
M /= 2.0;
sum +=M;
if(i>1)
{
sum += M;
}
if(i == N)
{
M /= 2.0;
}
}
printf("%.2f %.2f",M,sum);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int s=1,n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
if(i % 5 == 0)
{
s *= i;
}
}
printf("%d\n", s);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int x,y,t,z;
scanf("%d%d",&x,&y);
if(x>y)
{
t=x;
x=y;
y=t;
}
for(int i=x;x<y;i--)
{
if(y%i==0 && x%i==0){
printf("最大公约数是:%d\n",i);
break;
}
}
for(int z=y;;z++)
{
if(z % y ==0 && z % x == 0) {
printf("最小公倍数是:%d",z);
break;
}
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int digit=0,letter=0,space=0,other=0;
char c;
while((c=getchar()) != '\n')
{
if((c >='a' && c <= 'z') || (c <= 'Z' && c >= 'A')){
letter++;
}
else if(c >= '0' && c <= '9'){
digit++;
}
else if(' ' == c){
space++;
}
else
other++;
}
printf("%d %d %d %d",letter,digit,space,other);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int a,n,sum=0,Sum=0,add=0;
scanf("%d%d",&a,&n);
for(int i=0,t=1;i<n;i++)
{
sum = a*t;
Sum += sum;
add += Sum;
t =t*10;
}
printf("%d",add);
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
double array,sum=0;
int n;
scanf("%d",&n);
if(n <= 0) printf("the number of students:the scores:average=0.00");
else
{
for(int i=0;i<n;i++)
{
scanf(" %lf",&array);
sum += array;
}
printf("the number of students:the scores:average=%.2f",sum/n);
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int n,a,b=1,i;
scanf("%d",&n);
if(n % 10 == 0) printf("0\n");
else {
while(n % 10 != 0)
{
i=(int) n / 10;
a= n % 10;
n=i;
b *= a;
}
printf("%d",b);
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int n,sum=0,mul=1;
scanf("%d",&n);
if(n == 0) printf("1");
else if(n < 0) printf("0");
else
{
for(int i=1;i <= n;i++)
{
mul *= i;
sum += mul;
}
printf("%d",sum);
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int a,b,c,n;
for(int n=101;n<1000;n++)
{
a = n%10;
b = (n/10) % 10;
c= (n/100) % 10;
if((a*a*a + b*b*b + c*c*c) == n) printf("%d ",n);
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int m,n,sum;
for(int m=2;m<1000;m++)
{
sum = 1;
for(int n=2;n <= m/2;n++)
{
if(m % n==0) sum += n;
}
if(sum == m) printf("%d\n",m);
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int flag = -1;
double sum = 0;
for(int i=1;i<= 100;i++)
{
if(i%2 != 0) sum += (1.0/i);
else sum += flag * (1.0/i);
}
printf("%.3f",sum);
/*********End**********/
return 0;
}
#include
//编写函数
/*********Begin*********/
/*********End**********/
int main(void)
{
/*********Begin*********/
int n,sum;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum += i;
}
printf("%d",sum);
/*********End**********/
return 0;
}
#include
int solve(int n){
/*********Begin*********/
int i,j=0;
i=n;
while(i)
{
j = j*10 + i%10;
i /= 10;
}
if(j==n) return 1;
else return 0;
}
/*********End**********/
int main(void)
{
for(int i=200;i<=3000;i++)
{
if(solve(i)) printf("%d\n",i);
}
return 0;
}
#include
//编写题目要求的函数
/*********Begin*********/
int main(void)
{
/*********Begin*********/
int n;
double sum=0,a=1,b=1;
scanf("%d",&n);
for(int i=0;i<=n;i++)
{
if(i==0 || i==1)
a = 1;
else
a *= i;
b *= (2*i+1);
sum += (double)a/b;
}
printf("%.10f",sum);
/*********End**********/
return 0;
}
#include
//编写函数
/*********Begin*********/
/*********End**********/
int main(void)
{
/*********Begin*********/
int n;
long long sum,a=1;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
a *= i;
sum += a;
}
printf("%lld",sum);
/*********End**********/
return 0;
}
#include
void solve(int a){
/*********Begin*********/
int b,n,i;
for(b=0,i=1;i<=a/2;i++)
if(!(a%i))
b=b+i;
for(n=0,i=1;i<=b/2;i++ )
if(!(b%i))
n=n+i;
if(n==a&&a<b)
printf("(%d,%d)",a,b);
/*********End**********/
}
int main(void)
{
for(int a=1;a<3000;a++)
solve(a);
return 0;
}
#include
//编写最大公约数GCD函数
/*********Begin*********/
long long sum;
long long GCD(long long x, long long y)
{
long long i, k, m, n;
sum = 1;
k = x > y ? y : x;
i = 2;
while (i <= k){
m = x % i;
n = y % i;
if (m == 0 && n == 0){
sum *= i;
x /= i;
y /= i;
i = 2;
}
else
i++;
}
return sum;
}
/*********End**********/
//编写最小公倍数LCM函数
/*********Begin*********/
long long LCM(long long p, long long q)
{
long long lc;
lc = p * q / sum;
return lc;
}
/*********End**********/
int main(void)
{
/*********Begin*********/
long long a, b,hcf, lcm;
scanf("%lld %lld", &a, &b);
if(a<0 || b<0 ) printf("Input Error");
else
{
hcf = GCD(a, b); //调用最大公约数函数
lcm = LCM(a, b); //调用最小公倍数函数
printf("%lld %lld\n", hcf, lcm); //输出最大公约数和最小公倍数
}
/*********End**********/
return 0;
}
#include
long long solve(long long n){
/*********Begin*********/
long long alt = 1;
for(int i=1;i<=n;i++){
alt *= i;
}
return alt;
/*********End**********/
}
int main(void)
{
long long n,sum;
scanf("%lld",&n);
long long ans=0;
for(long long i=1;i<=n;i++)
{
ans+=solve(i);
}
printf("%lld", ans);
return 0;
}
#include
void solve(int n){
printf("%d", n%10);
/*********Begin*********/
n /= 10;
/*********End**********/
if(n>0) solve(n);
}
int main(void)
{
int n;
scanf("%d",&n);
solve(n);
return 0;
}
#include
void solve(int n){
int temp=n%10;
/*********Begin*********/
n /= 10;
if(n>0) solve(n);
/*********End**********/
if(n)
printf(" %d", temp);
else
printf("%d", temp);
}
int main(void)
{
int n;
scanf("%d",&n);
solve(n);
return 0;
}
#include
int Acm(int m,int n){
int a;
if(m==0&&n>0)
/*********Begin*********/
a = n + 1;
/*********End**********/
else if(n==0&&m>0)
/*********Begin*********/
a=Acm(m-1,1);
/*********End**********/
else
/*********Begin*********/
a=Acm(m-1,Acm(m,n-1));
/*********End**********/
return a;
}
int main(void)
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d", Acm(m,n));
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int array[10];
for(int i=0;i<10;i++)
scanf("%d",&array[i]);
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(array[i] >array[j])
{
int tmp = array[j];
array[j]=array[i];
array[i]=tmp;
}
}
}
for(int i=0;i<10;i++)
{
printf("%d ",array[i]);
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int m,n;
scanf("%d\n",&n);
int array[n];
for(int i=0;i<n;i++)
{
scanf("%d ",&array[i]);
}
scanf("%d\n",&m);
for(int i=0;i<n;i++)
{
if(m == array[i])
{
printf("%d",i+1);
break;
}
if(i+1==n) printf("-1");
}
/*********End**********/
return 0;
}
#include
int main(void)
{
/*********Begin*********/
int m=0,n=0;
printf("Input m, n:");
scanf("%d,%d",&m,&n);
int array[m][n];
printf("Input %d*%d array:\n",m,n);
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
scanf("%d",&array[i][j]);
}
}
int max = array[0][0],row=1,col=1;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(max <array[i][j])
{
max = array[i][j];
row = i+1;
col = j+1;
}
}
}
printf("max=%d, row=%d, col=%d",max,row,col);
/*********End**********/
return 0;
}