编程语言 c C语言例题 Linstars 2024-11-25 2025-01-18 判断数组中最大值 要求:
输入多个整数(一行),输出其中最大的整数。 输入格式:一行多个整数,用空格隔开。 输出格式:一个整数。 输入输出样例1 2 3 4 5 6
输出6
说明/提示:最大的数为 6,即输出 6。
1 2 3 4 5 6 7 8 9 10 11 #include <stdio.h> int main () { int maxnum = 0 ; int num = 0 ; while (scanf ("%d" ,&num)!=EOF){ if (num>maxnum) maxnum=num; } printf ("%d\n" ,maxnum); return 0 ; }
求n的阶乘 要求:
输入:5。
输出:120。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> int b (int a) ;int main () {int n;scanf ("%d" ,&n);int temp=b(n);printf ("%d" ,b(n));} int b (int a) { if (a==0 ){ return 1 ; } return a * b(a - 1 ); }
合并为新数 要求:
编写函数fun,其功能是:将a、b中的两个两位正整数合并成一个新的整数。
合并的方式是:将a中的十位和个位数依次放在临时变量c的百位和个位上,b中的十位和个位数依次放在该变量c的十位和千位上。函数fun返回变量c的值。例如,当a=45,b=12,调用该函数后返回值为2415。
效果如下:
输入:45 12
。 输出:2415
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdio.h> int fun (int a, int b) { int c; int temp=a%10 ; int temp2=a/10 ; int temp3=b%10 ; int temp4=b/10 ; c=(temp2*100 )+temp+(temp3*1000 )+(temp4*10 ); return c; } int main () { int a,b, c; scanf ("%d%d" , &a, &b); c=fun(a, b); printf ("%ld\n" , c); return 0 ; }
判断一个数是否为素数 要求:
编写一个函数prime,判断一个正整数是否为素数,如果是素数,函数返回1,否则返回0。在主函数中输入一个正整数,调用prime判断它是否为素数并输出。
输入:21
。 输出:no
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include <stdio.h> int prime (int num) { if (num <= 1 ) { return 0 ; } for (int i = 2 ; i * i <= num; i++) { if (num % i == 0 ) { return 0 ; } } return 1 ; } int main () { int number; scanf ("%d" , &number); if (prime(number)) { printf ("yes" ); } else { printf ("no" ); } return 0 ; }
指针法输入12个整数 任务描述 题目描述:用指针法输入12个整数,然后按每行4个数输出
输入
输入包含一行,有12个整数。
输出
按顺序,每行输出4个整数。 样例输入:
1 2 3 4 5 6 7 8 9 10 11 12 样例输出:
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdio.h> int main () { int numbers[12 ]; int * ptr = numbers; printf ("请输入12个整数,用空格分隔: " ); for (int i = 0 ; i < 12 ; i++) { scanf ("%d" , ptr + i); } for (int i = 0 ; i < 12 ; i += 4 ) { for (int j = 0 ; j < 4 ; j++) { printf ("%d " , *(ptr + i + j)); } printf ("\n" ); } return 0 ; }
对输入的两个整数a,b,用指针变量作为函数参数,交换a和b的值。 输入: 两个整数a b 输出: 输出用函数交换处理后的值a b 样例输入: 1 2 样例输出: 2 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include <stdio.h> void swap (int * x, int * y) { int temp = *x; *x = *y; *y = temp; } int main () { int a, b; printf ("请输入两个整数: " ); scanf ("%d %d" , &a, &b); swap(&a, &b); printf ("交换后的值: %d %d\n" , a, b); return 0 ; }
约瑟夫环问题 xxxxxxxxxx
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include <stdio.h> #include <stdlib.h> int josephus (int n, int k) { if (n == 1 ) { return 0 ; } else { return (josephus(n - 1 , k) + k) % n; } } int main () { int n; printf ("请输入初始人数: " ); scanf ("%d" , &n); int lastPerson = josephus(n, 3 ) + 1 ; printf ("最后一人的初始编号是: %d\n" , lastPerson); return 0 ; }
字符串比较 用一个函数实现两个字符串的比较,即自己写一个strcmp
函数 输入: 输入两字符串 输出: 输出最大的那个字符串 样例输入:abc
abd
样例输出:abd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include <stdio.h> int my_strcmp (const char * str1, const char * str2) { while (*str1 && (*str1 == *str2)) { str1++; str2++; } return *(unsigned char *)str1 - *(unsigned char *)str2; } int main () { char str1[100 ], str2[100 ]; printf ("请输入第一个字符串: " ); scanf ("%s" , str1); printf ("请输入第二个字符串: " ); scanf ("%s" , str2); if (my_strcmp(str1, str2) > 0 ) { printf ("输出最大的字符串: %s\n" , str1); } else { printf ("输出最大的字符串: %s\n" , str2); } return 0 ; }