c语言分别用函数还是数组 c语言分别用函数还是数组

C语言,分别用字符数组和字符指针作函数参数两种方法编程实现字符串

#include stdio.h

创新互联是一家专注于网站设计制作、网站设计与策划设计,北湖网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:北湖等地区。北湖做网站价格咨询:13518219792

#include string.h

#include malloc.h

void niXuArr(char arr[]);

char * niXuPoint(char *p);

int main(void)

{

char arr[] = {"abcdefghigk"}, *p = "you are the first";

printf("逆序前:%s\n逆序后:", arr);

niXuArr(arr);

printf("%s\n", arr);

printf("逆序前:%s\n逆序后:", p);

p = niXuPoint(p);

printf("%s\n", p);

return 0;

}

void niXuArr(char arr[])

{

int i = 0;

char temp = 0;

for(i = 0; i strlen(arr) / 2; i++)

{

temp = arr[i];

arr[i] = arr[strlen(arr) - 1 - i];

arr[strlen(arr) - 1 - i] = temp;

}

}

char * niXuPoint(char *p)

{

char *pHead = NULL, *pTail = NULL, temp = 0;

int i = 0;

pHead = (char*)malloc(strlen(p));

pTail = p + strlen(p) - 1;

p = pHead;

for(i = 0; i strlen(p); i++)

{

*pHead++ = *pTail--;

}

*pHead = '\0';

return p;

}

c语言是先学数组还是函数

这个肯定是先学数组了,毕竟是最基本的数据格式,但是要学C语言肯定都会学到的。

c语言数组与函数?

给你看一下我的代码

#includestdio.h

