2024年鸿蒙最新谭浩强《C程序设计》例题练习+补充练习_#include <stdio(2),互联网大厂面试

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

{
int fac(int);
int sum,n,i;
sum=0;
printf(“please input N:”);
scanf(“%d”,&n);
for(i=n;i>0;i–)
{
sum=sum+fac(i);
}
printf(“%d”,sum);
}

int fac(int n)
{
int sum;
if(n==1)
{
sum=1;
}
else
{
sum=fac(n-1)*n;
}
return(sum);
} —587


用函数实现对N个数进行排序



#include <stdio.h>
#include<stdlib.h>
int main()
{
int fun(int [10]);
int i,a[10];
printf(“排序前的顺序:”);
for(i=0;i<10;i++)
{
a[i]=rand()%101;
printf(“%d “,a[i]);
}
fun(a);
printf(“排序后的顺序:”);
for(i=0;i<10;i++)
{
printf(”%d “,a[i]);
}
printf(”\n”);
return 0;
}
int fun(int arr[10])
{
int i,j,temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
return 0;
} —627


输入3个整数,按由小到大的顺序输出



#include<stdio.h>
int main()
{
int a,b,c,*p1,*p2,*p3,p;
printf(“please input three numbers:”);
scanf(“%d%d%d”,&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
if(a>b)
{p=*p1;
*p1=*p2;
*p2=p;}
if(a>c)
{p=*p1;
*p1=*p3;
*p3=p;}
if(b>c)
{p=*p2;
*p2=*p3;
*p3=p;}
printf(“%d %d %d”,a,b,c);
} —650


写一函数,将一个3\*3整数矩阵转置



#include<stdio.h>
#include<stdlib.h>
int main()
{
void convert(int[3][3]);
int a[3][3],i,j;
printf(“please input a matrix:”);
printf(“\n”);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
a[i][j]=rand()%101;
printf(“%d “,a[i][j]);
if(j2)
printf(“\n”);
}
printf(“\n”);
printf(“please input a conver matrix:”);
printf(“\n”);
convert(a);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
if(j
2)
printf(”\n”);
}
}

void convert(int arr[3][3])
{
int t;
t=arr[0][1];arr[0][1]=arr[1][0];arr[1][0]=t;
t=arr[0][2];arr[0][2]=arr[2][0];arr[2][0]=t;
t=arr[1][2];arr[1][2]=arr[2][1];arr[2][1]=t;
} —685


有一个班N个学生,5门课程。求第1门课的平均分;找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩和平均分;找出平均成绩在90以上或全部课程成绩在85分以上的学生



#include<stdio.h>
struct student
{
int num;
char name[20];
float score[5];
float aver;
};
int main()
{
void input(struct student stu[]);
struct student 2bujige(struct student stu[]);
struct student youxiu(struct student stu[]);
struct student stu[3],*p=stu;
input§;
2bujige§;
youxiu§;

}

void input(struct student stu[])
{
int i;
printf(“请输入各位学生的信息:学号、姓名、五门课成绩:\n”);
for(i=0;i<3;i++)
{
scanf(“%d%s%f%f%f%f%f”,&stu[i].num,stu[i].name,&stu[i].score[0],
&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]+stu[i].score[4])/5;
printf(“\n”);
}

}

struct student 2bujige(struct student stu[])
{
int i,j;
printf(“两门以上课程不及格的:\n”);
for(i=0;i<3;i++)
{
int count=0;
for(j=0;j<5;j++)
{
if(stu[i].score[j]<60)
{ count++;
if(count>2)
printf(“学号:%d\n姓名:%s\n五门课成绩:%5.lf,%5.lf,%5.lf,%5.lf,%5.lf\n平均成绩: %6.2f\n”,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].aver);
}
}
}
}

struct student youxiu(struct student stu[])
{
int i;
printf(“平均成绩90以上或者全部课程85以上的:\n”);
for(i=0;i<3;i++)
{
if(stu[i].aver>90||stu[i].score[0]>85&&stu[i].score[1]>85&&stu[i].score[2]>85&&stu[i].score[3]>85&&stu[i].score[4]>85)
printf(“学号:%d\n姓名:%s\n五门课成绩:%5.lf,%5.lf,%5.lf,%5.lf,%5.lf\n平均成绩:%6.2f\n”,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].aver);
printf(“\n”);
}
} —743


