数组转置(12345-->54321)
#include<stdio.h>
int main(){
int a[5]={1,2,3,4,5},i,j,t;
for(i=0,j=4;i<j;i++,j--){
t =a[i];
a[i]=a[j];
a[j]=t; }
for(i=0;i<5;i++)printf("%d \t",a[i]); }
数组的循环左移(12345 ---> 23451)
#include<stdio.h>
int main(){
int a[5]={1,2,3,4,5},i,t;
t = a[0];
for(i=1;i<5;i++){
a[i-1]=a[i];}
a[4]=t;
for(i=0;i<5;i++)printf("%d \t",a[i]); }
数组的循环右移(12345-->51234)
#include<stdio.h>
int main(){
int a[5]={1,2,3,4,5},i,t;
t = a[4];
for(i=4;i>=0;i--){
a[i]=a[i-1]; }
a[0]=t;
for(i=0;i<5;i++)printf("%d \t",a[i]); }
数组循环右移三次:
#include<stdio.h>
int main(){
int a[5]={1,2,3,4,5},i,j,t;
for(j=1;j<=3;j++){
t = a[4];
for(i=3;i>=0;i--){
a[i+1]=a[i]; }
a[0]=t;}
for(i=0;i<5;i++)printf("%d \t",a[i]); }
编写程序实现输入十进制,输出对应的二进制数
#include<stdio.h>
int main(){
int a[100],n,i=0,j;
scanf("%d",&n);
while(n!=0){
a[i++]= n%2;
n /=2; }
for(i=i-1;i>=0;i--)printf("%d",a[i]);
printf("\n"); }
冒泡排序法(重点)核心代码
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(a[j]>a[j+1]) 交换a[j]和a[j+1];
\\当 a[j]<a[j+1时为降序排序
编写程序:输入十个学生的成绩(整型数据),输出低于平均分的学生个数
#include<stdio.h>
int main(){
int a[10],i,num=0;
double avg,sum=0;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
sum +=a[i]; }
avg=sum/10;
printf("%d\n",sum);
printf("%f\n",avg);
for(i=0;i<10;i++){
printf("%d\n",a[i]);
if(a[i]<avg)num++;
}
printf("%d",num);
}
遍历二维数组
#include<stdio.h>
int main(){
int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d",a[i][j]); }
二维数组求最大值
#include<stdio.h>
int main(){
int a[4][3]={1,2,0,8,3,-1,9,-5,7,6,10,-2},i,j,max;
max=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
if(a[i][j]>max)max=a[i][j];
printf("%d",max); }
用函数打印
*
**
***
****
*****
#include<stdio.h>
void fun(int n)
{int i;
for(i=1;i<=n;i++)
{ printf("*"); }
}
void main(){
int j;
for(j=1;j<=5;j++){
fun(j);
printf("\n");
}
}
用函数实现求一维数组的最大值
#include<stdio.h>
void fun(int b[],int n)
{int i,max;
max =b[0];
for(i=0;i<n;i++)
if(b[i]>max) max=b[i];
printf("%d",max);
}
void main(){
int a[5]={1,5,8,6,2};
fun(a,5);
}
将字符串中大写字母转换为小写字母
#include<stdio.h>
void fun(char s[])
{
for(int i;s[i]!='\0';i++){
if(s[i]>='A'&&s[i]<='Z'){
s[i]+=32; }
}
}
int main(){
char a[]="AvdBDf";
fun(a);
puts(a);
}
编写函数求字符串的长度
#include<stdio.h>
int fun(char s[])
{
int k=0;
char *p=s;
while (*p!='\0')
{
k++;
p++;
}
return k;
}
int main(){
char s[]="ATET";
int a;
a =fun(s);
printf("%d",a);
return 0;
}
打印1000以内的完数
int main(){
int n,sum,i;
for(n=1;n<=1000;n++) {
sum=0;
for(i=1;i<n;i++){
if(n%i==0)sum+=i;//找n的真因子
}
if(n==sum)printf("%d\t",n);
}
}
打印杨辉三角
#define MAX 10
int main(){
//打印杨辉三角前10行
int i,j;
int a[MAX][MAX]={0};
for(i=0;i<MAX;i++){
for(j=0;j<=i;j++){
if(j==0||i==j)a[i][j]=1;
else a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<MAX;i++){
for(j=0;j<=i;j++){
printf("%d\t",a[i][j]);
}
printf("\n");
}}
//判断一个数是否为质数
#include <stdio.h>
#include <string.h>
int main(){
int n,i,k=1;
scanf("%d",&n);
for(i=2;i<n;i++){
if(n%i==0){
k=0;
break;
}else continue;
}
if(k==1)printf("%d是一个质数1",n);
else printf("%d不是一个质数",n);
}
打印水仙花数
int main(){
int i,a,b,c;
for(i=100;i<=1000;i++){
a = i%10;
b = i/10%10;
c = i/100;
if((a*a*a+b*b*b+c*c*c)==i)printf("%d\n",i);
}
}
打印斐波那契数列前20项
#include <stdio.h>
#include <string.h>
//打印斐波那契数列前20项
#define MAX 20
int main(){
int i,a[MAX]={0};
for(i=0;i<MAX;i++){
if(i<2)a[i]=1;
else a[i]=a[i-1]+a[i-2];
}
for(i=0;i<MAX;i++){
printf("%d\t",a[i]);
}
}
打印九九乘法表
int main(){
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
printf("%d*%d=%d\t",j,i,j*i);
}
printf("\n");
}
}
冒泡排序法
//冒泡排序法
int main(){
int a[]={5,8,2,3,6,9,4,7,2,1,4};
int i,j,n,t;
n=sizeof(a)/sizeof(int);
printf("%d",n);
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<11;i++){
printf("%2d",a[i]);
}
}
将字符串中大写字母改为小写字母
void fun(char a[],int n){
for(int i=0;a[i]!='\0';i++){
if(a[i]>='A'&&a[i]<='Z'){
a[i]+=32;
}
}
}
int main(){
char a[]="abCdEfG";
fun(a,8);
for(int i=0;i<=8;i++){
printf("%c",a[i]);
}
}
判断A是否为B的子集
//判断A集合是否为B集合的子集
int main(){
int a[]={1,2,3};
int b[]={1,2,3,4,5,6};
int i,j,k=0;
for(i=0;i<3;i++){
for(j=0;j<6;j++){
if(a[i]==b[j])k++;
}
}
if(k==3)printf("%d",1);
else printf("%d",0);
}
判断字符串是否为回文字符串
//判断回文字符串
int main(){
char s[]="abcba";
char *p,*q,flag=1;
p=s;
q=s+4;
while (p<q)
{
if(*p!=*q){
flag=0;
break;
}
p++;
q--;
}
if(flag==1)printf("是回文字符串");
else printf("不是回文字符串");
}
//x的n次方
int fun(int x,int n){
int i,p=1;
for(i=1;i<=n;i++){
p=p*x;
}
return p;
}
int main(){
int a=fun(2,2);
printf("%d",a);
}
//求出字符串中出现次数最多的英文字母(小写)
int main(){
char s[]="aabbccddffrrrddsssdsd";
int a[26]={0};
for(int i;s[i]!='\0';i++){
a[s[i]-'a']++;
}
int max=0;
for(int i=0;i<26;i++){
if(a[i]>a[max])max=i;
}
printf("字符串出现次数最多的英文字母是:%c",max+'a');
}
//二维数组转换为一维数组
int main(){
int a[3][4]={1,2,3,4,5,6,7,8,9,7,5,8};
int b[12];
int i,j;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
b[i*4+j]=a[i][j];
}
}
for(i=0;i<12;i++)printf("%d",b[i]);
}
//统计一个长度为2的字符串as在另一个字符串中出现的次数
int main(){
char a[]="aaggccddasasokas";
int i,count=0;
for(i=0;a[i+1]!='\0';i++){
if(a[i]=='a'&&a[i+1]=='s')count++;
}
printf("%d",count);
}
//将后面的字符串连接到前面的字符串的末尾处
void fun(char p[],char q[]){
while(*p!='\0')p++;
while (*q!='\0')
{
*p=*q;
p++;
q++;
}
*p='\0';
}
int main(){
char s[10]="abc";
fun(s,"123");
puts(s);
}
//将指定的字符串删除
void fun(char s[],char ch){
int i,j=0;
for(i=0;s[i]!='\0';i++)
if(s[i]!=ch){
s[j]=s[i];
j++;
}
s[j]='\0';
}
int main(){
char s[10]="abcabc";
fun(s,'a');
puts(s);
}
int main(){
int a[5]={0};
char ch;
ch=getchar();
while(ch!='#'){
if(ch>='1'&&ch<='5'){
a[ch-'1']++;
}
ch = getchar();
}
for(int i=0 ;i<5;i++){printf("%d",a[i]);}
}
int main(){
int n,i,sum=0;
for(n=1;n<1000;n++){
sum=0;
for(i=1;i<n;i++){
if(n%i==0){sum+=i;}
}
if(sum==n){printf("%d\n",n);}
}
}