C语言——基础编程例题
1.写代码将三个数按从大到小输出
方法一:(基础)不用循环比较三次(仅限数字个数较小时),(交换数字可以用以下三种方法)
(其中‘^’为异或运算符,例如5异或3,结果为6;6异或5为3;6异或3为5)
#include<stdio.h>
void sort(int x,int y,int z)
{
if (x < y){
x = x^y;
y = x^y;
x = x^y;
/*
x=x+y;
y=x-y;
x=x-y;
*/
/*
int t=x;
x=y;
y=t;(下同)
*/
}
if(y < z){
y = y^z;
z = y^z;
y = y^z;
/*
y=y+z;
z=y-z;
y=y-z;
*/
}
if (x < y){
x = x^y;
y = x^y;
x = x^y;
/*
x=x+y;
y=x-y;
x=x-y;
*/
}
printf("%d %d %d\n",x,y,z);
}
int main()
{
int x, y, z;
scanf("%d%d%d",&x,&y,&z);
sort(x,y,z);
return 0;
}
方法二:冒泡排序算法(稍难)(适用于数字个数多的)(意思:n个数,比较n-1轮,每轮比较(n-轮次)次)
(要多在纸上画)
#include<stdio.h>
void sort(int num[],int n){
int i, j;
for (i = 1; i < n;++i){
for (j = 0; j < n - i;++j){
if (num[j]<num[j + 1]){
num[j] = num[j] ^ num[j + 1];
num[j + 1] = num[j] ^ num[j + 1];
num[j] = num[j] ^ num[j + 1];
}
}
}
}
int main(){
int n;
scanf("%d",&n);
int *num = (int *)malloc(n*sizeof(int));//动态建立数组
for (int i = 0; i < n; ++i){
scanf("%d",num+i);
}
sort(num,n);
for (int i = 0; i < n; ++i){
printf("%d ", num[i]);
}
printf("\n");
return 0;
}
2.写一个代码打印1-100之间所有3的倍数的数字
(比较简单,但是要注意比较相等运算符‘==’不要写成赋值运算符‘=’欧)
#include<stdio.h>
int main(){
for (int i = 1; i <= 100;++i){
if (i%3==0){
printf("%d ",i);
}
}
printf("\n");
return 0;
}
好了,以上就是一些比较简单的例题和解题方法,不懂可以评论区提问欧。