數組轉置(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);}
}
}