1:企业发放奖金根据利润提成。利润不高于十万时,奖金可提10%,高于十万时,低于十万部分不变,高于十万部分可提7.5%,20万到40万时,高于20万部分可提5%,40万到六十万时高于四十万部分可提3%,60万到100万,高于60万部分可提1.5%,超过100万按1%提成。键盘输入当月利润 i,求发放的奖金
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int i;
int profit;
printf("输入当月利润i:") ;
scanf("%d",&i);
if(i<=100000){
profit = i*0.1;
}else if(i<=200000){
profit=100000*0.1+(i-100000)*0.075;
}else if(i<=400000){
profit =100000*0.1+100000*0.075+(i-200000)*0.05;
}else if(i<=600000){
profit =100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
}else if(i<=1000000){
profit =100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.15;
}else if(i>1000000){
profit =100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.15+(i-1000000)*0.01;
}
printf("%d",profit);
return 0;
}
2:一个整数它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问数是多少
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int x;
int i;
int j;
int temp=0;
for(int k=1;k<1000;k++){
if(temp == 1){
x=i-100;
printf("x为%d\n",x);
}
i=k*k;
j=i+168;
temp=0;
for(int n=1;n<1000;n++){
if(n*n == j){
temp=1;
break;
}
}
}
return 0;
}
3:输入某年某月某日,判断这一天是这一年的第几天?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int year,month,day;
int temp=0;
int sum=0;
printf("请输入年月日");
scanf("%d,%d,%d",&year,&month,&day);
//判断为闰年
if((year%4==0 && year%100!=0) || year%400==0){
printf("%d年为闰年,所有有366天\n",year);
temp=1;
}
switch(month){
case 1:sum=day;break;
case 2:sum=31+day;break;
case 3:sum=31+28+day;break;
case 4:sum=31+28+31+day;break;
case 5:sum=31+28+31+30+day;break;
case 6:sum=31+28+31+30+31+day;break;
case 7:sum=31+28+31+30+31+30+day;break;
case 8:sum=31+28+31+30+31+30+31+day;break;
case 9:sum=31+28+31+30+31+30+31+31+day;break;
case 10:sum=31+28+31+30+31+30+31+31+30+day;break;
case 11:sum=31+28+31+30+31+30+31+31+30+31+day;break;
case 12:sum=31+28+31+30+31+30+31+31+30+31+30+day;break;
}
if(temp==1 && month>2){
sum++;
}
printf("%d",sum);
return 0;
}
4:输入三个整数想,x,y,z,三个数从小到大输出
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int x,y,z;
int temp;
scanf("%d %d %d",&x,&y,&z);
if(x>y){
temp=x;
x=y;
y=temp;
}
if(y>z){
temp=y;
y=z;
z=temp;
}
if(x>y){
temp=x;
x=y;
y=temp;
}
printf("%d %d %d",x,y,z);
return 0;
}
5.输出九九乘法表
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
for(int i=1;i<10;i++){
for(int j=1;j<=i;j++){
printf("%dx%d=%-3d",j,i,j*i);
if(j==i) printf("\n");
}
}
return 0;
}
6有一对兔子,从出生第三个月之后,每个月生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子不死,求每个月兔子的数量是多少?一年之后是多少?
#include<stdio.h>//斐波那契
int main() {
int f1=1,f2=1;
int sum,month;
scanf("%d",&month);
for(int i=1;i<=month;i++){
if(i==1 || i==2){
printf("第%d个月有兔子%d对\n",i,1);
continue;
}
sum=f1+f2;
f1=f2;
f2=sum;
printf("第%d个月有兔子%d对\n",i,sum);
}
return 0;
}
7输出101--200之间的素数
#include<stdio.h>
int main() {
int temp=0;
for(int i=101; i<200; i++) {
for(int j=2; j<100; j++) {
if(i%j == 0) {
temp=0;
break;
}
else {
temp=1;
}
}
if(temp==1) printf("%d\n",i);
}
return 0;
}
8打印100-1000内的水仙花数
#include<stdio.h>
int main() {
for(int i=100;i<1000;i++){
int a=i/100;
int b=i/10%10;
int c=i%10;
if((a*a*a+b*b*b+c*c*c)==i){
printf("%d\n",i);
}
}
return 0;
}
9将一个正整数分解因数。例如:输入90,打印90=2*3*3*5
#include"stdio.h"
int main(){
int n,i;
printf("请输入整数:");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++){
while(n%i==0){
printf("%d",i);
n/=i;
if(n!=1){
printf("*");
}
}
}
}
#include<stdio.h>
int main() {
int a;
int count=0;
scanf("%d",&a);
printf("%d=",a);
for(int i=2;i<=a;i++){
while(i!=a){
if(a%i == 0){
printf("%d*",i);
a=a/i;
count++;
}else{
break;
}
}
}
if(count==0){
printf("%d*1",a);
}else{
printf("%d",a);
}
return 0;
}
10利用条件运算符完成。>=90的同学用A表示,60-89分用B表示,60分以下用C表示
#include<stdio.h>
int main() {
int n;
scanf("%d",&n);
(n>=90)?printf("%d:A",n):((n>=60)?printf("%d:B",n):printf("%d:C",n));
return 0;
}
11辗除法实现输入两个正整数m和n,求最大公约数和最小公倍数。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
int a,b;
int max,min;
scanf("%d %d",&a,&b);
int m=a;
int n=b;
while(a%b!=0){
int temp=a%b;
if(temp!=0){
a=b;
b=temp;
}
}
max=b;
min=m*n/max;
printf("最大公约数为%d,最小公倍数为%d",max,min);
return 0;
}
12输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
int a;
int eng=0,spa=0,num=0,other=0;
while((a=getchar())!='\n') {
if((a>=97&&a<=122) || (a>=65&&a<=90)) {
eng++;
} else if(a==32) {
spa++;
} else if(a>=49&&a<=57) {
num++;
} else {
other++;
}
}
printf("英文字母有%d个,空格有%d个,数字有%d个,其他字符有%d个",eng,spa,num,other);
return 0;
}
13求a+aa+aaa+aaaa+aaaaa+...+aa...a的值,a是一个数字及其变式
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
int n,a;
int temp=0,sum=0;
printf("请输入多少项,值为多少。\n");
scanf("%d %d",&n,&a);
for(int i=0;i<n;i++){
temp=temp*10+a;
sum+=temp;
}
printf("%d",sum);
return 0;
}
14一个数恰好是他的因子之和,这个数就被称为“完数”。例如;6=1+2+3.求1000内的完数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
int sum=0;
for(int i=1; i<1000; i++) {
for(int j=1; j<i; j++) {
if(i%j == 0) {
sum=sum+j;
}
}
if(sum==i) {
printf("%-5d",i);
}
sum=0;
}
return 0;
}
15一球从100米高度自由落下,每次落地反弹后跳回原来高度的一半,再落下,求十次落地后,共经过多少米?第10次多高?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
float n=100;
float temp=0;
float bon=0;
for(int i=1; i<=10; i++) {
temp+=n+bon;
n=n/2;
bon=n;
printf("第%d次落地后共经过%f米\n",i,temp);
}
printf("十次落地后共经过%f米\n",temp);
printf("第十次%f",bon);
return 0;
}
16.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时就只剩一个桃子了。求第一天共摘多少个桃子。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
int n=1;
int sum=0;
int eat=0;
for(int i=9;i>0;i--){
sum=(n+1)*2;
n=sum;
}
printf("第一天共摘取的桃子数量为%d",sum);
return 0;
}
17.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。比赛名单顺序。a不和x比,c说不和x,z比,请找出三队选手的比赛名单。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
char a,b,c;
for(a='x';a<='z';a++){
for(b='x';b<='z';b++){
if(a!=b){
for(c='x';c<='z';c++){
if(a!=c&&b!=c){
if(a!='x'&&c!='x'&&c!='z'){
printf("a对%c,b对%c,c对%c",a,b,c);
}
}
}
}
}
}
return 0;
}
18.打印菱形,数字类图形
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
for(int i=1;i<=5;i++){
for(int j=1;j<=5-i;j++){
printf(" ");
}
for(int k=1;k<=(2*i-1);k++){
printf("*");
}
printf("\n");
}
for(int i=4;i>=1;i--){
for(int j=1;j<=5-i;j++){
printf(" ");
}
for(int k=1;k<=(2*i-1);k++){
printf("*");
}
printf("\n");
}
return 0;
}
19.有一序列 2/1,3/2,5/3,8/5,13/8,21/13...求这个数列的前20项之和。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
float a=2,b=1,t;
float sum=0;
for(int i=1; i<=20; i++) {
sum+=a/b;
t=a;
a=a+b;
b=t;
}
printf("%f",sum);
return 0;
}
20.1+2!+3!+4!+...+20!的和?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
double mul=1;
double sum=0;
for(int i=1;i<=20;i++){
for(int j=1;j<=i;j++){
mul*=j;
}
sum+=mul;
mul=1;
}
printf("%lf",sum);
return 0;
}
21.将一个数组逆序输出
//编程34:将一个数组逆序输出
//程序分析:将第一个和最后一个互换
#include"stdio.h"
#define N 5
main(){
int a[N]={1,4,7,5,9},i,temp1;
for(i=0;i<N;i++){//原数组输出
printf("%3d",a[i]);
}
printf("\n");
for(i=0;i<N/2;i++)//取数组的一半值对应下标,对应互换,奇数偶数都符合
{
temp1=a[i];//数值互换
a[i]=a[N-1-i];
a[N-i-1]=temp1;
}
for(i=0;i<N;i++)//一位数组输出
printf("%3d",a[i]);
return 0;
}
22.杨辉三角,输出前十行
//编程35:杨辉三角,输出前十行
/* 1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*/
#include"stdio.h"
main() {
int i,j,a[10][10];//定义
for(i=0; i<10; i++) { //特殊情况
a[i][0]=1;
a[i][i]=1;
}
for(i=2; i<10; i++) //规律 某个位置的值=该值上面数值+该值上方左边的数值
for(j=1; j<i; j++)
a[i][j]=a[i-1][j]+a[i-1][j-1]; //[i][j]不要写反了
for(i=0; i<10; i++) { //二维数组输出方式
for(j=0; j<=i; j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}
23.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子分成5份,多了一个,这只猴子将多了的一个仍入海中,拿走了一份。第二只猴子把剩下的桃子又分均分成5份,又多了一个,同样的扔海中了,拿走了一份,第三、第四、第五都是这样做的。求海滩原来最少有多少个?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
int fen=1;
int shen=0;
int sum=0;
int i=1;
while(1){
shen=4*fen;
for(i=1;i<=5;){
if(shen%4==0){
sum=shen/4*5+1;
shen=sum;
i++;
}else{
break;
}
}
if(i==6){
break;
}
fen++;
}
printf("%d",sum);
return 0;
}
24.10进制-8进制
#include <stdio.h>
/*10进制转换为8进制*/
void fun(int a)
{
int chu, yu;
chu=a/8;
yu=a%8;
if(chu==0)
{
printf("%d",yu);
}
else
{
fun(chu);
printf("%d",yu);
}
}
int main()
{
int x;
printf("请输入10进制数:");
scanf("%d",&x);
printf("转化后的8进制为:");
fun(x);
return 0;
}
25.8进制-10进制
#include <stdio.h>
#include <math.h>
int Trans(int n)
{
int sum = 0;
int i = 0;
while (n) {
sum += (n%10)*pow(8, i++);
n /= 10;
}
return sum;
}
int main(void)
{
int n;
printf("请输入一个八进制数:");
scanf("%d", &n);
printf("转化为十进制为:");
printf("%d", Trans(n));
}
26.10转16进制
#include <stdio.h>
/*10进制转换为16进制*/
int sum(int a,char b[])
{
int chu, yu;
chu=a/16;
yu=a%16;
if(chu==0)
printf("%c",b[yu]);
else
{
sum(chu,b);
printf("%c",b[yu]);
}
}
int main()
{
int a;
char b[17]="0123456789ABCDEF";
printf("请输入10进制数:");
scanf("%d",&a);
printf("转化后的16制数为:");
sum(a,b);
return 0;
}
27.输入一个整数n,符号的行数(保证n是大于1的奇数),输出沙漏符号,使用“*”打印
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
int n;
scanf("%d",&n);
for(int i=1;i<=(n/2+1);i++){
for(int j=1;j<=i-1;j++){
printf(" ");
}
for(int k=1;k<=(n-(i-1)*2);k++){
printf("*");
}
printf("\n");
}
for(int i=1;i<=(n-(n/2+1));i++){
for(int j=1;j<=(n-2*i-1)/2;j++){
printf(" ");
}
for(int k=1;k<=(2*i+1);k++){
printf("*");
}
printf("\n");
}
return 0;
}