1.输出“Hello word!”
#include <stdio.h>
int main()
{
printf("Hello world!");
return 0;
}
2.求两数之和
输入两个整数,计算两数之和并输出。
#include<stdio.h>
int main()
{
int a,b,sum;
printf("请输入两个整数:\n");
scanf("%d %d",&a,&b);
sum=a+b;
printf("两数之和为:%d\n",sum);
return 0;
}
输入两个浮点数,计算两数之和并输出。
#include<stdio.h>
int main()
{
float a,b,sum;
printf("请输入两个浮点数:\n");
scanf("%f %f",&a,&b);
sum=a+b;
printf("两个浮点数的和为:%f\n",sum);
return 0;
}
两个字符型数求和
#include<stdio.h>
int main()
{
char char1,char2;
int sum;
printf("请输入两个字符:\n");
scanf("%c %c",&char1,&char2);
sum=char1+char2;
printf("两个字符的和为:%d\n",sum);
return 0;
}
3.判断奇偶函数
方法一:
#include<stdio.h>
int main()
{
int mun;
printf("请输入一个数:\n");
scanf("%d",&mun);
if(mun%2==0)
{
printf("%d是偶数!\n");
}
else{
printf("%d是奇数!\n");
}
return 0;
}
方法二:
#include<stdio.h>
int main()
{
int mun;
printf("请输入一个数:\n");
scanf("%d",&mun);
if((mun&1)==0){
printf("%d是偶数!\n");
}
else{
printf("%d是奇数!\n");
}
return 0;
}
4.判断闰年
输入年份判断该年份是否为闰年
#include <stdio.h>
int main()
{
int a;
printf("请任意输入一个年份:\n");
scanf("%d",&a);
if((a%4==0&&a%100!=0)||a%400==0){
printf("你输入的%d是闰年",a);
}
else{
printf("你输入的%d不是闰年",a);
}
return 0;
}
5.判断素数
输入一个整数,判断是否为素数(质数)
素数的定义:一个自然数,只有1和它本身两个因数。
方法一:
#include <stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
if(n<=2){
printf("%d不是素数\n",n);
}
else{
for(i=2;i<=n-1;i++){
if(n%i==0)
break;
}
if(i>=n)
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
}
return 0;
}
方法二:
#include <stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
for(i=2;i<=n/2;i++){
if(n%i==0)
break;
}
if(i==n/2+1)
printf("%d是素数\n",n);
else
printf("%D不是素数\n",n);
return 0;
}
方法三:
#include<stdio.h>
#include<math.h>
int main(){
int i,n;
scanf("%d",&n);
for(i=2;i<=sqrt(n);i++){
if(n%i==0)
break;
}
if(I>sqrt(n))
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
return 0;
}
6.判断阶乘
输入一个非负整数,计算它的阶乘并输出。
#include<stdio.h>
int main()
{
int n,i;
long long factorial=1;
printf("请输入一个非负整数:");
scanf("%d",&n);
if(n<0){
printf("输入错误!请输入一个非负整数");
}
else{
for(i=1;i<=n;i++){
factorial*=i;
}
printf("%d!=%lld\n",n,factorial);
}
return 0;
}
7.斐波那契数列
输出斐波那契数列的前n。
方法一(递归):
#include <stdio.h>
int fibonacci(int n)
{
if(n<=1)
return n;
return fibonacci(n-1)+fibonacci(n-2);
}
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
printf("斐波那契数列的第%d项是:%d\n",n,fibonacci(n));
return 0;
}
方法二(循环):
#include<stdio.h>
int fibonacci(int n)
{
int a=0,b=1,c,i;
if(n==0)
return a;
for(i=2;i<=n;i++){
c=a+b;
a=b;
b=c;
}
return b;
}
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
printf("斐波那契数列的第%d项是:%d\n",n,fibonacci(n));
return 0;
}
方法三(动态规划):
#include<stdio.h>
int fibonacci(int n){
int f[n+2];
int i;
f[0]=0;
f[1]=1;
for(i=2;i<=n;i++){
f[i]=f[i-1]+f[i-2];
}
return f[n];
}
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
printf("斐波那契数列的第%d项是:%d\n",n,fibonacci(n));
return 0;
}
8.最大公约数和最小公倍数
输入两个正整数,计算它们的最大公约数和最小公倍数。
#include<stdio.h>
//计算最大公约数
int gcd(int a,int b)
{
if(b==0){
return a;
}
else{
return gcd(b,a % b);
}
}
//计算最小公约数
int lcm(int a,int b)
{
return a*b/gcd(a,b);
}
int main()
{
int num1,num2;
printf("请输入两个正整数:");
scanf("%d,%d",&num1,&num2);
printf("最大公约数是:%d\n",gcd(num1,num2));
printf("最小公倍数是:%d\n",lcm(num1,num2));
return 0 ;
9.十进制转二进制
#include <stdio.h>
void decToBinary(int n) {
// 初始化一个数组来存储二进制表示
int binaryNum[32];
int i = 0;
// 循环直到十进制数变为0
while (n > 0) {
binaryNum[i] = n % 2; // 存储余数
n = n / 2; // 更新n为n除以2的结果
i++; // 移动到数组的下一个位置
}
// 打印二进制表示
for (int j = i - 1; j >= 0; j--) {
printf("%d", binaryNum[j]);
}
printf("\n");
}
int main() {
int decNum;
printf("请输入一个十进制数: ");
scanf("%d", &decNum);
printf("二进制表示为: ");
decToBinary(decNum);
return 0;
}
10.二进制转十进制
#include <stdio.h>
int binaryToDecimal(int binaryNum) {
int decimalNum = 0;
int base = 1; // 初始化权重为2的0次方
while (binaryNum > 0) {
int lastDigit = binaryNum % 10; // 获取二进制数的最后一位
binaryNum /= 10; // 移除二进制数的最后一位
decimalNum += lastDigit * base; // 累加到十进制数
base *= 2; // 权重乘以2
}
return decimalNum;
}
int main() {
int binaryNum;
printf("Enter a binary number: ");
scanf("%d", &binaryNum);
printf("Decimal representation: %d\n", binaryToDecimal(binaryNum));
return 0;
}
11.字符串长度
计算一个字符串的长度并输出。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, World!";
int length = strlen(str);
printf("The length of the string is: %d\n", length);
return 0;
}
12.字符串反转
输入一个字符串,反向输出该字符串。
#include <stdio.h>
#include <string.h>
void reverseString(char *str) {
int length = strlen(str);
int left = 0;
int right = length - 1;
while (left < right) {
// 交换左右两侧的字符
char temp = str[left];
str[left] = str[right];
str[right] = temp;
// 移动指针
left++;
right--;
}
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
}
13.数组求和
输入数组元素,求和后输出。
#include <stdio.h>
int sumArray(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i]; // 累加数组中的每个元素
}
return sum;
}
int main() {
int arr[] = {1, 2, 3, 4, 5}; // 初始化一个整型数组
int size = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小
int sum = sumArray(arr, size); // 调用函数求和
printf("The sum of the array elements is: %d\n", sum);
return 0;
}
14.数组的最大值及最小值
输入数组元素,求出最大值及最小值。
#include <stdio.h>
void findMinMax(int arr[], int size, int *min, int *max) {
if (size <= 0) {
// 如果数组大小不正确,返回错误或异常
return;
}
*min = *max = arr[0]; // 初始化最小值和最大值为数组的第一个元素
for (int i = 1; i < size; i++) {
if (arr[i] < *min) {
*min = arr[i]; // 更新最小值
}
if (arr[i] > *max) {
*max = arr[i]; // 更新最大值
}
}
}
int main() {
int arr[] = {1, 5, 2, 8, 3, 7}; // 初始化一个整型数组
int size = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小
int min, max;
findMinMax(arr, size, &min, &max); // 调用函数找到最小值和最大值
printf("The minimum value is: %d\n", min);
printf("The maximum value is: %d\n", max);
return 0;
}
15.反转数组
输入数组元素将其反转输出。
#include <stdio.h>
void reverseArray(int arr[], int size) {
int left = 0;
int right = size - 1;
while (left < right) {
// 交换左右两侧的元素
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
// 移动指针
left++;
right--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5}; // 初始化一个整型数组
int size = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverseArray(arr, size); // 调用函数反转数组
printf("Reversed array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
16.冒泡排序
输入数组元素对其冒泡排序输出。
#include <stdio.h>
void bubbleSort(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换 arr[j] 和 arr[j + 1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90}; // 初始化一个整型数组
int size = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubbleSort(arr, size); // 调用函数进行冒泡排序
printf("Sorted array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
17.选择排序
输入数组元素,对其选择排序输出。
#include <stdio.h>
void selectionSort(int arr[], int size) {
int i, j, min_idx, temp;
for (i = 0; i < size - 1; i++) {
// 找到从i到size-1的最小元素的索引
min_idx = i;
for (j = i + 1; j < size; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
// 将找到的最小元素交换到位置i
if (min_idx != i) {
temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
}
int main() {
int size;
printf("Enter the number of elements in the array: ");
scanf("%d", &size);
int arr[size];
printf("Enter %d integers:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
selectionSort(arr, size);
printf("Sorted array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
18.插入排序
输入数组元素,对其插入排序后输出。
#include <stdio.h>
void insertionSort(int arr[], int size) {
int i, j, key;
for (i = 1; i < size; i++) {
key = arr[i];
j = i - 1;
// 将arr[i]与已排序的arr[0...i-1]中的元素进行比较,找到合适的位置插入
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
int main() {
int size;
printf("Enter the number of elements in the array: ");
scanf("%d", &size);
int arr[size];
printf("Enter %d integers:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
insertionSort(arr, size);
printf("Sorted array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
19.希尔排序
输入数组元素,对其希尔排序后输出。
#include <stdio.h>
void shellSort(int arr[], int n) {
for (int gap = n / 2; gap > 0; gap /= 2) {
for (int i = gap; i < n; i++) {
int temp = arr[i];
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {
arr[j] = arr[j - gap];
}
arr[j] = temp;
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90}; // 初始化一个整型数组
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
shellSort(arr, n); // 调用函数进行希尔排序
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
以上代码仅供参考,如有问题欢迎大家在留言区批评指正;
版权所有,翻印必究,如有雷同纯属巧合,转载请注明出处。