利用结构体知识,分析以下问题。  
 某班级有N个学生,本学期选修5门课程,每个学生信息包括:学号,姓名,出生日期,成绩。要求:1、根据学生总分,对成绩排序,输出学生信息;2、统计班级不及格人、门次数,将其输出。



#include<stdio.h>
#define N 3
struct Student
{int num;
char name[20];
float score[3];
double aver;
};

int main()
{void input(struct Student stu[]);
struct Student max(struct Student stu[]);
void print(struct Student stu);
struct Student stu[N],*p=stu;
input§;
print(max§);
return 0;
}

void input(struct Student stu[])
{int i;
printf(“请输入各学生的信息:学号、姓名、3门课成绩:\n”);
for(i=0;i<N;i++)
{scanf(“%d%s%f%f%f”,&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
}
}

struct Student max(struct Student stu[])
{int i,m=0;
for(i=0;i<N;i++)
if(stu[i].aver>stu[m].aver)m=i;
return stu[m];
}

void print(struct Student stud)
{printf(“\n成绩最高的学生是:\n”);
printf(“学号:%d\n姓名:%s\n三门课成绩:%5.1f,%5.1f,%5.1f\n平均成绩:%6.2f\n”,stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);
} —778


3.10改写例3.3,使之可以适用于任何大写字母,把它转换位小写字母,然后用putchar函数输出该小写字母



#include<stdio.h>
int main()
{
char c1,c2;
c1=getchar();
c2=c1+32;
putchar(c2);
putchar(‘\n’);
return 0;
}


4.1在例3.5的基础上对程序进行改进。题目要求解得ax2+bx+c=0方程的根。由键盘输入a,b,c.假设a,b,c的值任意,并不保证b2-4ac>=0.需要在程序中进行判别,如果b2-4ac>=0,就计算并输出方程的两个实根,如果b2-4ac<0.就输出“此方程无实根”的信息



#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,x1,x2,p,q;
scanf(“%1f%1f%1f”,&a,&b,&c);
disc=bb-4a*c;
if(disc<0)
printf(“This equation hasn’t real roots\n”);
else
{
p=-b/(2.0 a);
q=sqrt(disc)/(2.0
a);
x1=p+q;x2=p-q;
printf(“real roots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);
}
return 0;
}


4.2输入两个师叔,按由小到大的顺序输出这两个数



