快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

数组与函数结合的C语言题 c语言中数组与函数应该注意哪些问题

c语言程序题,要用到数组和函数。谢谢,急求

通过冒泡法排序进行处理,具体的看代码。

我们提供的服务有:做网站、成都做网站、微信公众号开发、网站优化、网站认证、陇县ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的陇县网站制作公司

/*

此程序能实现如下功能:

1)从键盘上输入n个整数(n的值由用户指定,n1000)存入一数组中,

将它们按照从小到大的顺序排列起来,输出排列后的数组值;

2)检查整数x(由用户指定)值是否在这些数字当中,若在,返回

其在数组中的位置(即下标值,可能不止一个),若不在则将x插

入到相应位置,插入后数组仍有序;

3)统计数组中大于a小于b的元素个数并输出,a、b值由用户指定

*/

#include stdio.h

void bubble_sort(int a[], int n)

{

/* 

冒泡法排序

*/

int i, j, temp;

for (j = 0; j  n - 1; j++)

for (i = 0; i  n - 1 - j; i++)

{

if(a[i]  a[i + 1])

{

temp = a[i];

a[i] = a[i + 1];

a[i + 1] = temp;

}

}

}

int find(int x, int a[], int n)

{

/* 

从已从小到大排序的数组中查找一个值,

并输出其所在的下标,若不在,即将其插入到相应的位置

返回值判断数组中是否插入了输入的值

*/

int i;

int flag = 0;

int tmp[2];

int j = 0;

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

{

if(a[i] == x)

{

flag = 1;

break;

}

else if(a[i]  x)

break;

}

if( flag == 1)

{

printf("%d存在于数组中,其下标为:",x);

while(i  n)

{

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

if(a[i] != x)

break;

}

putchar('\n');

return 0;

}

else{

printf("%d不存在于数组中\n",x);

tmp[j++] = a[i];

a[i++] = x;

/* 对后面的数组进行重新排序 */

while(i  n + 1)

{

tmp[(j++)%2] = a[i];

a[i++] = tmp[j%2];

}

printf("插入%d后,重新排序后的数组为:",x);

for(i = 0; i  n + 1; i++)

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

putchar('\n');

return 1;

}

}

void find_a_b(int a, int b, int c[], int n)

{

/* 统计已排序数组中大于a,小于b的个数 */

int i;

int count;

for(i = 0,count = 0; i  n; i++)

{

if(c[i]  a)

if(c[i]  b)

count++;

else

break;

}

if(count == 0)

printf("数组中大于%d,小于%d的元素个数为0\n",a,b);

else

{

printf("数组中大于%d,小于%d的元素个数为%d\n",a,b,count);

printf("它们为:");

for(i -= count; count  0; count--)

printf("%d ",c[i++]);

putchar('\n');

}

}

int main()

{

int a[1000];

int n;

int x;

int i;

/* 以下指定输入的整数的个数,及完成数据的输入 */

printf("请输入要输入的整数的个数n(n1000):");

scanf("%d",n);

printf("请输入%d个整数值:",n);

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

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

/* 对数组进行排序后,输出 */

bubble_sort(a,n);

printf("排序后的数组为:");

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

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

printf("\n");

/* 在数组中查找或插入一个值 */

printf("请输入要查找或插入的数值:");

scanf("%d",x);

n += find(x,a,n);

/* 统计数组中大于a,小于b的个数并输出 */

int a1,b;

printf("请依次输入a,b的值(ab):");

scanf("%d%d",a1,b);

find_a_b(a1,b,a,n);

}

c语言编程题 二维数组和函数

#include stdio.h

#include stdlib.h

#include string.h

int Input(long number[], int score[][3]) {

int i=0;

printf("Input Score: Number Grad1 Grad2 Grad3\n");

while (i30) {

scanf("%ld %d %d %d", number[i], score[i][0], score[i][1], score[i][2]);

if (number[i]0) break;

i++;

}

return i;

}

