1.百元买百鸡问题:公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法
#include <stdio.h>
int main(){
int x,y,z;
int i,j;
x=100/5;
y=100/3;
for(i=1;i<x;i++){
for(j=1;j<y;j++){
z=100-i-j;
if((5*i+3*j+z/3)==100&&(z%3==0)){
printf("i=%d,j=%d,k=%d\r\n",i,j,z);
}
}
}
return 0;
}
2.打印正三角的数字
#include <stdio.h>
int main(){
int i,j,num;
printf("输入一个数: ");
scanf("%d",&num);
//总行数
for(j=1;j<=num;j++){
//1.打印空格
for(i=1;i<=num-j;i++)
printf(" ");
//2.打印前面一半
for(i=1;i<=j;i++)
printf("%d",i);
//3.打印后面一半
for(i=j-1;i>=1;i--)
printf("%d",i);
printf("\n");
}
return 0;
}
3.打印倒三角的数字
#include <stdio.h>
int main(){
int i,j,num;
printf("输入一个数: ");
scanf("%d",&num);
//总行数
for(j=num;j>=1;j--){
//1.打印空格
for(i=1;i<=num-j;i++)
printf(" ");
//2.打印前面一半
for(i=1;i<=j;i++)
printf("%d",i);
//3.打印后面一半
for(i=j-1;i>=1;i--)
printf("%d",i);
printf("\n");
}
return 0;
}
4.打印菱形四边形
#include <stdio.h>
int main(){
int i,j,num;
printf("输入一个数: ");
scanf("%d",&num);
//总行数
for(j=1;j<=num;j++){
//1.打印空格
for(i=1;i<=num-j;i++)
printf(" ");
//2.打印前面一半
for(i=1;i<=j;i++)
printf("%c",'*');
//3.打印后面一半
for(i=j-1;i>=1;i--)
printf("%c",'*');
printf("\n");
}
for(j=num-1;j>=1;j--){
//1.打印空格
for(i=1;i<=num-j;i++)
printf(" ");
//2.打印前面一半
for(i=1;i<=j;i++)
printf("%c",'*');
//3.打印后面一半
for(i=j-1;i>=1;i--)
printf("%c",'*');
printf("\n");
}
return 0;
}
5.对数组进行排序
#include <stdio.h>
int main(){
int arr[10]={3,5,8,9,4,6,7,2,1,0};
int i,j,stat=0;
int len=sizeof(arr)/sizeof(arr[0]);
for(i=0;i<len;i++){
for(j=0;j<len-i-1;j++){
int temp;
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
stat=1;
}
}
if(stat==0){
break;
}
else{
stat=0;
}
}
for(i=0;i<len;i++){
printf("%d ",arr[i]);
}
return 0;
}
6.显示一个中文字符
#include <stdio.h>
int main()
{
//中
char buff[] = { 0x8, 0x8, 0x3E, 0x2A, 0x2A, 0x3E, 0x8, 0x8 };
char tmp;
int i, j;
for (i = 0; i<8; i++)
{
tmp = buff[i];
for (j = 0; j<8; j++){
// 0x80 和 0x01
if (tmp & 0x80){
printf(".");
}
else{
printf(" ");
}
tmp = tmp << 1;
}
printf("\n");
}
return 0;
}
#include <stdio.h>
/*-- 文字: 中 --*/
/*-- 宋体 12; 此字体下对应的点阵为:宽 x 高=16x16 --*/
char font[] = {
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08,
0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
};
char font_2[] =
{
/*-- 文字: 中 --*/
/*-- 宋体 18; 此字体下对应的点阵为:宽 x 高=24x24 --*/
0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00,
0x38, 0x18, 0x3F, 0xFF, 0xFC, 0x38, 0x38, 0x38, 0x18, 0x38, 0x38, 0x18, 0x38, 0x38, 0x18, 0x38,
0x38, 0x18, 0x38, 0x38, 0x18, 0x38, 0x38, 0x1F, 0xFF, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x30,
0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00,
0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00,
};
int main()
{
char tmp;
int i, j, cnt = 0;
int font_size = 24;//字体大小---可变的
int font_cnt = font_size / 8; //计算倍数
for (i = 0; i<font_size*font_cnt; i++)
{
tmp = font_2[i];
for (j = 0; j<8; j++)
{
if (tmp & 0x80)
{
printf("*");
}
else
{
printf(" ");
}
tmp = tmp << 1;
cnt++; //记录循环的次数
}
if (cnt == font_size){
printf("\n"); // y , x
cnt = 0;
}
}
return 0;
}
7.大小写互相转换
#include <stdio.h>
int main()
{
//printf("A=%d\n",'A'); //65
//printf("a=%d\n",'a'); //97
//大小写相差 32
char data;
printf("请输入想要转换大小写的字母: ");
scanf("%c", &data);
printf("%c\n", data ^ 32);
printf("%c\n", data ^ 0x20);
return 0;
}
8.将一个整数转换为二进制
#include <stdio.h>
int main(){
int i,num=115200;
char arr[32];
char data;
for(i=0;i<32;i++){
if(num&0x01){
arr[32-i-1]=1;
}
else{
arr[32-i-1]=0;
}
num>>=1;
}
for(i=0;i<32;i++){
if(i%4==0){
printf(" ");
}
printf("%d",arr[i]);
}
return 0;
}
9.定义一个数组,输入字符串,计算出字符串长度
#include <stdio.h>
int main(){
char str[100];
int i=0;
scanf("%s",str);
while(str[i]!='\0'){
i++;
}
printf("i=%d \r\n",i);
return 0;
}
10.输入一串字符串将其中的大小写互转
#include <stdio.h>
int main(){
char str[100];
int i=0;
printf("Please Input data: ");
scanf("%s",str);
while(str[i]!='\0'){
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){
str[i]^=32;
}
i++;
}
printf("String = %s\r\n",str);
return 0;
}