请教指针和数组的c语言经典例题

请教指针和数组的c语言经典例题,第1张

利用指代替下标进行数组编程:从健盘输入8个整数放入数组,然后将每个奇数加1,每个偶数减1,最后输出数组的所有元素

程序如下:

main()

{

int a[8],p; /定义变量和数组/

for(p=a;p<a+8;p++)

scanf("%d",p);/输入/

for(p=a;p<a+8;p++)

{ if(p%2==0) (p)--;

else (p)++;

}

for(p=a;p<a+8;p++)

printf("%d\t",p); /一个个输出/

}

其实指针和数组是一个东东,数组名就是一个指针,如果个这例子看不懂,再问!!!

#include<iostream>

using namespace std;

#define N 1000000000//定义一个常量N=十万,十万以内的数都可以执行;

int main()

{

int a[10]={0},b[N]={0},max=0,sum=0;

for(int i=0;i<10;i++)

{

cin>>a[i];//这里输入10个数

b[a[i]]++;//桶排序;把a[i]作为b数组的下标;同样的下标重复出现b[a[i]]自加1;

}

max=a[0];

for(int i=0;i<10;i++)

{

if(a[i]>max)//找出最大的下标

max=a[i];

}

for(int i=0;i<max;i++)

{

if(b[i]==1)//b[1]==1,说明这个下标只出现过一次;

{

cout<<i<<" ";

sum++;//计数;

}

}

cout<<endl;

cout<<sum<<endl;

return 0;

}

这道题的核心是去重;个人建议,遇到去重就用桶排序;

唉,很简单的题目,自己都不愿意做!!

一、

1、C 2、A 3、D 4、B 5、B 6、D 7、C 8、B 9、D 10、A

二、

s=-16

三、编程题

1、

#include<stdioh>

main()

{

int a[9],i,j,t;

for(i=0;i<9;i++)

{

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

}

//排序前

for(i=0;i<9;i++)

{

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

}

printf("\n");

//排序

for(i=0;i<9;i++)

for(j=9-1;j>i;j--)

if(a[j]<a[j-1])

{

t=a[j];

a[j-1]=a[j];

a[j]=t;

}

//排序后

for(i=0;i<9;i++)

{

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

}

printf("\n");

}

2、

#include<stdioh>

main()

{

char a[80],p;

gets(a);

for(p=a;p!=0;p++)

{

if(p>='A'&&p<='Z')

p+='a'-'A';

}

puts(a);

}

C语言代码和运行结果如下:

根据提供的输入数据,4号选手刘嘉玲的平均分79明显是最高的,不应被淘汰

最低分应为5号选手梁朝伟的59分,所以图中输出与示例不一致

但结果应该没错,确实输出了最低分选手的相关信息,望采纳~

附源码:

#include <stdioh>

#define N 5

int main() {

int no[N], score[N][4], i, j, sum, k = 0;

char name[N][50];

for (i = 0; i < N; i++)

scanf("%d", &no[i]);

for (i = 0; i < N; i++)

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

for (i = 0; i < N; i++) {

sum = 0; // 记录每名选手总成绩并求平均分

for (j = 0; j < 3; j++) {

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

sum += score[i][j];

}

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

if (score[i][3] < score[k][3])

k = i; // 记录平均分最低的选手下标

}

printf("被淘汰的选手信息为:\n最低分为:%d 编号为:%d 姓名为:%s\n", score[k][3], no[k], name[k]);

return 0;

}

if (array[j]==i)

{

count[i-1]++; //对此处的 count[i-1]++不太理解,自加后发生什么变化?求解释

}

如果数组元素等于i的话就给它自加1 就是说 count[i-1] = count[i-1] + 1

希望帮到楼主 给个采纳吧

1、给整型二维数组 b[3][4]输入12个数据,计算并输出数组中所有正数之和、所有负数之和。

2、青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分。

3、设二维数组 b[5][4]中有鞍点,即b[i][j]元素值在第i行中最小,且在第j列中最大,试编写一程序找出所有的鞍点,并输出其下标值。也可能没有。

4、从键盘输入一数,然后在一个整型一维数组a[20]中,用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印”No found”。

5、编程打印如下图形:

6、有一电文,已按下列规律译成译码:

A→Z a→z

B→Y b→y

C→X c→x

… …

即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。编写一个程序将密码译成原文,并输出密码和原文。

输出结果是 10 4 6 8 2 4 6 12 2

第一个scanf是输入一个数赋给x,与-1比较,从而进入while循环,并把x的值赋给数组b。第二个scanf是重新输入x,与—1比较,继续循环,如果没有,则此时x没有赋值,则不能继续完成循环。这个程序的功能是找出输入数中大于-1的偶数。

希望我的回答能对你有帮助。

以上就是关于请教指针和数组的c语言经典例题全部的内容,包括:请教指针和数组的c语言经典例题、急求c++编程题 有关数组的内容、C语言数组的作业题,帮帮忙啊,急急!!!!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10135038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存