第一次接触C语言

有奖征资源,博文分享有内涵          5月推荐博文汇总          第二届战神杯编程挑战月赛          2014 CSDN博文大赛
 C程序设计Week12晚上练习
分类: C课程 2014-05-13 15:27 231人阅读 评论(0) 收藏 举报

本周只进行一个程序,以前的一个程序。


自定义如下函数,输入n(n<46)个学生的姓名和成绩,顺序输出这n个学生的姓名和成绩,并输出最高成绩的姓名和成绩。预习struct结构体,思考如何改进这一程序。


[cpp] view plaincopy
 //为count个学生输入姓名和成绩  
 void getStudentsInfo(char names[][20], int scores[] , int count);  
 void getStudentsInfo(char* names[], int scores[] , int count);  
 //依次打印count个学生的姓名和成绩   
void printStudentsInfo(char* names[], int scores[],int count);   
//获取最高成绩的学生的index   
int getIndexOfMaxScore(int scores[],int count);  

知识点:
1 字符串数组用于处理多个人的姓名
2 数组作为函数的参数

the core code:

[cpp] view plaincopy
/* Note:Your choice is C IDE */  
#include "stdio.h"  
  
void inputStudents(char name[][20],int score[],int num);  
void outputStudents(char name[][20],int score[],int num);  
main()  
{  
    char name[45][20];  
    int  score[45];  
      
    inputStudents(name,score,2);  
    outputStudents(name,score,2);  
      
}  
  
void inputStudents(char name[][20],int score[],int num){  
     int i ;  
     for(i=0;i<num;i++)  
       scanf("%s %d",name[i],&score[i]);  
}  
void outputStudents(char name[][20],int score[],int num){  
     int i ;  
     for(i=0;i<num;i++)  
      printf("%s %d",name[i],score[i]);  
}  











an example :

[cpp] view plaincopy
/* Note:Your choice is C IDE */  
#include "stdio.h"  
#define N 45  
  
int inputSS(char names[][20],int score[],int num);  
void printSS(char names[][20],int score[],int num);  
void getMAX(char names[][20],int score[],int num);  
  
main()  
{  
  char names[N][20];  
  int score[N];  
  int num=0;   
  int choose;  
  
  printf("What do you want to do: INPUT(1),OUTPUT(2),MAX(3),EXIT(0):");  
  scanf("%d",&choose);  
  do{  
     switch(choose){  
       case 1:    
         num = inputSS(names,score,num);  
         break;  
       case 2:  
         printSS(names,score,num);  
         break;  
       case 3:  
         getMAX(names,score,num);  
     }  
     printf("\nWhat do you want to do: INPUT(1),OUTPUT(2),MAX(3),EXIT(0):");  
     scanf("%d",&choose);  
    }while(choose != 0);  
      
}  
int inputSS(char names[][20],int score[],int num){  
    int n,i;  
    printf("\nThis Time, How many students do you want to input :");  
    scanf("%d",&n);  
      
    if((n+num)>N || n <1){  
      printf("not valid sum\n");  
      return -1;  
    }  
    printf("NOW INPUT AS ( NAME SCORE ):\n");  
    for(i=0;i<n;i++){  
      printf("%d. ",i);  
      scanf("%s %d",&names[i+num],&score[i+num]);  
    }  
    printf("THIS TIME , INPUT IS OVER\n");  
    return num+n;  
}  
void printSS(char names[][20],int score[],int num){  
    int i ;  
    if(num==0) {  
        printf("NO STUDENTS NOW\n");  
        return;  
    }  
  
    printf("\nNOW , THE STUDENTS SCORES AS FOLLOWS \n");  
      
    for(i = 0 ;i<num;i++)  
      printf("%2d. name:%10s score:%3d\n",i,names[i],score[i]);  
}  
void getMAX(char names[][20],int score[],int num){  
      
    int i ,max_index,max_score;  
      
    if(num==0) {  
        printf("NO STUDENTS NOW\n");  
        return;  
    }  
      
      
    max_index=0;  
    max_score=score[0];  
      
    for(i = 1 ;i<num;i++)  
      if( score[i] > max_score ){  
         max_score = score[i];  
         max_index = i;  
      }  
      
    printf("The Top Score is %d  by %s \n",score[max_index],names[max_index]);  
      
}  

=====================华丽的分割线====================================================

有很多知识点需要大家复习,下面是一些比较cute的程序,弄懂啊弄懂

[cpp] view plaincopy
//0  
#include "stdio.h"  
void main(){  
  int i=0, a[]={3,4,5,4,3};  
  do  
  {  
      a[i]++;  
   }while(a[++i]<5);  
   
  for(i=0;i<5;i++)  
     printf("%d",a[i]) ;  
}  
  
