求简单C语言程序代码!

Python014

求简单C语言程序代码!,第1张

程序源码及运行结果如下所示(系统会自动去掉句首空格,排版较乱请见谅):

#include<stdio.h>

int main()

{

int max,min

int sum=0

printf("请输入一个整数:")

scanf("%d",&max)

printf("请再输入一个整数:")

scanf("%d",&min)

if(min>max)

{

int temp

temp = max

max = min

min = temp

}

for(int i=mini<=maxi++)

{

sum += i

}

printf("两数之间的整数和是:%d\n",sum)

return 0

}

#include <stdio.h>

#include <stdlib.h>

#define NUM 10

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

//冒泡排序算法

//基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。

void bubbleSort(int *arr, int n) {

int i,j

for (i = 0i<n - 1i++)

for (j = 0j <n - i - 1j++) {

//如果前面的数比后面大,进行交换

if (arr[j] >arr[j + 1]) {

int temp = arr[j]

arr[j] = arr[j + 1]

arr[j + 1] = temp

}

}

}

//最差时间复杂度为O(n^2),平均时间复杂度为O(n^2)。稳定性:稳定。辅助空间O(1)。

//升级版冒泡排序法:通过从低到高选出最大的数放到后面,再从高到低选出最小的数放到前面,

//如此反复,直到左边界和右边界重合。当数组中有已排序好的数时,这种排序比传统冒泡排序性能稍好。

//升级版冒泡排序算法

void bubbleSort_1(int *arr, int n) {

//设置数组左右边界

int left = 0, right = n - 1

//当左右边界未重合时,进行排序

while (left<=right) {

int i,j

//从左到右遍历选出最大的数放到数组右边

for (i =lefti <righti++) {

if (arr[i] >arr[i + 1]) {

int temp = arr[i]

arr[i] = arr[i + 1]

arr[i + 1] = temp

}

}

right--

//从右到左遍历选出最小的数放到数组左边

for (j = rightj>leftj--) {

if (arr[j + 1] <arr[j]) {

int temp = arr[j]

arr[j] = arr[j + 1]

arr[j + 1] = temp

}

}

left++

}

}

int main(int argc, char *argv[]) {

int arr[NUM],i,j,temp

printf("请输入10个数:\n")

for(i=0i<NUMi++) {

printf("请输入第(%d)个数:",i+1)

scanf("%d",&arr[i])

}

printf("\n输入如下排列:\n")

for(i=0i<NUMi++) {

printf("%4d",arr[i])

}/*

for(i=0i<NUMi++) {

for(j=i+1j<NUMj++) {

if(arr[i]>arr[j]) {

temp=arr[i]

arr[i]=arr[j]

arr[j]=temp

}

}

}*/

bubbleSort_1(arr,NUM)

/*printf("\n从小到大如下排列:\n")

for(i=0i<NUMi++) {

printf("%4d",arr[i])

}*/

printf("\n从大到小如下排列:\n")

for(i=NUM-1i>=0i--) {

printf("%4d",arr[i])

}

return 0

}

1.输入2个正整数m和n,求其最大公约数和最小公倍数

#include

#include

int main()

{

int m,n,p,q,s,r

printf("请输入两个正整数;m,n\n")

scanf("%d,%d",&m,&n)

s=m*n

if(m<n)

{

p=m

m=n

n=p

}

printf("%d\t%d\n",m,n)/*按从大到小输出m,n */

while(n!=0)

{

q=m%n

m=n

n=q

}

/*是不是m才是最大公约数啊*/

r=s/m

printf("m和n最大公约数为 %d\n",m)

printf("m和n最小公倍数为 %d\n",r)/*m和n的积除以m和n的最大公约数即为最小公倍数*/

return 0

}

2.输出100以内能被3整除且个位数为6的所有整数。

#include

int main(void)

{

int i

for(i=1i<=100i++)

if(i%3==0&&i%10==6)printf("%d ",i)

return 0

}

3. 编程计算从1到10各数阶乘的和,即1! + 2! + 3! + …… + 9! + 10! 的和

#include

int main(void)

{

int sum,i,term

sum=0

term=1

for(i=1i<=10i++)

{

term=term*i

sum=sum+term

printf("%d的阶乘 %d\n",i,term)

}

printf("1到10各数阶乘的和 %d\n",sum)

return 0

}

4.使用嵌套循环产生下列由大写字母组成的图

#include

int main(void)

{

char ch1,ch2

for(ch1='A'ch1<='Z'ch1++)

{

for(ch2='A'ch2<=ch1ch2++)

printf("%c",ch2)

printf("\n")

}

return 0

}

5. 编程输出所有三位数中的素数。

#include

int main(void)

{

int x,i

for(x=100x<=999x++)

{

for(i=2i<x/2i++)

if(x%i==0)break

if(i==x/2)printf("%d ",x)

}

return 0

}

6. 定义一个函数even(),判断一个整数是否是偶数。如果是偶数返回1,否则返回0。(要求包括能使程序正常运行的主函数)

#include

int main(void)

{

int even(int)

int x,y

scanf("%d",&x)

y=even(x)

if(y==1)

printf("%d 是偶数\n",x)

else

printf("%d 是奇数\n",x)

return 0

}

int even(int x)

{

if(x%2==0)

return 1

else

return 0

}

7. 编写函数mypow,求整型变量x的y次方。(要求包括能使程序正常运行的主函数)

#include

int main(void)

{

int mypow(int,int)

int x,y,s

scanf("%d%d",&x,&y)

s=mypow(x,y)

printf("%d的%d次方是 %d\n",x,y,s)

return 0

}

int mypow(int x,int y)

{

int sum,i

sum=1

for(i=1i<=yi++)

sum=sum*x

return sum

}

8.输入一个3位整数,输出它的逆序数。例如,输入127,输出应该是721。

#include

int main(void)

{

int x,y

scanf("%d",&x)

y=x/100+x/10%10*10+x%10*100

printf("%d的逆序数 %d\n",x,y)

return 0

}

9. 编写一个字符串连接函数,其功能是将两个字符串连接起来形成一个新的字符串,以实现库函数strcat()的功能

#include

int main(void)

{

void mystrcat(char s1[],char s2[])

char s1[80],s2[80]

scanf("%s%s",s1,s2)

mystrcat(s1,s2)

printf("%s\n",s1)

return 0

}

void mystrcat(char s1[],char s2[])

{

int i,j

for(i=0s1[i]!='\0'i++)

for(j=0s2[j-1]!='\0'j++)s1[i+j]=s2[j]

}

10. 编写一个字符串复制函数,其功能是将字符数组s2中的全部字符(包括字符串结束符号'\0')拷贝到字符数组 s1 中,以实现库函数strcpy()的功能。

#include

int main(void)

{

void mystrcpy(char s1[],char s2[])

char s1[80],s2[80]

scanf("%s",s2)

mystrcpy(s1,s2)

printf("%s\n",s1)

return 0

}

void mystrcpy(char s1[],char s2[])

{

int i

for(i=0s2[i-1]!='\0'i++)

s1[i]=s2[i]

}

11.有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串

#include

int main(void)

{

void mystrcpy2(char s1[],char s2[],int m,int n)

char s1[80],s2[80]

int m,n

scanf("%d%d",&m,&n)

scanf("%s",s1)

mystrcpy2(s1,s2,m,n)

printf("s1: %s\ns2: %s\n",s1,s2)

return 0

}

void mystrcpy2(char s1[],char s2[],int m,int n)

{

int i,j

for(i=m-1,j=0i<n&&s1[i]!='\0'i++)

s2[j++]=s1[i]

s2[j]='\0'

}