解题思路:
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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复