今天学习
C的存储类
1.auto:只能修饰局部变量。
2.register:定义存储在寄存器中的局部变量,定义 ‘register’ 并不意味着变量将被存储在寄存器中,它意味着变量可能存储在寄存器中,这取决于硬件和实现的限制。
3.static:使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。
4.exter:用来在另一个文件中声明一个全局变量或函数。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。
每日一练
题一
1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<stdio.h>
int main()
{
int i,j,k;
int cnt=0;
for(i=1;i<5;i++)
{
for(j=1;j<5;j++)
{
for(k=1;k<5;k++)
if(i!=j&&j!=k){
cnt++;
printf("%d%d%d\n",i,j,k);
}
}
}
printf("能组成%d个",cnt);
return 0;
}
题二
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成1.5%;
高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
#include<stdio.h>
int main()
{
double I;
double i=I;
double b1,b2,b4,b6,b10,b;
printf("当月利润是:\n");
scanf("%lf",&i);
b1=100000*0.1;
b2=b1+100000*0.075;
b4=b2+200000*0.05;
b6=b4+200000*0.03;
b10=b6+400000*0.015;
if(i<=100000){
b=i*0.1;
}else if(i<=200000){
b=b1+(i-100000)*0.075;
}else if(i<=400000){
b=b2+(i-200000)*0.05;
}else if(i<=600000){
b=b4+(i-400000)*0.03;
}else if(i<=1000000){
b=b6+(i-600000)*0.015;
}else if(i>1000000){
b=b10+(i-1000000)*0.01;
}
printf("提成为:%f",b);
return 0;
}
题目三
一个整数加上100是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#include<stdio.h>
int main()
{
int x,i,j,n,m;
for(i=1;i<=168;i++){
if(168%i==0)
{
j=168/i;
if(i>j&&(i+j)%2==0&&(i-j)%2==0)
{
m=(i+j)/2;
n=(i-j)/2;
x=n*n-100;
printf("%d+100=%d*%d\n",x,n,n);
printf("%d+268=%d*%d\n",x,m,m);
}
}
}
return 0;
}