1、写一个程序,输出如下内容:

 //#############################################################
//### name number math english computer ###
//### zhanghua ,9901, 80.5, 87.0, 80.0 ###
//### lina ,9902, 70.0, 80.0, 90.0 ###
//### wanggang ,9903, 87.0, 76.0, 78.0 ###
//#############################################################

程序代码:

 struct score{
       char *name;
      int number;
      float math;
       float english;
       float computer;
       }; struct score sc[] = {
{"zhanghua", , 80.5, , },
{"lina", , , , },
{"wanggang", , , , },
};
printf("name number math english computer\n"); for (int i=; i<; i++) {
printf("%-9s,%d,%10.1f,%10.1f,%10.1f\n",sc[i].name, sc[i].number,sc[i].math,sc[i].english,sc[i].computer);
}

回车后输出:

 name      number     math       english    computer
zhanghua ,, 80.5, 87.0, 80.0
lina ,, 70.0, 80.0, 90.0
wanggang ,, 87.0, 76.0, 78.0
Program ended with exit code:

2,计算2+4+6+8+。。。+100

     int sum = ;
for (int i=; i<=; i+=) {
sum+=i;
}
printf("2+4+6+8+...+100=%d.\n",sum);

回车后输出:

 ++++...+=.
Program ended with exit code:

3、计算1到100之间的奇数和与偶数和

     int jsum = ;
int osum = ; for (int i= ;i<= ; i++) {
if (i%) {
jsum+=i;
}else{
osum+=i;
}
} printf("jsum=%d,\tosum=%d\n", jsum, osum);

回车后输出:

 jsum=,    osum=
Program ended with exit code:

4、求1到100的非素数之和

     int sum = ;
int j= ;
for (int i=; i<=; i++) {
for (j=; j<i; j++) {
if (i%j==) {
break;
}
}
if (j!=i) {
sum=sum+i;
printf("%d\t",i);
}
}
printf("\n%d\n",sum);

回车后输出:

 jsum=,    osum=
Program ended with exit code:

5、调用子函数实现1到100的非素数和,其中子函数判断数字是否非素数,如果非素数,则返回

主函数:

     int sum = ;
for (int i = ; i<=; i++) {
sum += sushu(i);
}
printf("%d\n", sum);

子函数:

 int sushu(int n){
int i;
for (i=; i<n; i++) {
if (n%i==) {
break;
}
}
if (n!=i) {
return ;
}else{
return n;
}
}

输出:

 Program ended with exit code: 

6、有一个四位正整数,组成着四个正整数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位数互换,组成一个新的四位数,原来四位数刚好是新四位数的4倍,求这样的四位数:

 int a = ;
int b = ;
for (int i=; i<; i++) {
for (int j=; j<; j++) {
for (int k=; k<; k++) {
for (int l=; l<; l++) {
a=*i+*j+*k+l;
b=*l+*k+*j+i;
if (a==*b && i!=j &&j!=k && k!=l) {
printf("%d\t",a);
}
}
}
}
}
printf("\n");

输出:

  Program ended with exit code: 

7、两个乒乓球队进行比赛,各处三个人,甲队为A,B,C三人,乙队为X,Y,Z三人,其中A不和X比,C不和X,Z比,请编程找出三对赛手的名单:

 //设A=1,B=2,C=3.

     int x,y,z;
for (x=; x<; x++) {
for (y=; y<; y++) {
for (z=; z<; z++) {
if ((x+y+z)== && (x!=) && (x!=) && (z!=) &&(x!=y) && (y!=z)) {
printf("x=%d\ty=%d\tz=%d", x, y, z);
}
}
}
}

输出:

x=    y=    z=
Program ended with exit code:

8、对一个3*3的二维数组进行转置,即行列互换

    int a[][] = {, , , , , , , , };
int tmp = ; for (int i=; i<; i++) {
for (int j=i+; j<; j++) {
tmp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = tmp;
}
} for (int i=; i<; i++) {
for (int j=; j<; j++) {
printf("%d\t",a[i][j]);
}
printf("\n");
}

输出:


 Program ended with exit code: 

9、输入20个正整数,判断是否素数,如果是则排序。

