1、给定两个整数a和b (0 < a,b < 10,000),计算a除以b的整数商和余数
#include <stdio.h> int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int m = a/b; int n = a%b; printf("%d %d\n", m, n); return 0; }
2、键盘输入的两个数的大小关系
#include <stdio.h> int main() { int num1 = 0; int num2 = 0; while(scanf("%d%d", &num1, &num2) != EOF) { if(num1>num2) printf("%d>%d\n", num1, num2); else if(num1<num2) printf("%d<%d\n", num1, num2); else printf("%d=%d\n", num1, num2); } return 0; }
3、判断一个整数是否能5整除
#include <stdio.h> int main() { int n = 0; scanf("%d", &n); if(n%5==0) printf("YES\n"); else printf("NO\n"); return 0; }
4、打印用“*”组成的线段图案
#include <stdio.h> int main() { int n = 0; while(scanf("%d", &n)!=EOF) { int i = 0; for(i=0; i<n; i++) { printf("*"); } printf("\n"); } return 0; }
5、打印1-100之间所有3的倍数的数字
/*
解题思路:
1. 3的倍数一定能够被3整除,因此i%3==0表达式成立时,则i一定是3的倍数
2. 要输出1~100之间的3的倍数,那只需要从1~100循环100次即可,每次拿到i之后,用i%3==0检测
如果成立:i是3的倍数,输出
如果不成立:i不是3的倍数
*/
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=100; i++)
{
if(i%3==0)
{
printf("%d ", i);
}
}
return 0;
}
6、
写代码将三个整数数按从大到小输出。
例如:
输入:2 3 1
输出:3 2 1
#include <stdio.h> int main() { int a = 2; int b = 3; int c = 1; scanf("%d%d%d",&a, &b,&c); if(a<b) { int tmp = a; a = b; b = tmp; } if(a<c) { int tmp = a; a = c; c = tmp; } if(b<c) { int tmp = b; b = c; c = tmp; } printf("a=%d b=%d c=%d\n", a, b, c); return 0; }
7、已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。
#include <stdio.h> int main() { int a = 0; int b = 0; int c = 0; while(~scanf("%d %d %d", &a, &b, &c)) { if((a+b>c) && (a+c>b) && (b+c>a)) { //三角形 if(a==b && b==c)//等边三角形 { printf("Equilateral triangle!\n"); } else if(((a==b)&&(b!=c)) || ((a==c)&&(c!=b)) || ((b==c)&&(c!=a)))//等腰 { printf("Isosceles triangle!\n"); } else { printf("Ordinary triangle!\n"); } } else { //不是三角形 printf("Not a triangle!\n"); } } return 0; }
8、计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
/*
思路:
1. 从上述表达式可以分析出
a. 该表达式主要由100项,基数项为正,偶数项为负
2. 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0
然后使用flag标记控制奇偶项,奇数项为正,偶数项为负
然后将所有的项相加即可
*/
#include <stdio.h>
int main()
{
int i = 0;
double sum = 0.0;
int flag = 1;
for(i=1; i<=100; i++)
{
sum += flag*1.0/i;
flag = -flag;
}
printf("%lf\n", sum);
return 0;
}
9、数一下 1到 100 的所有整数中出现多少个数字9
/*
思路:
1. 给一个循环从1遍历到100,拿到每个数据后进行一下操作
2. a. 通过%的方式取当前数据的个位,检测个位数据是否为9
如果是,给计数器加1
b. 通过/的方式取当前数据的十位,检测十位数据是否是9,
如果是,给计数器加1
循环一直继续,直到所有的数据检测完,所有9的个数已经统计在count计数中。
*/
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=1; i<=100; i++)
{
if(i%10==9)
count++;
if(i/10==9)
count++;
}
printf("%d\n", count);
return 0;
}
10、打印1000年到2000年之间的闰年
/* 思路: 要求1000年到2000年之间的闰年,只需要知道求解闰年的方法即可。 闰年的条件:如果N能够被4整除,并且不能被100整除,则是闰年 或者:N能被400整除,也是闰年 即:4年一润并且百年不润,每400年再润一次 */ #include <stdio.h> int main() { int year = 0; for(year=1000; year<=2000; year++) { //判断year是否为闰年 if(year%4==0) // 如果year能够被4整除,year可能为闰年 { if(year%100!=0) // 如果year不能内100整除,则一定是闰年 { printf("%d ", year); } } if(year%400 == 0) // 每400年再润一次 { printf("%d ", year); } } return 0; } // //介绍一下这种的简单写法 // int main() { int year = 0; for(year=1000; year<=2000; year++) { if(((year%4==0)&&(year%100!=0))||(year%400==0)) { printf("%d ", year); } } return 0; }
11、求10 个整数中最大值
/*
思路:
1. 采用循环的方式输入一个数组
2. 使用max标记数组中的最大值,采用循环的方式依次获取数组中的每个元素,与max进行比较,如果arr[i]大于 max,更新max标记的最大值,数组遍历结束后,max中保存的即为数组中的最大值。
*/
int main()
{
int arr[10] = {0};
int i = 0;
int max = 0;
for(i=0; i<10; i++)
{
scanf("%d", &arr[i]);
}
//
max = arr[0];
for(i=1; i<10; i++)
{
if(arr[i]>max)
max = arr[i];
}
printf("max = %d\n", max);
return 0;
}
还有另外一种方法此上是最近一个星期我写过的题目