#include<stdio.h>
int main()
{
float a,b,t;
scanf(“%f%f”,&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf(“%5.2f,%5.2f\n”,a,b);
return 0;
}


4.3输入3个数a,b,c,要求按从小到大的顺序输出



#include<stdio.h>
int main()
{
float a,b,c,t;
scanf(“%f%f%f”,&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(“%5.2f,%5.2f,%5.2f\n”,a,b,c);
return 0;
}


4.4输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。



#include<stdio.h>
int main()
{
char ch;
scanf(“%c”,&ch);
ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;
printf(“%c\n”,ch);
return 0;
}


4.5有一阶跃函数y={-1(x<0);0(x=0);1(x>0),编译程序,输入一个x值,要求输出相应的y值。



#include<stdio.h>
int main()
{
int x,y;
scanf(“%d”,&x);
if(x<0)
y=-1;
else
if(x==0)y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y);
return 0;
}


4.6要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70-84分,C等为60-69分,D等为60分以下。成绩的等级由键盘输入。



#include<stdio.h>
int main()
{
char grade;
scanf(“%c”,&grade);
printf(“Your score:”);
switch(grade)
{
case’A’:printf(“85-100\n”);break;
case’B’:printf(“70-84\n”);break;
case’C’:printf(“60-69\n”);break;
case’D’:printf(“<60\n”);break;
default:printf(“enter data error!\n”);
}
return 0;
}


4.7用switch语句处理菜单命令。在许多应用程序中,用菜单对流程进行控制,例如从键盘输入一个’A’或’a’字符,就会执行A操作,输入一个‘B’或’b’字符,就会执行B操作。可以按照以下思路编写程序。



#include<stdio.h>
int main()
{
void action1(int,int),action2(int,int);
char ch;
int a=15,b=23;
ch=getchar();
switch(ch)
{
case’a’:
case’A’:action1(a,b);break;
case’b’:
case’B’:action2(a,b);break;
default:putchar(‘\a’);
}
return 0;
}
void action1(int x,int y)
{
printf(“x+y=%d\n”,x+y);
}
void action2(int x,int y)
{
printf("xy=%d\n",xy);
}


4.8写一程序,判断某一年是否为闰年。



#include<stdio.h>
int main()
{
int year,leap;
printf(“enter year:”);
scanf(“%d”,&year);
if(year%40)
{
if(year%100
0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if(leap)
printf(“%d is”,year);
printf(“a leap year.\n”);
return 0;
}


4.9求ax^2+bx+c=0方程的解



#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,x1,x2,realpart,imagpart;
scanf(“%1f%1f%1f”,&a,&b,&c);
printf(“the equation”);
if(fabs(a)<=1e-6)
printf(“is not a quadratic\n”);
else
{
disc=bb-4ac;
if(fabs(disc)<=1e-6)
printf(“has two equal roots:%8.4f\n”,-b/(2
a));
else
if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2a);
x2=(-b-sqrt(disc))/(2
a);
printf(“has distinct real roots:%8.4f and %8.4f\n”,x1,x2);
}
else
{
realpart=-b/(2a);
imagpart=sqrt(-disc)/(2
a);
printf(“has complex roots:\n”);
printf(“%8.4f+%8.4fi\n”,realpart,imagpart);
printf(“%8.4f-%8.4fi\n”,realpart,imagpart);
}
}
return 0;
}


4.10运输公司对用户计算运输费用。路程越远,运费越低。标准如下。  
 S<250 没有折扣  
 250<=s<500 2%折扣  
 500<=s<1000 5%折扣  
 1000<=s<2000 8%折扣  
 2000<=s<3000 10%折扣  
 3000<=s 15%折扣



#include<stdio.h>
int main()
{
int c,s;
float p,w,d,f;
printf(“please enter price,weight,discount:”);
scanf(“%f%f%d”,&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch©
{
case0:d=0;break;
case1:d=2;break;
case2:
case3:d=5;break;
case4:
case5:
case6:
case7:d=8;break;
case8:
case9:
case10:
case11:d=10;break;
case12:d=15;break;
}
f=pws*(1-d/100);
printf(“freight=%10.2f\n”,f);
return 0;
}


5.1求1+2+3+…+100



#include<stdio.h>
int main()
{
int i=1,sum=0;
while(i<=100)
{
sum=sum+i;
i++;
}
printf(“sum=%d\n”,sum);
return 0;
}


5.2用do…while语句求1+2+3+…+100



#include<stdio.h>
int main()
{
int i=1,sum=0;
do
{
sum=sum+i;
i++;
};
while(i<=100)
printf(“sum=%d\n”,sum);
return 0;
}


5.4在全系1000名学生中举行慈善募捐,当总数达到10万元时就结束,统计此时捐款人数以及平均每人捐款的数目。



#include<stdio.h>
#define SUM 100000
int main()
{
float amount,aver,total;
int i;
for(i=1,total=0;i<=1000;i++)
{
printf(“please enter amount:”);
scanf(“%f”,&amount);
total=total+amount;
if(total>=SUM)break;
}
aver=total/i;
printf(“num=%d\naver=%10.2f\n”,i,aver);
return 0;
}


补充练习:  
 输入5名学生的分数并显示它们的总分和平均分



#include <stdio.h>

int main(void)
{
int uchida;
int satoh;
int hiraki;
int masaki;
int sum = 0;

puts("请输入分数。");  
printf("1号:");  scanf("%d", &uchida);  
printf("2号:");  scanf("%d", &satoh);  
printf("3号:");  scanf("%d", &hiraki);  
printf("4号:");  scanf("%d", &masaki);  
printf("5号:");  scanf("%d", &masaki);  

sum += uchida;  
sum += satoh;  
sum += hiraki;  
sum += masaki;  
sum += masaki;  
  
printf("总分:%5d\n", sum);  
printf("平均分:%5.1f\n", (double)sum / 5);  
return (0);  

}


依次把1,2,3,4,5赋值给数组每个元素并显示



#include <stdio.h>

int main(void)
{
int vc[5]; // 包含5个元素的数组

vc[0] = 1;  
vc[1] = 2;  
vc[2] = 3;  
vc[3] = 4;  
vc[4] = 5;  

printf("vc[0] = %d\n", vc[0]);  
printf("vc[1] = %d\n", vc[1]);  
printf("vc[2] = %d\n", vc[2]);  
printf("vc[3] = %d\n", vc[3]);  
printf("vc[4] = %d\n", vc[4]);  
return (0);  

}


依次把1/2/3/4/5赋值给数组每个元素并显示 (使用for语句)



#include <stdio.h>

int main(void)
{
int i;
int vc[5]; // 包含5个元素的数组

for (i = 0; i < 5; i++)  
    vc[i] = i + 1;  

for (i = 0; i < 5; i++)  
    printf("vc[%d] = %d\n", i, vc[i]);  
return (0);  `这里写代码片`

}


将数组的全部元素赋值为(0.0)并显示



#include <stdio.h>

int main(void)
{
int i;
double vd[5];

for (i = 0; i < 5; i++)  
    vd[i] = 0.0;  
  
for (i = 0; i < 5; i++)  
    printf("vd[%d] = %.1f\n", i, vd[i]);  

return (0);  

}


从头开始顺次为数组各元素进行初始化(1,2,3,4,5)并进行显示



#include <stdio.h>

int main(void)
{
int i;
int vc[5] = {1, 2, 3, 4, 5};

for (i = 0; i < 5; i++)  
    printf("vc[%d] = %d\n", i, vc[i]);  

return (0);  

}


把数组中的全部元素赋值到另一个数组中



#include <stdio.h>

int main(void)
{
int i;
int va[5] = {15, 20, 30};
int vb[5];

for (i = 0; i < 5; i++)  
    vb[i] = va[i];  

puts(" va vb");  
puts("------");  
for (i = 0; i < 5; i++)  
    printf("%3d%3d\n", va[i], vb[i]);  

return (0);  

}


输入数组元素的值并显示



#include <stdio.h>

int main(void)
{
int i;
int vx[5];

for (i = 0; i < 5; i++) {  
    printf("vx[%d]:", i);  
    scanf("%d", &vx[i]);  
}  
  
for (i = 0; i < 5; i++)  
    printf("vx[%d]=%d\n", i, vx[i]);  
      
return (0);      

}


对数组中的全部元素进行倒序排列



#include <stdio.h>

int main(void)
{
int i;
int vx[5];

for (i = 0; i < 5; i++) {  
    printf("vx[%d]:", i);  
    scanf("%d", &vx[i]);  
}  
  
for (i = 0; i < 2; i++) {  
    int temp = vx[i];  
    vx[i] = vx[4 - i];  
    vx[4 - i] = temp;      
}  
  
for (i = 0; i < 5; i++)  
    printf("vx[%d]=%d\n", i, vx[i]);  
      
return (0);      

}


输入5名学生的分数并显示出它们的总分和平均分



#include <stdio.h>

int main(void)
{
int i;
int tensu[5]; // 5名学生的分数
int sum = 0; // 总分

puts("请输入学生的分数。");  
for (i = 0; i < 5; i++) {  
    printf("%2d号:", i + 1);  
    scanf("%d", &tensu[i]);  
    sum += tensu[i];  
}  
  
printf("总分:%5d\n", sum);  
printf("平均分:%5.1f\n", (double)sum / 5);  
  
return (0);          

}


输入5名学生的分数并显示出其中的最高分和最低分



#include <stdio.h>

#define NUMBER 5 // 学生人数

int main(void)
{
int i;
int tensu[NUMBER]; // 5名学生的分数
int max, min; // 总分

puts("请输入学生的分数。");  
for (i = 0; i < NUMBER; i++) {  
    printf("%2d号:", i + 1);  
    scanf("%d", &tensu[i]);  
}  
  
min = max = tensu[0];  
  
for (i = 1; i < NUMBER; i++) {  
    if (tensu[i] > max)    max = tensu[i];  
    if (tensu[i] < min)    min = tensu[i];  
}  
  
printf("最高分:%d\n", max);  
printf("最低分:%d\n", min);  
  
return (0);          

}


输入5名学生的分数并显示出60分以上的一览表



#include <stdio.h>

#define NUMBER 5 // 学生人数

int main(void)
{
int i;
int snum = 0; // 及格学生人数
int tensu[NUMBER]; // NUMBER名学生的分数
int succs[NUMBER]; // 及格学生一览表(保存及格学生的下标)

puts("请输入学生的分数。");  
for (i = 0; i < NUMBER; i++) {  
    printf("%2d号:", i + 1);  
    scanf("%d", &tensu[i]);  
    if (tensu[i] >= 60)  
        succs[snum++] = i;               // 添加到及格学生一览表中   
}  
  
puts("及格学生一览表");  
puts("--------------");  
for (i = 0; i < snum; i++)  
    printf("%2d号(%3d分)\n", succs[i] + 1, tensu[succs[i]]);  
  
return (0);  

}


输入学生的分数并显示出分布情况



#include <stdio.h>

#define NUMBER 80 // 人数上限

int main(void)
{
int i, j;
int num; // 实际的人数
int tensu[NUMBER]; // 学生的分数
int bunpu[11] = {0}; // 分布图

printf("请输入学生人数:");  
  
do {  
    scanf("%d", &num);  
    if (num < 1 || num > NUMBER)  
        printf("\a人数范围[1到%d] :", NUMBER);  
} while (num < 1 || num > NUMBER);  
  
puts("请输入学生的分数。");  
for (i = 0; i < num; i++) {  
    printf("%2d号:", i + 1);  
    do {   
        scanf("%d", &tensu[i]);  
        if (tensu[i] < 0 || tensu[i] > 100)  
            printf("\a分数范围[0到100]:");  
    } while (tensu[i] < 0 || tensu[i] > 100) ;  
    bunpu[tensu[i] / 10]++;  
}   
  
puts("\n----分布图----");  
printf("      100:");  
for (j = 0; j < bunpu[10]; j++)  
    putchar('*');  
putchar('\n');  
  
for (i = 9; i >= 0; i--) {  
    printf("%3d - %3d:", i * 10, i * 10 + 9);  
    for (j = 0; j < bunpu[i]; j++)  
        putchar('*');  
    putchar('\n');  
}  
   
 return (0);     

}


计算2行3列矩阵的和



#include <stdio.h>

int main(void)
{
int i, j;
int ma[2][3] = {{1, 2, 3}, {4, 5, 6}};
int mb[2][3] = {{6, 3, 4}, {5, 1, 2}};
int mc[2][3] ={0};

for (i = 0; i < 2; i++)  
    for (j = 0; j < 3; j++)  
        mc[i][j] = ma[i][j] + mb[i][j];   
          
for (i = 0; i < 2; i++) {  
    for (j = 0; j < 3; j++)  
        printf("%3d", mc[i][j]);  
    putchar('\n');    
}  
  
return (0);  

}


计算出1000以内的质数(第1版)



#include <stdio.h>

int main(void)
{
int i, no;
unsigned long counter = 0;

for (no = 2; no <= 1000; no++) {  
    for (i = 2; i < no; i++) {          // 能被整除的不是质数   
        counter++;                      // 退出上述循环   
        if (no % i == 0)  
            break;  
    }  
    if (no == i)                        // 直到最后也未被整除   
        printf("%d\n", no);  
}      
  
printf("乘除运算的次数:%lu\n", counter);  
  
return (0);  

}


计算出1000以内的质数(第2版)



#include <stdio.h>

int main(void)
{
int i, no;
unsigned long counter = 0;

no = 2;                                 // 2是偶数中唯一的质数   
printf("%d\n", no++);   
  
for (; no <= 1000; no += 2) {           // 只把奇数作为判断对象   
    for (i = 2; i < no; i++) {          // 能被整除的不是质数   
        counter++;                      // 退出上述循环   
        if (no % i == 0)  
            break;  
    }  
    if (no == i)                        // 直到最后也未被整除   
        printf("%d\n", no);  
}      
  
printf("乘除运算的次数:%lu\n", counter);  
  
return (0);  

}


计算出1000以内的质数(第3版)



#include <stdio.h>

int main(void)
{
int i, no;
unsigned long counter = 0;

no = 2;                                 // 2是偶数中唯一的质数   
printf("%d\n", no++);   
  
for (; no <= 1000; no += 2) {           // 只把奇数作为判断对象   
    for (i = 3; i < no; i += 2) {       // 只判断能否被奇数整除   
        counter++;                      // 退出上述循环   
        if (no % i == 0)  
            break;  
    }  
    if (no == i)                        // 直到最后也未被整除   
        printf("%d\n", no);  
}      
  
printf("乘除运算的次数:%lu\n", counter);  
  
return (0);  

}


计算出1000以内的质数(第4版)



#include <stdio.h>

int main(void)
{
int i, no;
int prime[500]; // 用来保存质数的数组
int ptr = 0; // 已经的到的质数个数
unsigned long counter = 0;

prime[ptr++] = 2;  
prime[ptr++] = 3;  
  
for (no = 5; no <= 1000; no += 2) {     // 只把奇数作为判断对象   
    for (i = 1; i < ptr; i++) {         // 尝试能否被已经得到的质数整除   
        counter++;                       
        if (no % prime[i] == 0)         // 能被整除的不是质数   
            break;                      // 退出上述循环   
    }   
    if (ptr == i)                        // 直到最后也未被整除   
        prime[ptr++] = no;               // 添加到数组中      
}  
  
for (i = 0; i < ptr; i++)  
    printf("%d\n", prime[i]);  
   
printf("乘除运算的次数:%lu\n", counter);  

return (0);  

}


计算出1000以内的质数(第5版)



#include <stdio.h>

int main(void)
{
int i, no;
int prime[500]; // 用来保存质数的数组
int ptr = 0; // 已经的到的质数个数
unsigned long counter = 0;

prime[ptr++] = 2;  
prime[ptr++] = 3;  
  
for (no = 5; no <= 1000; no += 2) {     // 只把奇数作为判断对象   
    int flag = 0;  
    for (i = 1; counter++, prime[i] * prime[i] <= no; i++) {          
        counter++;                       
        if (no % prime[i] == 0) {        // 能被整除的不是质数   
            flag = 1;  
            break;  
        }                                // 退出上述循环   
    }   
    if (!flag)                          // 直到最后也未被整除   
        prime[ptr++] = no;               // 添加到数组中      
}  
  
for (i = 0; i < ptr; i++)  
    printf("%d\n", prime[i]);  
   
printf("乘除运算的次数:%lu\n", counter);  

return (0);  

}


依次把0,1,2,3,4赋值给数组每个元素并显示 (使用for语句)



#include <stdio.h>

int main(void)
{
int i;
int vc[5]; // 包含5个元素的数组

for (i = 0; i < 5; i++)  
    vc[i] = i;  

for (i = 0; i < 5; i++)  
    printf("vc[%d] = %d\n", i, vc[i]);  

return (0);  

}


依次把5,4,3,2,1赋值给数组每个元素并显示 (使用for语句)



#include <stdio.h>

int main(void)
{
int i;
int vc[5]; // 包含5个元素的数组

for (i = 0; i < 5; i++)  
    vc[i] = 5 - i;  

for (i = 0; i < 5; i++)  
    printf("vc[%d] = %d\n", i, vc[i]);  

return (0);  

}


从头开始顺次为数组各元素进行初始化(5,4,3,2,1)并进行显示



#include <stdio.h>

int main(void)
{
int i;
int vc[5] = {5, 4, 3, 2, 1};

for (i = 0; i < 5; i++)  
    printf("vc[%d] = %d\n", i, vc[i]);  

return (0);  

}


把数组中的全部元素倒序赋值到另一个数组中



#include <stdio.h>

int main(void)
{
int i;
int va[5] = {15, 20, 30};
int vb[5];

for (i = 0; i < 5; i++)  
    vb[i] = va[4 - i];  

puts(" va vb");  
puts("------");  
for (i = 0; i < 5; i++)  
    printf("%3d%3d\n", va[i], vb[i]);  

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

i, vc[i]);

return (0);  

}


依次把5,4,3,2,1赋值给数组每个元素并显示 (使用for语句)



#include <stdio.h>

int main(void)
{
int i;
int vc[5]; // 包含5个元素的数组

for (i = 0; i < 5; i++)  
    vc[i] = 5 - i;  

for (i = 0; i < 5; i++)  
    printf("vc[%d] = %d\n", i, vc[i]);  

return (0);  

}


从头开始顺次为数组各元素进行初始化(5,4,3,2,1)并进行显示



#include <stdio.h>

int main(void)
{
int i;
int vc[5] = {5, 4, 3, 2, 1};

for (i = 0; i < 5; i++)  
    printf("vc[%d] = %d\n", i, vc[i]);  

return (0);  

}


把数组中的全部元素倒序赋值到另一个数组中



#include <stdio.h>

int main(void)
{
int i;
int va[5] = {15, 20, 30};
int vb[5];

for (i = 0; i < 5; i++)  
    vb[i] = va[4 - i];  

puts(" va vb");  
puts("------");  
for (i = 0; i < 5; i++)  
    printf("%3d%3d\n", va[i], vb[i]);  

[外链图片转存中…(img-QSnvxnPf-1715750147704)]
[外链图片转存中…(img-DXz7yWcy-1715750147705)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值