1.Switch练习
#include<stdio.h>
int main()
{
intshu_zi=0;
printf("请输入一个数:");
scanf("%d",&shu_zi);
switch(shu_zi%2)
{
case0:
printf("结果为假\n");
break;
case1:
printf("结果为真\n");
break;
default:
printf("结果不能为负\n");
break;
}
}
2.票价
#include<stdio.h>
int main()
{
intjia_ge=30,ge_shu=3;
printf("请输入价格和张数:");
scanf("%d%d",&jia_ge,&ge_shu);
if(ge_shu<=0)
{
printf("张数不合理:\n");
}
printf("请输入价格和张数:");
scanf("%d%d",&jia_ge,&ge_shu);
if(ge_shu<=0)
{
printf("张数不合理:\n");
}
printf("请输入价格和张数:");
scanf("%d%d",&jia_ge,&ge_shu);
if(ge_shu<=0)
{
printf("张数不合理:\n");
return0;
}
printf("总价格是%d\n",jia_ge*ge_shu);
return0;
}
判断个数
#include<stdio.h>
int main()
{
intjia_ge=0,ge_shu=0;
printf("请输入价格和个数:");
scanf("%d%d",&jia_ge,&ge_shu);
if(0==ge_shu)
{
printf("张数不能为0\n");
}
elseif (ge_shu>0)
{
if(0==jia_ge)
{
printf("价格不能为0\n");
}
elseif (jia_ge>0)
{
printf("总票价是%d\n",jia_ge*ge_shu);
}
else{
printf("价格不能为负\n");
}
}
else{
printf("张数不能为负\n");
}
return0;
}
票价终极版:判断次数
#include<stdio.h>
int main()
{
intjia_ge=0, ge_shu=0,xun_huan=0;
for(xun_huan=0;xun_huan<=2;xun_huan++)
{
printf("请输入价格和张数:");
scanf("%d%d",&jia_ge,&ge_shu);
if(ge_shu<=0){
printf("张数不合理\n");
continue;//当张数不合理的情况下立刻进行下一次循环
}
if(jia_ge<=0){
printf("价格不合理\n");
continue;
}
break;//避免价格和张数都合理的情况下再循环
}
if(xun_huan<3){//检查3次是否都输错了
printf("总价格是%d\n",jia_ge*ge_shu);
}
else{
printf("好差劲哦\n");
}
return0;
}
3.摘花
#include<stdio.h>
int main()
{
int ge_shu=0,xun_huan=0,zhuang_tai=0;
printf("请输入个数:");
scanf("%d",&ge_shu);
for(xun_huan=0;xun_huan<ge_shu;xun_huan++)
{
if(0==zhuang_tai){
printf("她爱我\n");
zhuang_tai=1;//确保相邻两次不一样
}
elseif(1==zhuang_tai)
{
printf("她不爱我\n");
zhuang_tai=0;
}
}
return 0;
}
4.素数
#include<stdio.h>
#include<math.h>
int main()
{
intshu_zi=0,xun_huan=0;
floatgen=0;
printf("请输入一个数:");
scanf("%d",&shu_zi);
gen=sqrt(shu_zi);
for(xun_huan=2;xun_huan<=gen;xun_huan++)
{
if(!(shu_zi%xun_huan))//用户给的数字可以整除当前列举的数字,说明不是素数
{
break;
}
}
if(xun_huan<=gen)//根据判断循环没结束
{
printf("数字%d不是素数\n",shu_zi);
}
else//循环结束了
{
printf("数字%d是素数\n",shu_zi);
}
return0;
}
10到100间的素数
#include<stdio.h>
#include<math.h>
int main()
{
intxun_huan_1=0,xun_huan_2=0;
float gen;
for(xun_huan_1=10;xun_huan_1<=100;xun_huan_1++)//10到100之间的数
{
gen=sqrt(xun_huan_1);
for(xun_huan_2=2;xun_huan_2<=gen;xun_huan_2++)
{
if(!(xun_huan_1%xun_huan_2))//用户给的数字可以整除当前列举的数字,说明不是素数
{
break;
}
}
if(xun_huan_2>=gen)//根据判断循环没结束
{
printf("%d",xun_huan_1);
}
}
printf("\n");
return0;
}
5.乘法表
#include<stdio.h>
int main()
{
int xun_huan_1=0,xun_huan_2=0;
for(xun_huan_1=1;xun_huan_1<=9;xun_huan_1++)//行循环
{
for(xun_huan_2=1;xun_huan_2<=xun_huan_1;xun_huan_2++)//列循环
{
printf("%d*%d=%d",xun_huan_1,xun_huan_2,xun_huan_1*xun_huan_2);
}
printf("\n");
}
return 0;
}
6.面包买法
#include<stdio.h>
int main()
{
intxun_huan_1=0,xun_huan_2=0,shang_xian=0;
for(xun_huan_1=0;xun_huan_1<10;xun_huan_1++)
{
shang_xian=(200-20*xun_huan_1)/25;//防止负数
for(xun_huan_2=0;xun_huan_2<shang_xian;xun_huan_2++)
{
if(!((200-10*xun_huan_1-25*xun_huan_2)%30))//看30g的面包能买几个
{
printf("10g的面包买%d个,25g的面包买%d个,30g的面包买%d个\n",xun_huan_1,xun_huan_2,(200-10*xun_huan_1-25*xun_huan_2)/30);
}
}
}
return0;
}
7.猜数游戏
#include<stdio.h>
int main()
{
intshu_zi_1=0,shu_zi_2=0;
printf("请输入一个数:");
scanf("%d",&shu_zi_1);
while(shu_zi_1!=shu_zi_2)
{
printf("请猜一个数:");
scanf("%d",&shu_zi_2);
if(shu_zi_2>shu_zi_1)
{
printf("猜大了\n");
}
else if(shu_zi_2<shu_zi_1)
{
printf("猜小了\n");
}
else{
printf("猜对了\n");
}
}
return0;
}
8.scanf正确读入数据
#include<stdio.h>
int main()
{
intshu_zi_1=0,shu_zi_2=0;
printf("请输入一个数:");
scanf("%d",&shu_zi_1);
while(!(scanf("%d",&shu_zi_1)))//利用读入错误的情况下会返回0
{
scanf("%*[^\n]");
scanf("%*c");
printf("请再输入数据:\n");//确保读入一个正确格式的数据
}
scanf("%*[^\n]");//确保在正确读入的情况下再清理,比如输入6d时
scanf("%*c");
printf("请输入一个数:");
scanf("%d",&shu_zi_2);
printf("%d%d\n",shu_zi_1,shu_zi_2);
return0;
}
9.统计字符出现的次数
#include<stdio.h>
int main()
{
intshu_zi=0,ci_shu[10]={0},xun_huan=0;
printf("请输入一个数:");
scanf("%d",&shu_zi);
/*while(shu_zi)
{
ci_shu[shu_zi%10]++;
shu_zi/=10;
}*/
do{//防止输入0时,不运行,所以用do...while
ci_shu[shu_zi%10]++;
shu_zi/=10;
}
while(shu_zi);
for(xun_huan=0;xun_huan<=9;xun_huan++)
{
if(ci_shu[xun_huan])
{
printf("数字%d出现了%d次\n",xun_huan,ci_shu[xun_huan]);
}
}
return 0;
}
#include <stdio.h>
int func1(int zheng_shu, int shu_zi);//返回次数
int func2(int zheng_shu);
int main()
{
intnum = 0;
printf("请输入一个整数: ");
scanf("%d",&num);
func2(num);
return0;
}
int func1(int zheng_shu, int shu_zi)//返回次数
{
intci_shu = 0;
while(zheng_shu)
{
if(shu_zi==zheng_shu%10)
ci_shu++;
zheng_shu=zheng_shu/10;
}
returnci_shu;
}
int func2(int zheng_shu)
{
inti = 0, j = 0;
intstr[10] = {0};
intshu_zi = 0;
inta[10] = {0};
for(shu_zi= 0; shu_zi < 10; shu_zi ++){
str[shu_zi]= func1(zheng_shu, shu_zi); //str <= ci_shu
if(str[shu_zi]){
str[i]= str[shu_zi];
a[i]= shu_zi;
i++;
}
}
/*
for(shu_zi= 0; shu_zi < 10; shu_zi ++)
{
str[i]= func1(zheng_shu, shu_zi);
if(str[i]){
a[i]= shu_zi;
i++;
}
}
*/
for(j= 0; j < i ; j ++)
printf(" %d 出现 %d 次\n",a[j], str[j]);
printf("\n");
}
/*
//1.求一个整数中某个数字出现的个数
//2.输出该整数中含有的不同数字
#include <stdio.h>
int fun1(int zheng_shu,int shu_zi);//求一个整数中某个数字出现的个数
void fun2(int zheng_shu);//输出该整数中含有的不同数字
int main()
{
intn,num;
charstr1[10]={0},str2[10]={0};
printf("请输入一个整数:");
scanf("%d",&num);
printf("请输入要统计的数字:");
scanf("%d",&n);
printf("%d含有数字:\n",num);
fun2(num);
printf("\n");
printf("%d有 %d 个 %d\n",num,fun1(num,n),n);
return0;
}
int fun1(zheng_shu,shu_zi)
{
inti=0;
while(zheng_shu)
{
if(shu_zi==zheng_shu%10)
i++;
zheng_shu=zheng_shu/10;
}
returni;
}
void fun2(int zheng_shu)
{
inti=0,n=0;
intstr[10]={0};
for(i=0;i<10;i++)
{
staticint j=0;
while(i==zheng_shu%10){//用0~9数和输入的数每位上的数比较,
str[j]=i; //若相等就把这个数字保存到数组str中,
j++; //while就避免了数重复保存到str
i=0; //找到相同的数后,再判断更高位是否相同,在此要0开始比较
zheng_shu=zheng_shu/10;
}
continue;
}
for(n=0;n<j;n++)
printf("%d",str[n]);
}
*/
10.银行利率计算
#include<stdio.h>
int main()
{
intli_lv=0,nian=0,xun_huan=0,ge_shu=0;
floatqian=100.0f;
printf("请输入利率和年数:");
scanf("%d%d",&li_lv,&nian);//打印表头
printf("年%7d%%\n",100+li_lv);
for(xun_huan=1;xun_huan<=nian;xun_huan++)