//1  
#include "stdio.h"  
void main(){  
   int a = 7;  
   int b = 8;  
   printf ( "a&b = %d\n",a&b);  
   printf( "a&&b = %d\n",a&&b);  
}  
//2   
#include "stdio.h"  
void main(){  
   int i ;  
   for(int i = 0; i<4; i++){  
      if( i==2)  
         break;  
      printf("%d ",i);  
   }  
  printf("\n");  
 for(int i = 0; i<4; i++){  
      if( i==2)  
         continue;  
      printf("%d ",i);  
   }  
   printf("\n");  
}  
//3   
#include "stdio.h"  
void main(){  
  int sum=0,item=0;  
  while(item<7){  
    item++;  
    sum+=item;  
    if(sum==7)  
      break;  }  
  printf("%d\n",sum);  
}  
//4   
#include "stdio.h"  
void main(){  
  int a[]={1,2,3,4,5,6,7,8};  
  int i,x ,*p;  
  x=1;  
  p=&a[3];  
  for( i=0; i<3; i++ )  
     x *= *(p+i);  
  printf("x=%d\n",x);  
}  
//5   
#include "stdio.h"  
void main(){  
  int i=5,x=1;  
  for(;i<5;i++) x=x+1;  
  printf("%d\n",x);  
}  
//6   
#include "stdio.h"  
void main(){  
    int x,y;  
    for (x=0, y=0 ; (y!=123) &&(x<4); x++)   
       y++;  
    printf("x=%d,y=%d\n",x,y);  
}  
//7   
#include "stdio.h"  
void main(){  
 int a[7]={3,4,5,6,7,8,9};  
 int *p,*q;  
 int i,x;  
 p=&a[0];  
 q=&a[6];  
 for (i=0;i<3;i++)  
   if(*(p+i)==*(q-i) )  
      x=*(p+i)*2;  
}  
//8  
#include "stdio.h"  
void main(){  
  int a[5][5];  
  printf("&a[3][2]-a=%d\n",&a[3][2]-a);  
}  
//9  
#include "stdio.h"  
void main(){  
  int i=2,n=2;  
  for(;i<5;i++){  
     continue;  
     n=n+i;  
   }  
  printf("%d\n",n);  
}  有奖征资源,博文分享有内涵          5月推荐博文汇总          第二届战神杯编程挑战月赛          2014 CSDN博文大赛
 C程序设计Week12晚上练习
分类: C课程 2014-05-13 15:27 231人阅读 评论(0) 收藏 举报

本周只进行一个程序,以前的一个程序。


自定义如下函数,输入n(n<46)个学生的姓名和成绩,顺序输出这n个学生的姓名和成绩,并输出最高成绩的姓名和成绩。预习struct结构体,思考如何改进这一程序。


[cpp] view plaincopy
 //为count个学生输入姓名和成绩  
 void getStudentsInfo(char names[][20], int scores[] , int count);  
 void getStudentsInfo(char* names[], int scores[] , int count);  
 //依次打印count个学生的姓名和成绩   
void printStudentsInfo(char* names[], int scores[],int count);   
//获取最高成绩的学生的index   
int getIndexOfMaxScore(int scores[],int count);  

知识点:
1 字符串数组用于处理多个人的姓名
2 数组作为函数的参数

the core code:

[cpp] view plaincopy
/* Note:Your choice is C IDE */  
#include "stdio.h"  
  
void inputStudents(char name[][20],int score[],int num);  
void outputStudents(char name[][20],int score[],int num);  
main()  
{  
    char name[45][20];  
    int  score[45];  
      
    inputStudents(name,score,2);  
    outputStudents(name,score,2);  
      
}  
  
void inputStudents(char name[][20],int score[],int num){  
     int i ;  
     for(i=0;i<num;i++)  
       scanf("%s %d",name[i],&score[i]);  
}  
void outputStudents(char name[][20],int score[],int num){  
     int i ;  
     for(i=0;i<num;i++)  
      printf("%s %d",name[i],score[i]);  
}  











an example :

[cpp] view plaincopy
/* Note:Your choice is C IDE */  
#include "stdio.h"  
#define N 45  
  
int inputSS(char names[][20],int score[],int num);  
void printSS(char names[][20],int score[],int num);  
void getMAX(char names[][20],int score[],int num);  
  
