05.1 C语言数据类型
1、编程练习
#include<stdio.h>
int main(int argc,char const *argv[]){
int a,i,j,k;
int cnt = 0;
// scanf("%d",&a);
a = 2;
for(i = a;i <= a+3;i++){
for(j = a;j <= a+3;j++){
for(k = a;k <= a+3;k++){
if(i!=j && i!=k && j!=k){
printf("%d%d%d",i,j,k);
cnt++;
if(cnt % 6 == 0){
printf("\n",cnt);
}else{
printf(" ");
}
}
}
}
}
return 0;
}
#include<stdio.h>
int main(int argc,char const *argv[]){
int n,min=1,i,j,k,t;
int p = 0,q = 1,sum = 0;
scanf("%d",&n);
//获取n位数最小值
for(i = 1;i < n;i++){
min *= 10;
}
// printf("%d",min);
for(i = min;i < min * 10;i++){
//对每一个数字进行判断
p = i;
sum = 0;
for(j = 1;j <= n;j++){
t = p % 10; //获取最低位
p /= 10;
q = 1;
for(k = 1;k <= n ;k++){
q *= t;
}
sum += q;
}
if(sum == i){
printf("%d\n",i);
}
}
return 0;
}
思路:
1、获取最小值和最大值
2、逐个拆解每一位,然后每一位进行次方
*i = 0,i < n进行了n次,i = 1,i < n循环体进行了n-1次
#include<stdio.h>
int main(int argc,char const *argv[]){
int i,j,t;
for(i = 1;i <= 9;i++){
for(j = 1;j <= i;j++){
t = i*j;
printf("%d*%d=%d",j,i,j*i);
if(t > 9){
printf(" ");
}else{
printf(" ");
}
}
printf("\n");
}
return 0;
}
#include<stdio.h>
int main(int argc,char const *argv[]){
int n,m,i,j,isPrime,cnt,sum;
scanf("%d %d",&m,&n);
cnt = 0;
sum = 0;
for(i = m;i <= n;i++){
isPrime = 1;
if(i == 1){
isPrime = 0;
}
for(j = 2;j < i;j++){
if(i % j == 0){
isPrime = 0;
break;
}
}
if(isPrime){
sum += i;
cnt++;
}
}
printf("%d %d",cnt,sum);
return 0;
}
#include<stdio.h>
int main(int argc,char const *argv[]){
int i,n;
double t;
double a = 2.0;
double b = 1.0;
double sum = 0;
scanf("%d",&n);
for(i = 1;i < n+1;i++){
sum += a/b;
t = a;
a = a + b;
b = t;
}
printf("%.2lf",sum);
return 0;
}
输出浮点数的后两位使用:%.2lf
#include<stdio.h>
int main(int argc,char const *argv[]){
int n;
scanf("%d",&n);
int i = n;
int mask = 1;
int t;
if(n < 0){
printf("fu ");
n = -n;
}
while(i > 9){
mask *= 10;
i /= 10;
}
do{
t = n / mask;
n = n % mask;
switch(t){
case 0:
printf("ling");
break;
case 1:
printf("yi");
break;
case 2:
printf("er");
break;
case 3:
printf("san");
break;
case 4:
printf("si");
break;
case 5:
printf("wu");
break;
case 6:
printf("liu");
break;
case 7:
printf("qi");
break;
case 8:
printf("ba");
break;
case 9:
printf("jiu");
break;
}
if(mask > 9){
printf(" ");
}
mask /= 10;
}while(mask > 0);
return 0;
}
思路:和从最高位分解数字一样。
#include<stdio.h>
int main(int argc,char const *argv[]){
int a = 0,n = 0,sum = 0;
int i,t = 0;
scanf("%d %d",&a,&n);
for(i = 0;i < n;i++){
t = t * 10 + a;
sum += t;
}
printf("%d",sum);
return 0;
}