void Total1(int score[][3], float sum[], float aver[], int n) {

int i;

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

sum[i] = score[i][0] + score[i][1] + score[i][2];

aver[i] = sum[i]/3;

}

}

void Total2(int score[][3], float sum[], float aver[], int n) {

int i;

sum[0] = sum[1] = sum[2] = 0.0f;

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

sum[0] += score[i][0];

sum[1] += score[i][1];

sum[2] += score[i][2];

}

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

aver[i] = sum[i]/3;

}

void Total3(long num[],int score[][3],float sum[],float aver[],int n) {

int i, j;

long _n;

int _s;

float _sum, _ave;

Total1(score, sum, aver, n);

for (i=0;in-1;i++) {

for (j=n;ji;j--) {

if (sum[i]sum[j]) {

//swap (i, j)

_n = num[i]; num[i] = num[j]; num[j] = _n;

_s = score[i][0];score[i][0] = score[j][0]; score[j][0] = _s;

_s = score[i][1];score[i][1] = score[j][1]; score[j][1] = _s;

_s = score[i][2];score[i][2] = score[j][2]; score[j][2] = _s;

_sum = sum[i]; sum[i] = sum[j]; sum[j] = _sum;

_ave = aver[i]; aver[i] = aver[j]; aver[j] = _ave;

}

}

}

}

void Print(long num[],int score[][3],float sum1[],float aver1[],float sum2[],float aver2[],int n) {

int i;

printf("Pos\tNumber\tGrad1\tGrad2\tGrad3\tSum1\tAver1\n");

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

printf("%d\t%ld\t%d\t%d\t%d\t%.1f\t%.1f\n", (i+1), num[i], score[i][0], score[i][1], score[i][2], sum1[i], aver1[i]);

}

printf("No\tSum2\tAver2\n");

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

printf("%d\t%.1f\t%.1f\n", (i+1), sum2[i], aver2[i]);

}

}

int main() {

long number[30];

int score[30][3];

float sum1[30], aver1[30];

float sum2[30], aver2[30];

float sum3[3], aver3[3];

int n;

n = Input(number, score);

Total1(score, sum1, aver1, n);

Total2(score, sum3, aver3, n);

Print(number, score, sum1, aver1, sum3, aver3, n);

Total3(number, score, sum2, aver2, n);

Print(number, score, sum2, aver2, sum3, aver3, n);

return 0;

}

c语言函数和数组结合?

形参,可以是数组也可以是指针,形参变量名不需要和实参一样,所以可不使用a做变量名。但数组传参,传的地址,即使闭实参和形参名不一样,操作的地址都是一样的。

新手求解答一道c语言题目,不用指针,用数组和函数来写

//排序

public void Sort(float[] a)

{

int len = sizeof(a) / sizeof(a[0]);

printf("原数组输出:");

for (int i = 0; i len; i++)

{

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

}

for (int j = 0; j len; j++)

{

for (int i = len; ji; i--)

{

if (a[i]a[i - 1])

{

int temp = 0;

temp = a[i];

a[i] = a[i - 1];

a[i - 1] = temp;

}

}

}

printf("\n大到小排序输出:\n");

for (int i = 0; i 5; i++)

{

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

}

}

//求最大值,最小值,平均值

public void getValue(float[] a)

{

int len = sizeof(a) / sizeof(a[0]);

float max = a[0];

float min = a[0];

float avg = 0;

float sum = 0;

for (int i = 0; i len; i++)

{

if (max a[i])

{

max = a[i];

}

if (min a[i])

{

min = a[i];

}

sum += a[i];

}

avg = sum / len;

printf("最大值:%d,最小值:%d,平均分:%d\n", max, min, avg);

}

C语言数组和函数的综合应用问题

程序没问题,你想问什么,是什么地方不懂吗,不懂的地方标出来!


文章标题:数组与函数结合的C语言题 c语言中数组与函数应该注意哪些问题
文章URL:http://6mz.cn/article/hijigs.html

其他资讯