目录
1、打印九九口诀表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
结果:用循环方式,格式如上
本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。
思路:用循环嵌套实现。
#include<stdio.h>
int main()
{
int i,j,n; //i为第二个乘数,j为第一个乘数
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++) //第一个乘数<第二个乘数
printf("%2d*%d=%2d",j,i,i*j);
printf("\n");
}
return 0;
}
2、 两个数的简单计算器
对2个整数进行加、减、乘、除或求余运算
输入样例1:
-2 / 2
输出样例1:
-1
输入样例2:
3 …… 6
输出样例2:
ERROR
要求:保证除法和求余的分母非零。
#include<stdio.h>
int main()
{
int a,b;
char c;
scanf("%d%c%d",&a,&c,&b);
if(c=='+')
printf("%d",a+b);
else if(c=='-')
printf("%d",a-b);
else if(c=='*')
printf("%d",a*b);
else if(c=='/'&&b>0)
printf("%d",a/b);
else if(c=='%'&&b>0)
printf("%d",a%b);
else
printf("ERROR");
return 0;
}
3、求整数段和
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。
输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行。
最后在一行中按Sum = X的格式输出全部数字的和X。
思路:用for循环输出数字和求和;用if语句判断是否换行。
#include<stdio.h>
int main()
{
int a,b,c=0,i,sum=0;
scanf("%d,%d",&a,&b);
for(i=a;i<=b;i++)
{
printf("%d ",i); //输出a到b所有数字
c++;
sum+=i;
if(c%5==0||i==b) //每五个数字占一行
{
printf("\n");
}
}
printf("Sum = %d",sum);
}
4、个位数统计
输入一个N(100000>N>10000),统计每个数出现的次数
输入样例:
100311
输出样例:
0:2
1:3
3:1
要求:用数组,代表0的个数为2,1的个数为3,3的个数为1;
思路:难点在于如何把n的每个数字存入数组,用循环去位的方式实现。用for循环统计每个输出出现次数并输出。
#include<stdio.h>
int main()
{
int n,i;
int a[10]={0};
scanf("%d",&n);
while(n)
{
a[n%10]++;
n/=10;
} //将n中的数字存入数组a中
for(i=0;i<10;i++) //统计每个数出现的次数
{
if(a[i]) printf("%d:%d\n",i,a[i]);
}
return 0;
}