void main(){

int a[10],b[10],i,j,temp;

for(i=0;i10;i++){

printf("请输入第%d个数:",(i+1));

scanf("%d",a[i]);

//保存数组,因为输入完数组要冒泡排序,排序后的元素顺序可能和原数组不一样

b[i]=a[i];

}

//冒泡排序,求最大值

for(i=0;i9;i++){

for(j=0;j9-i;j++){

if(a[j]a[j+1]){ //这里控制的升序还是降序,我这是降序

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

//查找最大值在原数组的位置

for(i=0;i10;i++){

if(b[i]==a[0]){ //降序的话最大值是a[0],升序的话最大值是a[9]

break; //一旦找到最大值,马上跳出循环

}

}

printf("最大值是%d,它在原数组中是第%d个元素!\n",a[0],(i+1));

}

C语言数组与函数

你的程序:

main()

{

int b[3];

b=pop();

}

int * pop()

{

int a[3],i;//定义的局部变量a[3]在调用完之后自动释放其空间

for(i=0;i3;i++)

a[i]=i;

return a;//返回的是指向数组a[3]的地址而不是数组a[3]本身

}

注:既然上面说到调用的方法返回的是指向数组a[3]的地址,所以主函数中b接收的应该是指向数组a[3]的地址,而数组a[3]在方法调用完后又被释放了,所以b接收不到数组a[3],故出错。

正确的程序:

#includestdio.h

main()

{

int b[3];

pop(b,3);

}

void pop(int a[],int n)//该方法传入两个参数,第一个是传入指向数组的地址,第二个参数是传入数组的长度,不需写返回语句return,只需通过指向数组的地址的传入就可以直接将数组b[]的值改变

{

int i;

for(i=0;in;i++)

a[i]=i;

}

c语言分别用函数和数组实现,输入10个学生5门课的成绩并完成

#include "stdio.h"

#include "string.h"

#include "windows.h"

#include "conio.h"

void input();

void menu();

struct student

{

int code;

char name[20];

char sex;

int age;

int chinese;

int english;

int computer;

int math;

int total;

int average;

}stud[100];

struct student temp;

void input()

{

int num,i;

printf("请问您要输入几个学生的信息?\n");

scanf("%d",num);

for(i=0;inum;i++)

{

printf("请输入第%d个学生的学号:\n",i+1);

scanf("%d",stud[i].code);

printf("请输入第%d个学生的姓名:\n",i+1);

scanf("%s",stud[i].name);

fflush(stdin);

printf("请输入第%d个学生的性别(F为女,M为男):\n",i+1);

scanf("%c",stud[i].sex);

fflush(stdin);

printf("请输入第%d个学生的年龄:\n",i+1);

scanf("%d",stud[i].age);

printf("请输入第%d个学生的语文成绩:\n",i+1);

scanf("%d",stud[i].chinese);

printf("请输入第%d个学生的英语成绩:\n",i+1);

scanf("%d",stud[i].english);

printf("请输入第%d个学生的计算机成绩:\n",i+1);

scanf("%d",stud[i].computer);

printf("请输入第%d个学生的数学成绩:\n",i+1);

scanf("%d",stud[i].math);

stud[i].total = stud[i].chinese+stud[i].english+stud[i].computer+stud[i].math;

stud[i].average = stud[i].total/4;

}

printf("您已经输入了%d个学生的信息",num);

printf("\n请按任意键返回主菜单!");

fflush(stdin);

getch();

system("cls");

menu();

}

void find()

{

int choice,i,code;

char name[20];

printf("请问您需要按照哪一个方式来查找学员:\n");

printf("查找方式:1.按学号查找。2.按姓名查找。\n");

scanf("%d",choice);

if(choice==1)

{

printf("请输入您要查找的同学的学号:\n");

scanf("%d",code);

for(i=0;i100;i++)

{

if(code == stud[i].code)

{

printf("\n第%d个学生的学号是:%d\n",i+1,stud[i].code);

printf("第%d个学生的姓名是:%s\n",i+1,stud[i].name);

printf("第%d个学生的性别是:%c\n",i+1,stud[i].sex);

printf("第%d个学生的年龄是:%d\n",i+1,stud[i].age);

printf("第%d个学生的语文成绩是:%d\n",i+1,stud[i].chinese);

printf("第%d个学生的英语成绩是:%d\n",i+1,stud[i].english);

printf("第%d个学生的计算机成绩是:%d\n",i+1,stud[i].computer);

printf("第%d个学生的数学成绩是:%d\n",i+1,stud[i].math);

printf("第%d个学生的总成绩是:%d\n",i+1,stud[i].total);

printf("第%d个学生的平均分是:%d\n",i+1,stud[i].average);

printf("══════════════════════════════\n");

}

}

}

else if(choice==2)

{

printf("请输入您要查找的学生的姓名");

fflush(stdin);

gets(name);

for(i=0;i100;i++)

{

if(strcmp(name,stud[i].name)==0)

{

printf("\n第%d个学生的学号是:%d\n",i+1,stud[i].code);

printf("第%d个学生的姓名是:%s\n",i+1,stud[i].name);

printf("第%d个学生的性别是:%c\n",i+1,stud[i].sex);

printf("第%d个学生的年龄是:%d\n",i+1,stud[i].age);

printf("第%d个学生的语文成绩是:%d\n",i+1,stud[i].chinese);

printf("第%d个学生的英语成绩是:%d\n",i+1,stud[i].english);

printf("第%d个学生的计算机成绩是:%d\n",i+1,stud[i].computer);

printf("第%d个学生的数学成绩是:%d\n",i+1,stud[i].math);

printf("第%d个学生的总成绩是:%d\n",i+1,stud[i].total);

printf("第%d个学生的平均分是:%d\n",i+1,stud[i].average);

printf("══════════════════════════════\n");

}

}

}

else

{

printf("请输入1或者2,只能按照姓名或者学号来查找学生信息");

fflush(stdin);

getch();

system("cls");

find();

}

printf("学生相关信息打印完毕");

printf("\n请按任意键返回主菜单!");

fflush(stdin);

getch();

system("cls");

menu();

}

void insert()

{

int i,j=0;

system("cls");

printf("请输入要插入学生的信息:\n");

printf("请输入学生的学号:\n");

scanf("%d",temp.code);

printf("请输入学生的姓名:\n");

scanf("%s",temp.name);

fflush(stdin);

printf("请输入学生的性别(F为女,M为男):\n");

scanf("%c",temp.sex);

fflush(stdin);

printf("请输入学生的年龄:\n");

scanf("%d",temp.age);

printf("请输入学生的语文成绩:\n");

scanf("%d",temp.chinese);

printf("请输入学生的英语成绩:\n");

scanf("%d",temp.english);

printf("请输入学生的计算机成绩:\n");

scanf("%d",temp.computer);

printf("请输入学生的数学成绩:\n");

scanf("%d",temp.math);

temp.total = temp.chinese+temp.english+temp.computer+temp.math;

temp.average = temp.total/4;

for(i=0;i100;i++)

{

if(temp.codestud[i].code)

{

for(j=99;ji;j--)

{

stud[j]=stud[j-1];

}

}

stud[j]=temp;

break;

}

printf("你成功已插入了学生的信息!");

printf("\n请按任意键返回主菜单!");

fflush(stdin);

getch();

system("cls");

menu();

}

void del()

{

int code,i,j;

printf("请输入您要删除的学员的学号:\n");

scanf("%d",code);

for(i=0;i100;i++)

{

if(code==stud[i].code)

{

for(j=i;j100;j++)

{

stud[j]=stud[j+1];

}

}

if(strlen(stud[i].name)0)

{

printf("\n第%d个学生的学号是:%d\n",i+1,stud[i].code);

printf("第%d个学生的姓名是:%s\n",i+1,stud[i].name);

printf("第%d个学生的性别是:%c\n",i+1,stud[i].sex);

printf("第%d个学生的年龄是:%d\n",i+1,stud[i].age);

printf("第%d个学生的语文成绩是:%d\n",i+1,stud[i].chinese);

printf("第%d个学生的英语成绩是:%d\n",i+1,stud[i].english);

printf("第%d个学生的计算机成绩是:%d\n",i+1,stud[i].computer);

printf("第%d个学生的数学成绩是:%d\n",i+1,stud[i].math);

printf("第%d个学生的总成绩是:%d\n",i+1,stud[i].total);

printf("第%d个学生的平均分是:%d\n",i+1,stud[i].average);

printf("══════════════════════════════\n");

}

}

printf("学生相关信息打印完毕");

printf("\n请按任意键返回主菜单!");

fflush(stdin);

getch();

system("cls");

menu();

}

void output()

{

int i;

for(i=0;i100;i++)

{

if(strlen(stud[i].name)0)

{

printf("\n第%d个学生的学号是:%d\n",i+1,stud[i].code);

printf("第%d个学生的姓名是:%s\n",i+1,stud[i].name);

printf("第%d个学生的性别是:%c\n",i+1,stud[i].sex);

printf("第%d个学生的年龄是:%d\n",i+1,stud[i].age);

printf("第%d个学生的语文成绩是:%d\n",i+1,stud[i].chinese);

printf("第%d个学生的英语成绩是:%d\n",i+1,stud[i].english);

printf("第%d个学生的计算机成绩是:%d\n",i+1,stud[i].computer);

printf("第%d个学生的数学成绩是:%d\n",i+1,stud[i].math);

printf("第%d个学生的总成绩是:%d\n",i+1,stud[i].total);

printf("第%d个学生的平均分是:%d\n",i+1,stud[i].average);

printf("══════════════════════════════\n");

}

}

printf("学生相关信息打印完毕");

printf("\n请按任意键返回主菜单!");

fflush(stdin);

getch();

system("cls");

menu();

}

void sort()

{

int i,j;

for(i=0;i100;i++)

{

for(j=i+1;j100;j++)

{

if(strlen(stud[i].name)0 strlen(stud[j].name)0)

{

if(stud[i].averagestud[j].average)

{

temp=stud[i];

stud[i]=stud[j];

stud[j]=temp;

}

}

}

}

printf("学生信息按照平均分降序排序完毕\n");

output();

}

void error()

{

printf("输入错误,请输入(1-7):\n");

printf("按任意键结束。。。。。\n");

fflush(stdin);

getch();

system("cls");

menu();

}

void menu()

{

int choice;

system("cls");

printf("\t\t学生信息管理系统\n");

printf("*************************************************\n");

printf("\t\t【1】输入数据\n");

printf("\t\t【2】查找数据\n");

printf("\t\t【3】插入数据\n");

printf("\t\t【4】删除数据\n");

printf("\t\t【5】输出数据\n");

printf("\t\t【6】排序数据\n");

printf("\t\t【7】退出\n");

printf("*************************************************\n");

printf("请输入您的选择(1-7)\n");

scanf("%d",choice);

switch(choice)

{

case 1:input();break;

case 2:find();break;

case 3:insert();break;

case 4:del();break;

case 5:output();break;

case 6:sort();break;

case 7:exit(0);break;

default:error();break;

}

}

void main()

{

menu();

}

C语言题 :分别用函数和数组实现,输入10个学生5门课的成绩

仅供参考

#include stdio.h

#define S 10

#define C 5

int scores[S][C];

void input(void)

{

int i, j;

for(i = 0; i  S; i ++)

{

printf("input %d scores of student %d \n", C, i+1);

for(j = 0; j  C; j ++)

scanf("%d", scores[i][j]);

}

}

void calc_ave(void)

{

int i, j;

float a;

for(i = 0; i  S; i ++)

{

for(a = 0, j = 0; j  C; j ++)

a += scores[i][j];

a/=C;

printf("average score of student %d is %.2f\n", i+1, a);

}

}

void output(void)

{

int i, j;

for(i = 0; i  S; i ++)

{

printf("%03d ", i+1);

for(j = 0; j  C; j ++)

printf("%3d ", scores[i][j]);

printf("\n");

}

}

void find_max(void)

{

int i, j, mi, mj;

for(mi= mj = i = 0; i  S; i ++)

for(j = 0; j  C; j ++)

if(scores[i][j]  scores[mi][mj]) mi = i, mj = j;

printf("the max score is class %d of student %d\n", mj + 1, mi + 1);

}

void find_more_than_90(void)

{

int i, j;

for(i = 0; i  S; i ++)

{

for(j = 0; j  C; j ++)

if(scores[i][j] =90) break;

if(j == C) printf("student %d has score more than 90 on every class\n", i + 1);

}

}

int main()

{

input();

calc_ave();

output();

find_max();

find_more_than_90();

return 0;

}


本文名称:c语言分别用函数还是数组 c语言分别用函数还是数组
文章网址:http://pwwzsj.com/article/hpejoc.html