#include<stdio.h>
//输入三个整数,输出从大到小的序列
//例如: 输入: 2 3 1 输出:3 2 1
//写法一
//int main() {
// int a = 0;
// int b = 0;
// int c = 0;
// //输入
// scanf("%d %d %d", &a, &b, &c);
// //调整
// int tmp = 0;
// if (a < b) {
// tmp = a;
// a = b;
// b = tmp;
// }
// if (a<c) {
// tmp = a;
// a = c;
// c = tmp;
// }
// if (b<c) {
// tmp = b;
// b = c;
// c = tmp;
// }
// //输出
// printf("%d %d %d", a, b, c);
// return 0;
//}
//写法二:函数版
void Swap(int* px, int* py) {
int tmp = *px;
*px = *py;
*py = tmp;
}
int main() {
int a = 0;
int b = 0;
int c = 0;
//输入
scanf("%d %d %d", &a, &b, &c);
//调整
int tmp = 0;
if (a < b) {
Swap(&a, &b);
}
if (a < c) {
Swap(&a, &c);
}
if (b < c) {
Swap(&b, &c);
}
//输出
printf("%d %d %d", a, b, c);
return 0;
}
2,写代码打印1-100之间的所有3的倍数的数字
复制代码
#include<stdio.h>
//写代码打印1-100之间的所有3的倍数的数字
int main() {
int i = 0;
//for ( i = 1; i <=100; i++)
//{
// if (i%3==0)
// {
// printf("%d ", i);
// }
//}
//另一种写法
for (i = 3; i <= 100; i+=3)
{
printf("%d ", i);
}
return 0;
}
3,给定两个数,求这两个数的最大公约数
复制代码
#include<stdio.h>
//给定两个数,求这两个数的最大公约数
//写法一:暴力求解
//int main() {
// int a = 0;
// int b = 0;
// //输入
// scanf("%d %d", &a, &b);
// //求最大公约数
// int min = (a < b) ? a : b;
// int m = min;
// while (1) {
// if (a%m==0&&b%m==0) {
// break;
// }
// m--;
// }
// printf("%d\n", m);
// return 0;
//}
//写法二:辗转相除法
int main() {
int a = 0;
int b = 0;
int c = 0;
//输入
scanf("%d %d", &a, &b);
//求最大公约数
while (c=a%b) {
a = b;
b = c;
}
printf("%d\n", b);
return 0;
}
4,编写程序数一下1-100的所有整数中出现多少个数字9
复制代码
#include<stdio.h>
//编写程序数一下1-100的所有整数中出现多少个数字9
int main() {
int i = 0;
int count = 0;
for ( i = 1; i <=100; i++)
{
//判断个位是不是9
if (i%10==9)
count++;
//判断十位是不是9
if (i / 10 == 9)
count++;
}
printf("%d\n", count);
return 0;
}
5,计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值
复制代码
#include<stdio.h>
// 计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值
//分子总是1
//分母是1-100
int main() {
int i = 0;
double sum = 0;
int flag = 1;
for ( i = 1; i <=100; i++)
{
sum = sum + flag*(1.0 / i);//全加(注意是1.0 , 而不是1)
flag = -flag;
}
printf("%lf\n", sum);
return 0;
}
6,求10个整数中的最大值
复制代码
#include<stdio.h>
////求10个整数中的最大值
int main() {
//准备10个整数
/*int arr[10] = { 3,1,5,4,9,6,8,7,2,0 };*/
//输入十个数字
int arr[10] = { 0 };
//int arr[] = { 0 };//会报错
//这里没有指定数组的元素个数,就会根据初始化的内容来推算元素的个数
int i = 0;
for ( i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
//找出最大值
int max = arr[0];//假设0号选手是最大值
//int i = 0;
for ( i = 1; i < 10; i++)
{
if (arr[i] > max) {
max = arr[i];
}
}
printf("%d\n", max);
return 0;
}
7,在屏幕上打印输出9*9乘法口诀表
复制代码
#include<stdio.h>
//在屏幕上打印输出9*9乘法口诀表
// 1*1
// 2*1 2*2
// 3*1 3*2 3*3
//.........
int main() {
int i = 0;
//打印9行
for ( i = 0; i <=9; i++)
{
//打印一行
int j = 0;
for ( j = 0; j <=i; j++)
{
printf("%d*%d=%2d ", i, j, i * j);
}
printf("\n");
}
return 0;
}
8,实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
复制代码
#include<stdio.h>
// 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
void print_table(int n) {
int i = 0;
for ( i = 0; i <=n; i++)
{
//打印一行
int j = 0;
for ( j = 0; j <=i; j++)
{
printf("%d*%d=%2d ", i, j, i * j);
}
printf("\n");
}
}
int main() {
int n = 0;
scanf("%d", &n);
print_table(n);
return 0;
}
9,(把函数处理结果的二个数据返回给主调函数)的可行方法
复制代码
#include<stdio.h>
// (把函数处理结果的二个数据返回给主调函数)的可行方法
//方法一:形参用数组
//void test(int arr[]) { //int arr[] 的另一种写法 int *arr 本质就是指针变量
// arr[0] = 3; //arr[0] ---> *(arr+0)
// arr[1] = 4; //arr[1] ---> *(arr+1)
//}
//int main() {
// int arr[2] = { 0 };
// test(arr);
// return 0;
//}
//
////方法二:形参用二个指针
//void test(int *px ,int *py) {
// *px = 3;
// *py = 4;
//}
//int main() {
// int a=0;
// int b=0;
// test(&a,&b);
// return 0;
//}
//
////方法三:用两个全局变量
int a = 0;
int b = 0;
void test(int *px ,int *py) {
a = 3;
b = 4;
}
int main() {
test(&a,&b);
printf("a=%d b=%d\n", a, b);
return 0;
}
//错误方法,直接return这两个数