主函数:

 int a[] = {};
int b[] = {}; printf("请输入20个正整数\n"); for (int i=; i<; i++) {
scanf("%d",&a[i]);
b[i] = sushu(a[i]);
} rank(b, ); for (int i=; i<; i++) {
if (b[i]>) {
printf("%d\t",b[i]);
}
} printf("\n");

rank()子函数(使用选择法排序):

 void rank(int *p, int n){
int max = ;
int tmp = ;
for (int i=; i<n-; i++) {
max=i;
for (int j=i+; j<n;j++) {
if (*(p+max)<*(p+j)) {
max = j;
}
} if (i!=max) {
tmp = *(p+max);
*(p+max) = *(p+i);
*(p+i) = tmp;
}
}
}

10、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数:①输入10个数;②进行处理;③输出10个数。

主函数:

     int a[] = {};
printf("请输入十个数:\n");
inputnum(a);
deal(a, );
output(a, );

输入、输出、处理子函数:

 // 输入十个数子函数
void inputnum(int *a){ for (int i=;i< ; i++) {
scanf("%d",&a[i]);
} } // 处理函数:将其中最小的数与第一个数对换,把最大的数与最后一个数对换
void deal(int *p, int n){
int max=,min=;
int tmp=,i=,j=;
max=i;
for (i=; i<n;i++) {
if (*(p+max)<*(p+i)) {
max=i;
} }
tmp = *(p+max);
*(p+max) = *(p+);
*(p+) = tmp; min=j;
for (j=; j<n;j++) {
if (*(p+min)>*(p+j)) {
min=j;
}
} tmp = *(p+min);
*(p+min) = *(p+n-);
*(p+n-) = tmp;
} // 输出函数
void output(int *p, int n){
for (int i=; i<n; i++) {
printf("%d\t",p[i]);
}
printf("\n");
}

11、使用子函数对数列排序:

主函数:

     int main() {

     int a[] = {, , , , ,};

     rank(a,);

     for (int i=; i<; i++) {
printf("%d\t", a[i]);
} printf("\n"); return ;
}

子函数:

 void rank(int * p, int n){

     int max = ;
int tmp = ; for (int i=; i<n-; i++) {
max=i;
for (int j=i+; j<n; j++) {
if (*(p+max)<*(p+j)) {
max=j;
}
}
if (i!=max) {
tmp = *(p+i);
*(p+i) = *(p+max);
*(p+max) =tmp;
}
}
}

12、有n个学生,每个学生的数据包括学号(num),姓名(name[20]),性别(sex),年龄(age),

三门课的成绩(score[3])。要求在main函数中输入这n个学生的数据,  然后调用一个函数count,在该函数中计算出每个学生的总分和平均分, 然后打印出所有各项数据(包括原有的和新求出的)。

     int i;
float s0,s1,s2; struct student a[]; for(i=;i<;i++) {
scanf("%d%s %c%d%f%f%f",&a[i].num, a[i].name, &a[i].sex,&a[i].age, &s0, &s1, &s2);
a[i].score[]=s0;a[i].score[]=s1;a[i].score[]=s2;
printf("%d %s %c %d %4.1f %4.1f %4.1f\n",a[i].num,a[i].name, a[i].sex,a[i].age,a[i].score[],a[i].score[],a[i].score[]);
}
count(a,);
printf("=============================================\n");
printf("NO name sex age score[0] score[1] score[2] total ave\n"); for(i=;i<;i++)
printf("%d  %s  %c  %d  %5.1f  %5.1f %5.1f %5.1f %5.1f\n", a[i].num,a[i].name,a[i].sex,a[i].age,a[i].score[], a[i].score[],a[i].score[],a[i].total,a[i].ave); return ;

结构体定义:

 struct student
{
int num;
char name[];
char sex;
int age;
float score[];
float total;
float ave;
};

count()子函数:

 void count(struct student * b,int n) {
int i,j;
for(i=;i<n;i++) {
for(j=;j<;j++)
b[i].total+= b[i].score[j];
b[i].ave=b[i].total/;
}
}