main()  
{  
  char names[N][20];  
  int score[N];  
  int num=0;   
  int choose;  
  
  printf("What do you want to do: INPUT(1),OUTPUT(2),MAX(3),EXIT(0):");  
  scanf("%d",&choose);  
  do{  
     switch(choose){  
       case 1:    
         num = inputSS(names,score,num);  
         break;  
       case 2:  
         printSS(names,score,num);  
         break;  
       case 3:  
         getMAX(names,score,num);  
     }  
     printf("\nWhat do you want to do: INPUT(1),OUTPUT(2),MAX(3),EXIT(0):");  
     scanf("%d",&choose);  
    }while(choose != 0);  
      
}  
int inputSS(char names[][20],int score[],int num){  
    int n,i;  
    printf("\nThis Time, How many students do you want to input :");  
    scanf("%d",&n);  
      
    if((n+num)>N || n <1){  
      printf("not valid sum\n");  
      return -1;  
    }  
    printf("NOW INPUT AS ( NAME SCORE ):\n");  
    for(i=0;i<n;i++){  
      printf("%d. ",i);  
      scanf("%s %d",&names[i+num],&score[i+num]);  
    }  
    printf("THIS TIME , INPUT IS OVER\n");  
    return num+n;  
}  
void printSS(char names[][20],int score[],int num){  
    int i ;  
    if(num==0) {  
        printf("NO STUDENTS NOW\n");  
        return;  
    }  
  
    printf("\nNOW , THE STUDENTS SCORES AS FOLLOWS \n");  
      
    for(i = 0 ;i<num;i++)  
      printf("%2d. name:%10s score:%3d\n",i,names[i],score[i]);  
}  
void getMAX(char names[][20],int score[],int num){  
      
    int i ,max_index,max_score;  
      
    if(num==0) {  
        printf("NO STUDENTS NOW\n");  
        return;  
    }  
      
      
    max_index=0;  
    max_score=score[0];  
      
    for(i = 1 ;i<num;i++)  
      if( score[i] > max_score ){  
         max_score = score[i];  
         max_index = i;  
      }  
      
    printf("The Top Score is %d  by %s \n",score[max_index],names[max_index]);  
      
}  

=====================华丽的分割线====================================================

有很多知识点需要大家复习,下面是一些比较cute的程序,弄懂啊弄懂

[cpp] view plaincopy
//0  
#include "stdio.h"  
void main(){  
  int i=0, a[]={3,4,5,4,3};  
  do  
  {  
      a[i]++;  
   }while(a[++i]<5);  
   
  for(i=0;i<5;i++)  
     printf("%d",a[i]) ;  
}  
  
//1  
#include "stdio.h"  
void main(){  
   int a = 7;  
   int b = 8;  
   printf ( "a&b = %d\n",a&b);  
   printf( "a&&b = %d\n",a&&b);  
}  
//2   
#include "stdio.h"  
void main(){  
   int i ;  
   for(int i = 0; i<4; i++){  
      if( i==2)  
         break;  
      printf("%d ",i);  
   }  
  printf("\n");  
 for(int i = 0; i<4; i++){  
      if( i==2)  
         continue;  
      printf("%d ",i);  
   }  
   printf("\n");  
}  
//3   
#include "stdio.h"  
void main(){  
  int sum=0,item=0;  
  while(item<7){  
    item++;  
    sum+=item;  
    if(sum==7)  
      break;  }  
  printf("%d\n",sum);  
}  
//4   
#include "stdio.h"  
void main(){  
  int a[]={1,2,3,4,5,6,7,8};  
  int i,x ,*p;  
  x=1;  
  p=&a[3];  
  for( i=0; i<3; i++ )  
     x *= *(p+i);  
  printf("x=%d\n",x);  
}  
//5   
#include "stdio.h"  
void main(){  
  int i=5,x=1;  
  for(;i<5;i++) x=x+1;  
  printf("%d\n",x);  
}  
//6   
#include "stdio.h"  
void main(){  
    int x,y;  
    for (x=0, y=0 ; (y!=123) &&(x<4); x++)   
       y++;  
    printf("x=%d,y=%d\n",x,y);  
}  
//7   
#include "stdio.h"  
void main(){  
 int a[7]={3,4,5,6,7,8,9};  
 int *p,*q;  
 int i,x;  
 p=&a[0];  
 q=&a[6];  
 for (i=0;i<3;i++)  
   if(*(p+i)==*(q-i) )  
      x=*(p+i)*2;  
}  
//8  
#include "stdio.h"  
void main(){  
  int a[5][5];  
  printf("&a[3][2]-a=%d\n",&a[3][2]-a);  
}  
//9  
#include "stdio.h"  
void main(){  
  int i=2,n=2;  
  for(;i<5;i++){  
     continue;  
     n=n+i;  
   }  
  printf("%d\n",n);  
}  

错误:1、变量间没有加逗号,

             2、句尾没有加分号,

            3、分段符没有加在引号里面。

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值