解题思路:

5.8

#include<stdio.h>

main()

{

int n, num, n1, n2, n3, n4, n5;

scanf("%d",&n);

num = (n - 1 ) / 100000;

if (n > 1000000)

num = 10;


n1 = 0;

switch(num)

{

case 10://I>1000000时,超过1000000元的部分按1%提成。

n1 = n1 + (n - 1000000) / 100 * 1;

n = n - 1000000;


case 9:

case 8:

case 7://600000<I≤1000000时,高于600000元的部分按1.5%提成;

n1 = n1 + (n - 600000) / 1000 * 15;

n = n - 600000;


case 6:

case 5://400000<I≤600000元时,高于400000元的部分按3%提成;

n1 = n1 + (n - 400000) / 100 * 3;

n = n - 400000;


case 4:

case 3: //200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成;

n1 = n1 + (n - 200000) / 100 * 5;

n = n - 200000;

case 2: //低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成

n1 = n1 + (n - 100000) / 1000 * 75;

n = n - 100000;


case 1: //利润低于或等于100000元的,奖金可提10%;

case 0:

n1 = n1 + n / 100 * 10;

}

printf("%d\n", n1 );

}




水仙花

main()

{

int i,j,k,n;

for(n = 100; n < 1000; n++)

{

i= n / 100;//百位

j=n/10-i*10;//十位

k=n % 10;

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

{

printf("%d\n",    n);

}

}

}



完数

#include <stdio.h>

void main()

{

    int i,j,sum=1,N;

scanf("%d",&N);

    for(i=3;i<=N;i++)

    {

        sum=1;

        for(j=2;j<i;j++)

        {

            if( i%j==0)

                sum=sum+j;

        }

        if(i==sum)

        {

            printf("%d its factors are ",i);

            for( j=1; j<i; j++ )

            {

                if( i%j == 0 )

                    printf("%d ", j );

            }

            printf("\n");

        }

    }

}   


分数序列

main()

{

int i,j,k,n;

float sum = 0, a, b, temp;

scanf("%d", &k);

a = 2;

b = 1;

for(n = 1; n <= k; n++)

{

sum = sum + a / b;

temp = a;

a = a + b;

b = temp;

}

printf("%.2f", sum);

printf("\n");

}



猴子吃桃

main()

{

int i,a,sum, n;

scanf("%d",  &n);

sum = 1;

a = 1;

for(i = 1; i < n; i++)

{

a = (a + 1) * 2;

// printf("%d %d\n", a, sum);


}

printf("%d",  a);

printf("\n");

}



素数

#define NUM 4000

#include<stdio.h>

main()

{

int a[NUM]={1, 1}; //a[i] == 0 ,表示 i 是素数。

int n, i, j;

scanf("%d", &n);

// a[1] = 1;


for(i = 2; i <=n; i++)

{

if( a[i] == 0 )

{

for(j = 2 * i; j <= n; j = j + i) //去掉i的倍数,

{

a[j] = 1;

}

}

}

for(i = 2; i <=n; i++)

{

if( a[i] == 0 )

{

printf("%d\n", i);

}

}

}



选择法

#include <stdio.h>

main()

{   

int a[11],i,j,k,x;

for(i=1;i<11;i++)

scanf("%d",&a[i]);

//printf("\n");

for(i=1;i<10;i++)

k=i;

for(j=i+1;j<=10;j++)

if(a[j]<a[k])  k=j;

if(i!=k)

x=a[i]; a[i]=a[k]; a[k]=x;

}

}

for(i=1;i<11;i++)

printf("%d\n",a[i]);

}



3*3

main()

{

int a[3][3], i, j, sum;

for(i = 0;i < 3; i++)

{

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

{

scanf("%d", &a[i][j]);

}

}

sum = 0;

for(i = 0;i < 3; i++)

{

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

{

if( i == j)

{

sum = sum + a[i][j];

}

}

}

printf("%d ", sum);


sum = 0;

for(i = 0;i < 3; i++)

{

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

{

if( i == (2 - j))

{

sum = sum + a[i][j];

}

}

}

printf("%d", sum);


}



插入数组

#include <stdio.h>

main()

{

int a[10], i, n, pos, t;

for(i = 0; i < 9; i++) //输入一个已排好的9个元素的数组

{

scanf("%d", &a[i]); 

}

scanf("%d", &n);//输入一个数


for(i = 0; i < 9; i++) //找到一个刚好大于n位置

{

if( a[i] > n) 

{

break;

}

}


for(; i < 10; i++)  //后面的元素后移一个位置

{

t = a[i ];

a[i] = n;

n = t;

}


for(i = 0; i < 10; i++) //输出

{

printf("%d\n", a[i]); 

}

}


逆向输出

#define N 10

#include<stdio.h>

main()