C语言-指针、数组、结构体、分支、循环混合使用的更多相关文章

  1. c语言指针与结构体

    #include <stdio.h> #include <stdlib.h> struct mydata { int num; ]; }; void main1() { /*i ...

  2. C语言基础知识点整理(函数/变量/常量/指针/数组/结构体)

    函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...

  3. c语言指针与结构体之内存动态分配

    struct dangdangtest { ]; ]; ]; int num; int bugnum; ]; ]; double RMB; }; void main2() { //struct dan ...

  4. 数据结构复习之C语言指针与结构体

    数据结构指针复习: #include <stdio.h> void main() { ] = {, , , , }; // a[3] == *(3+a) printf(+a)); // a ...

  5. [todo0211]c语言指针,结构体的疑问

    #include <stdio.h> #include <mm_malloc.h> struct ListNode { int val; struct ListNode *ne ...

  6. C语言--- 高级指针2(结构体指针,数组作为函数参数)

    一.结构体指针 1. 什么是结构体指针?指向结构体变量的指针     结构体:     typedef  struct stu{                          char name[ ...

  7. 嵌入式-C语言基础:通过结构体指针访问结构体数组

    #include<stdio.h> #include<string.h> struct Student { char name[32]; int age; int height ...

  8. C语言中的结构体,结构体数组

    C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存 ...

  9. Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型

    Android For JNI(五)--C语言多级指针,结构体,联合体,枚举,自定义类型 我们的C已经渐渐的步入正轨了,基础过去之后,就是我们的NDK和JNI实战了 一.多级指针 指针的概念我们在前面 ...

  10. C++ 利用指针和数组以及指针和结构体实现一个函数返回多个值

    C++ 利用指针和数组实现一个函数返回多个值demo1 #include <iostream> using namespace std; int* test(int,int,int); i ...

随机推荐

  1. apache.commoms.digester3 解析xml文件

    Technorati 标签: java,xml,digester,xmlrule,FromXmlRulesModule 1 简介 java解析xml,就个人所知有3种方法DOM.SAX和Digeste ...

  2. ubuntu apache 安装awstats 流量分析工具(命令方式)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  3. jq的事件冒泡

    在页面上可以有多个事件,也可以多个元素响应同一件事, 事件冒泡引发的问题: 有些时候不想动用的事件,却因为事件冒泡而触发 解决问题: 1.事件对象 由于IE-DOM和标准的DOM实现事件对象的方法各不 ...

  4. CF 299 div2 C 博弈

    http://codeforces.com/contest/299/problem/C 题目大意: 给两个0,1串保证长度都是2*n(偶数),问,Yaroslav, Andrey按照顺序取,首先是ya ...

  5. jstat undocumented

    jstat -J-Djstat.showUnsupported=true -name btrace.com.sun.btrace.samples.ThreadCounter.count 11674 h ...

  6. 生成Token字符串

    生成比较短的Token字符串 有的时候,我们需要生成一些Token作为标识:如认证后的标识符,资源的提取码等.一个比较常见的算法是生成一个GUID来作为Token,由于GUID的随机性和唯一性特点,作 ...

  7. CALayer & UIView 关系浅析

    原文链接:http://www.jianshu.com/p/8e6a313c158e 一.CALayer和UIView的关系 UIView显示在屏幕上归功于CALayer 可以说:UIView依赖CA ...

  8. java中“==”和equal区别

    8个月以后就要正式找工作啦,我觉得现在是时候花时间好好深入研究一下以前比较混肴的知识.这就当作是自我成长的第一步! 对于String中的“equal方法”和“==”一直有点混肴,今天重新看了一下他们两 ...

  9. Struts2利用注解实现action跳转

    使用注解来配置Action的最大好处就是可以实现零配置,但是事务都是有利有弊的,使用方便,维护起来就没那么方便了. 要使用注解方式,我们必须添加一个额外包:struts2-convention-plu ...

  10. 2快速掌握OMD

    我们已经知道使用ArcGIS Engine开发,也就意味着我们要和接口打交道,ArcGIS Engine中提供的接口和类加起来估计上万,但是用过ArcGIS Engine的人,知道这个数字不为过.Ar ...