利用指代替下标进行数组编程:从健盘输入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语言数组的作业题,帮帮忙啊,急急!!!!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)