当前位置:首页 » 编程语言 » c语言数组跳过的单元数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言数组跳过的单元数

发布时间: 2022-10-02 19:27:47

c语言数组题

#include<stdio.h>
#include<algorithm> //rand()要用到该头文件
int main()
{
int i,j;
int a[5][6];
for(i=0;i<5;i++)
for(j=0;j<6;j++)
a[i][j]=rand()%100; //随机数生成
int max=-1;
int row=0;
int col=0;
printf("二维数组为:\n");
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
printf("%d ",a[i][j]);
if(max<a[i][j])
{
max=a[i][j]; //找最大
row=i;
col=j;
}
}
printf("\n");
}
printf("最大数为: %d 行号:%d 列号:%d\n",max,row+1,col+1);
system("pause"); //让屏幕停下来
return 1;
}

⑵ C语言数组问题

char *p[2]是一个指针数组,*p[0], *p[1]两个元素,编译之后是两个地址值。
p[i]=ch[i]中,是指针操作,也就是地址操作。ch[i]是一个多字节的首地址,编译后值为数组元素的地址ch[i][0]。
而这里p[i][j]这样的引用,会被编译器检查的,因为有p[i]=ch[i]这样的赋值,所以,p[0],p[1]两个指针被初始化指向了ch[0]和ch[1]两个数组,引用p[i][j]就不会出现问题。
如果是p[0] = &intA,即把指针初始化成某个变量的地址,那么编译器就不会容许p[i][j]的访问方式。
你可以尝试p[0]=ch[0][0],这样的表达是否可以呢。
如果是p[0] = &ch[0][0]这样呢,
而((char *)p[0])[0]这样的引用方式呢?
C语言可以将任何值作为地址值,也可以将任何地址(指针)转换成任何类型(包括结构体和对象)而加以引用,这是为了更加灵活地操作从某个地址开始的N个字节的数据,而怎样解释这些数据(数据类型)完全取决于程序的需要。

⑶ C语言数组问题,书中说,数组初始化,不能给跳过每行前面的元素而给后面的元素赋值什么意思

举个例子吧,比如说申请并初始化一个数组num[10]={1,2},这是数组有10个元素,但是你初始化的时候只给了两个数值,那么默认就是前两个元素的值,不能跳过前面的给后面的赋值

⑷ C语言数组的编程!!很简单的!!

#include<stdio.h>
#include<math.h>
void Calculation()
{
int a[10];
int i,j,num,sum,t,k;
t=1;
sum=0;
printf("Please enter an integer:\n");
scanf("%d",&num);
j=(int)(log10(num)+1);
k=j;
while(k>1)
{
t=t*10;
k--;
}
for(i=j;i>0;i--)
{

a[i-1]=num/t;
num=num-a[i-1]*t;
t/=10;
sum+=a[i-1];
}
printf("sum is:%d\n",sum);

}
void main()
{
int i;
for(i=0;i<2;i++)
Calculation();
}

⑸ C语言: 如何实现从数组A里面,过滤掉任意数量的元素,然后将剩余的元素,复制到数组B 详细点

这个比较容易。
首先你数组的大小你自己知道,就假设容量A、B为100吧;
其次你需要一个指向A的指针;
再次假设你需要过滤A中50个元素,你得知道从什么位置开始过滤吧;
的判断过滤的位置加上过滤的数量超过总量没有吧。
指针不断++;复制值到B中,知道遇到过滤的开始的位置。指针继续++,将要过滤的数量的值一一跳过,不复制进入B.

⑹ C语言数组问题

开始 是 1 2 3 4 5 6 7 8 9 10 输出 a[9-0] 即 10、 (i = 0)
然后 a[0] 和 a[9-0]交换
交换后是 10 2 3 4 5 6 7 8 9 1 输出 a[9-1]即 9 (i=1)
然后 a[1] 和 a[9-1]交换

交换后是 10 9 3 4 5 6 7 8 2 1 输出 a[9-2]即 8 (i=2)

然后 a[2] 和 a[9-2]交换

交换后是 10 9 8 4 5 6 7 3 2 1 输出 a[9-3]即 7 (i=3)

然后 a[3] 和 a[9-3]交换

交换后是 10 9 8 7 5 6 4 3 2 1 输出 a[9-4]即 6 (i=4)

然后 a[4] 和 a[9-4]交换

交换后是 10 9 8 7 6 5 4 3 2 1 输出 a[9-5]即 6 (i=5)

然后 a[5] 和 a[9-5]交换

交换后是 10 9 8 7 5 6 4 3 2 1 输出 a[9-6]即 7 (i=6)

然后 a[6] 和 a[9-6]交换

交换后是 10 9 8 4 5 6 7 3 2 1 输出 a[9-7]即 8 (i=7)

然后 a[7] 和 a[9-7]交换

交换后是 10 9 3 4 5 6 7 8 2 1 输出 a[9-8]即 9 (i=8)

然后 a[8] 和 a[9-8]交换

交换后是 10 2 3 4 5 6 7 8 9 1 输出 a[9-9]即 10 (i=9)

然后 a[9] 和 a[9-9]交换

交换后是 1 2 3 4 5 6 7 8 9 10

退出 完毕。
不知道是否能帮助到你

要输出10到一

for(i=0;i<10;i++)
{
printf("%d\n",a[9-i]);
temp=a[9-i]; // 把这里去掉
a[9-i]=a[i];//把这里去掉
a[i]=temp;//把这里去掉
}

⑺ C语言数组问题

数组a[5],意思是数组名为:a,数组中一共有5个元素。每个元素是从下标0开始,依次为:a[0]、a[1]、a[2]、a[3]、a[4],记住如果你声明了数组,比如:int a[5],那么你就不能操作a[5]=5 或者a[6]=12等等之类的。因为数组一共有5个元素,那么它的下标最多到a[4]=xx。如果你写:a[5]=xx,编译器就会告诉你下标越界了。

⑻ 简单的c语言数组问题

#include<stdio.h>
#include<stdlib.h>

intmain()
{
inta[10];//需要定义数组a[]
inti,n;

printf("Inputn(n<=10):");
scanf("%d",&n);
printf("Input%dNumbers: ",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
intmax,min,ma,mi;
max=a[0];min=a[0];
ma=0;
mi=0;//下标mi和ma要初始化
for(i=0;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
ma=i;
}
if(a[i]<min)
{
min=a[i];
mi=i;
}
}
a[ma]=a[mi];
a[mi]=max;

printf("AfterMaxMinExchange: ");
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf(" ");

return0;//函数intmain()需要返回值
}

⑼ C语言 二维数组初始化 可以跳过一整行吗

1.亲测VC++6.0不能通过:见图片

3.也就是说:不可以VC++6.0不能跳过一行初始化,但可以对想跳过的一行用{0}全部赋0值。

4.建议:编译器和实践哦是最好的老师,其实绝大部分的问题可以直接通过实践和编译器找出错误,而且这比请教别人更有帮助,并且印象也更深。