继续记录c语言入门程序
c语言交流🐧qun:938424667
目录
目录
1.素数函数
#include <stdio.h>
#include <math.h>
int isPrime(int num)
{
int i,m,mag=1;
m=sqrt(num);
for(i=2;i<=m;i++)
{
if(num%i==0)
{
mag=0;
break;
}
return mag;
}
}
int main()
{
int n;
printf("请输入一个数:");
scanf("%d",&n);
if(isPrime(n))
printf("%d是素数",n);
else
printf("%d不是素数",n);
}
2.四位数
#include <stdio.h>
int main()
{
int num;
printf("输入一个四位数:");
scanf("%d",&num);
printf("%d",(num%10)*1000+(num/10%10)*100+(num/100%10)*10+num/1000);
return 0;
}
3.水仙花数
#include <stdio.h>
int SXH(int num)
{
int s,a,b,c;
a=num/100;
b=num/10%10;
c=num%10;
s=a*a*a+b*b*b+c*c*c;
if(s==num)
return 1;
else
return 0;
}
int main()
{
int i;
for(i=100;i<=999;i++)
{
if(SXH(i))
{
printf("%4d ",i);
}
}
}
4.数列
#include<stdio.h>
int main()
{
long long n;
long long i=0;
long long x;
long long y=0;
long long sum=0;
scanf("%lld",&n);
if(n==1 || n==2)
printf("%lld",y);
else if(n>2 && n<=3000)
{
for(i=1;i<=n;i++)
{
x=i*(i-1)*(i-2);
sum=sum+x;
y=sum+y;
}
printf("%lld",y);
}
return 0;
}
5.比大小
#include <stdio.h>
int main()
{
int t,a,b,c;
printf("输入三个不同的数:");
scanf("%d%d%d",&a,&b,&c);
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=a;
a=c;
c=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
printf("%d %d %d",a,b,c);
return 0;
}
6.三种循环
#include <stdio.h>
int main()
{
int i=1,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("1+2+3+...+100=%d\n",sum);
sum=0;
i=1;
do
{
sum+=i;
i++;
}while(i<=100);
printf("1+2+3+...+100=%d\n",sum);
for(i=1,sum=0;i<=100;i++)
{
sum+=i;
}
printf("1+2+3+...+100=%d\n",sum);
return 0;
}
7.三整数,和,平均数
//设计一程序,输入三个整数,
//求它们的和及平均值,平均值保留2位小数位。
#include <stdio.h>
int main()
{
int a,b,c;
printf("输入三个整数,空格隔开:\n");
scanf("%d %d %d",&a,&b,&c);
printf("sum=%d,avg=%.2f",a+b+c,(a+b+c)/3.0);
return 0;
}
8.奇偶数问题数组
#include <stdio.h>
int main()
{
int num[20],jo[2][10];
int i,m,n;
printf("输入二十个数,且偶数与奇数占一半:");
for(i=0,m=0,n=0;i<20;i++)
{
scanf("%d",&num[i]);
if(num[i]%2!=0)
jo[0][m++]=num[i];
else
jo[1][n++]=num[i];
}
printf("奇数为:");
for(i=0;i<10;i++)
printf("%-4d",jo[0][i]);
printf("\n偶数为:");
for(i=0;i<10;i++)
printf("%-4d",jo[1][i]);
return 0;
}
9.平均值最大值(C++版
#include <iostream>
#include <iomanip>//包含输出小数点功能的头文件
using namespace std;
int main()
{
int num,i,sum=0;
float avg=0;
int max,num1;
cout << "输入若干数:" <<endl;
for(i=1;i<=num1;i++)
{
cin >> num;
sum+=num;//求和
if(i == 1)
{
num1=num;//num1保存变量用来循环和计算
max=num;//max存第一个值,用来判断;
}
if(num >= max)//判断最大值
max=num;
}
avg=1.0*sum/num1;//求平均值
cout << "前"<< num1 << "位的"
<< "平均值: " << setprecision(2) << fixed << avg << "最大值: " << max;
return 0;
}
10.连接字符串
#include <stdio.h>
#include <string.h>
void strlink(char *c1,char *c2)
{
int i=strlen(c1),j=strlen(c2);
int x;
for(x=0;x<j;x++)
{
c1[i+x]=c2[x];
}
printf("连接后:");
for(x=0;x<i+j;x++)
{
printf("%c",c1[x]);
}
}
int main()
{
char s1[100],s2[100];
printf("输入第一个字符串:");
gets(s1);
printf("输入第二个字符串:");
gets(s2);
strlink(s1,s2);
return 0;
}
11.判断字符数量
//4、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
#include <stdio.h>
int main()
{
char str;
int letter=0,space=0,number=0,other=0;
printf("输入一行字符:\n");
do
{
scanf("%c",&str);
if(str!='\n')
{
if((str>='a' && str<='z') || (str>='A' && str<='Z'))
letter++;
if(str == ' ')
space++;
if(str>='0' && str<='9')
number++;
}
else
{
other++;
}
}while(str!='\n');
printf("英文字母%d个,空格%d个,数字%d个,其他字符%d个",letter,space,number,other);
return 0;
}
12.数组里插数
//2、有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
#include <stdio.h>
int main()
{
int a[11]={1,11,22,33,44,55,67,77,88,99};
int num,j,i,t;
printf("输入一个数:");
scanf("%d",&num);
a[10]=num;
for(i=10;i>=1;i--)
{
if(a[i]<a[i-1])
{
t=a[i];
a[i]=a[i-1];
a[i-1]=t;
}
}
for(i=0;i<=10;i++)
printf("%4d",a[i]);
return 0;
}
13.矩阵转换
#include <stdio.h>
int main()
{
int a[2][3],i,j;
printf("输入一个2*3的矩阵\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("%d ",a[j][i]);
}
printf("\n");
}
return 0;
}
14.结构
#include <stdio.h>
#include<string.h>
#include<math.h>
struct s
{
char x[20];
char n[20];
double c1;
double c2;
double c3;
double t;
};
int main()
{
int i,h;
struct s temp;
struct s q;
struct s a[5];
for(i=0;i<5;i++)
{
scanf("%s",&a[i].x);
scanf("%s",&a[i].n);
scanf("%f",&a[i].c1);
scanf("%f",&a[i].c2);
scanf("%f",&a[i].c3);
a[i].t=a[i].c1+a[i].c2+a[i].c3;
}
printf("%.1f",a[i].t);
for(i=0;i<4;i++)
{
for(h=0;h<4-i;h++)
{
if(a[h].t<a[h+1].t)
{
temp=a[h];
a[h]=a[h+1];
a[h+1]=temp;
}
}
}
for(i=0;i<5;i++)
{
for(h=0;h<5;h++)
{
if(a[i].t==a[h].t&&strcmp(a[i].x,a[h].x)<0)
{
temp=a[i];
a[i]=a[h];
a[h]=temp;
}
}
}
for(i=0;i<5;i++)
{
printf("%s\t",a[i].x);
printf("%s\t",a[i].n);
printf("%.1f\t",a[i].c1);
printf("%.1f\t",a[i].c2);
printf("%.1f\t",a[i].c3);
printf("%.1f\n",a[i].t);
}
return 0;
}
15.回文字符
#include <stdio.h>
int main()
{
char a[100];
int i=0,j=0,tag=0;
printf("输入一段字符:");
while((a[i]=getchar())!='\n'){
i++;
}
for(;j<i/2;i--,j++)
if(a[i-1]!=a[j])
{
tag=1;
break;
}
if(tag)
printf("不是回文");
else
printf("是回文");
return 0;
}