{

int a[N], t, i;

for(i = 0; i < N; i++) //输入10个数字,

{

scanf("%d", &a[i]);

}



for(i = 0; i < N / 2; i++) //逆序, a[i] <> a[N - 1 - i]

{

t = a[i];

a[i] = a[N - 1 - i];

a[N - 1 - i] = t;

}


for(i = 0; i < N - 1; i++) //输入10个数字,

{

printf("%d ", a[i]);

}

printf("%d\n", a[i]);


}



最大公约数,最小公倍数

#include"stdio.h"

int gcd(int a,int b);//函数声明

int lcm(int a,int b);//函数声明

int main()

{

    int a,b;

    scanf("%d %d",&a,&b);

    printf("%d %d",gcd(a,b),lcm(a,b));

    return 0;

int gcd(int a,int b)

{

    if(b==0)

        return a;

    return gcd(b,a%b);//递归调用

}

int lcm(int a,int b)

{

    return a/gcd(a,b)*b;//利用公式

}



求方程根

#define DE 0.000001

#include<stdio.h>

#include<math.h>

main()

{

float a, b, c, d, x1, x2;

scanf("%f%f%f", &a, &b, &c); //Input a b c

d = b * b - 4 * a * c; //b^2-4ac

    //用三个函数分别求当b^2-4ac大于0.000001、等于0、和小于0时的根

if( d > DE) //当b^2-4ac大于0.000001

{

x1 = (-b + sqrt(d)) / (2.0 * a);

x2 = (-b - sqrt(d)) / (2.0 * a);

printf("x1=%.3f+%.3fi x2=%.3f-%.3fi", x1, 0.0, x2, 0.0);

}

else if( d > -DE) //当b^2-4ac等于0.000001

{

x1 = (-b ) / (2.0 * a);

x2 = (-b ) / (2.0 * a);

printf("x1=%.3f+%.3fi x2=%.3f-%.3fi", x1, 0.0, x2, 0.0);

}

else //当b^2-4ac小于-0.000001

{

x1 = (-b ) / (2.0 * a);

x2 = (sqrt(-d)) / (2.0 * a);

printf("x1=%.3f+%.3fi x2=%.3f-%.3fi", x1, x2, x1, x2);

}

}



void rm2( int a[][3], int n)

{

int i, j, t;

for(i = 0;i < n; i++)

{

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

{

t = a[i][j];

a[i][j] = a[j][i];

a[j][i] = t;

}

}

}




行列互换

main()

{

int a[3][3], i, j, sum;

for(i = 0;i < 3; i++)

{

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

{

scanf("%d", &a[i][j]);

}

}


rm2( a, 3);

// rm2(  a[][], int n)

for(i = 0;i < 3; i++)

{

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

{

printf("%d ", a[i][j]);

}

printf("\n");

}

}


字符串反序

void rm2( char a[])

{

int i, j, n, t;

for(i = 0; a[i] != 0 ; i++)

{

if(a[i] == ' ')

break;

}

n = i - 1;

j = i / 2;

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

{

t = a[i];

a[i] = a[n - i];

a[n - i] = t;

}

a[n + 1] = 0;


}


main()

{

char s[300];

gets(s);

rm2(s);

puts(s);

}


字符串由小到大

#include<stdio.h>

#include<string.h>

main()

{

// int a, b, c, t;

char a[80], b[80], c[80], t[80];


//scanf("%s%s%s", a, b, c);

gets(a);

gets(b);

gets(c);


if(strcmp(a, b) > 0)

{

strcpy(t, a);

strcpy(a, b);

strcpy(b, t);

}

if(strcmp(b, c) > 0)

{

strcpy(t, b);

strcpy(b, c);

strcpy(c, t);

}

if(strcmp(a, b) > 0)

{

strcpy(t, a);

strcpy(a, b);

strcpy(b, t);

}

// printf("%s\n%s\n%s\n", a, b, c);

puts(a);

puts(b);

puts(c);

}



输入十个整数

#include<stdio.h>

/*

input(int a[10], int n)

{

int i;

for(i = 0; i < n; i++)

{

scanf("%d", &a[i]);

}

}

*/


void input(int *a, int n)

{

int *i;

for(i = a; i < a + n; i++)

{

scanf("%d", i);

}

}


void output(int *a, int n)

{

int *i;

for(i = a; i < a + n; i++)

{

printf("%d ", *i);

}

}


void proc(int *a, int n)

{

int max, min, p_max, p_min, tmp, i;


min = a[0];

p_min = 0;

for(i = 1; i < n; i++)

{

if( min > a[i])

{

min = a[i];

p_min = i;

}

}


tmp = a[0];

a[0] = a[p_min];

a[p_min] = tmp;

//将其中最小的数与第一个数对换,


max = a[0];

p_max = 0;

for(i = 1; i < n; i++)

{

if( max < a[i])

{

max = a[i];

p_max = i;

}

}

tmp = a[9];

a[9] = a[p_max];

a[p_max] = tmp;

//把最大的数与最后一个数对换

}


main()

{

int a[10];

input(a, 10);

proc(a, 10);

output(a, 10);

}


注意事项:




参考代码:

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论