C语言打印数组问题

作者&投稿:凤有 (若有异议请与网页底部的电邮联系)
C语言中用%s输出数组遇到的问题~

#include

int main(void)
{
int i = 0;
char a[20]=" "; //在这里,给a附空值,否则,后面的数组a如果没有被赋值,系统会随机赋值

while((a[i++]=getchar())!='
');

printf("%s
",a);

return 0;
}

你的代码问题有以下几个:
1、min和max没有初始化
2、对于a[min]和a[max]没有做循环
参考代码如下:
#include
main()
{
int a[10], i, min= 0, max=0;
for(i = 0; i < 10; i++) {
scanf("%d", a+i);
if(a[min] > a[i])
min = i;
else if(a[max] < a[i])
max = i;
}
printf("最大数是%d,下标是%d,最小数是%d,下标是%d
", a[max], max, a[min], min);
}

你的for循环条件判断不适用于整形数组元素的判断,只适用于字符型数组元素的判断。
另外,数组a和b在栈中的内存是紧挨在一起的,数组a最后一个元素的后面就数组b第一个元素,所以当for循环条件判断不能判定数组a的结束时,就把数组b的内容也打印出来了。
改成:
for(pa = a; pa - a < 6; pa++)

定义的时候,虽然说数组a和b都是随机空间,但据我观察貌似都是连续空间,也就是说是紧挨着的
而且,你定义的a和b都是int [6],也就是说每个数组都是6个元素。
然后再看你的循环结构,条件是*pa!='\0'
'\0'是空字符,ascii值是0,你这么写等同于*pa!=0
你这俩数组里面就没一个是0,当然顺次全部输出了。
而且这次运气好,没涉及溢出或者其他内存读写问题

你这结构是对付字符串的,不是应对数值数组的

a数组中没有0。所以你判断结束使用*pa!='\0',是判断不出数组结束与否的。
int l=sizeof(a)/sizeof(int);
这样可以得出数组a的长度。


c语言数组打印问题?
因为数组中的内容并不是可打印的字符,所以显示不出来。如果你要显示字符串,应当将赋值改为 s1 = {"203"} ;

如何用C语言打印出二维数组?
假设需要打印的数组为int类型,数组名为Array,Dim1为数组的行,Dim2为数组的列。int i,j;\/\/临时变量for(i = 0; i < Dim1; i++)\/\/外层循环遍历行 for(j = 0; j < Dim2; j++)\/\/内层循环遍历列 { printf("%d ",Array[i][j]);\/\/访问数组元素并打印 }打印数组时(无...

C语言:编写一个函数print,打印一个学生的成绩结构数组,该数组中有5...
define _CRT_SECURE_NO_WARNINGS include<stdio.h> include<stdlib.h> define N 5 struct student { int num;char name[1024];int score[3];};typedef struct student stu;void print(stu* p) { printf("学号\\t姓名\\t成绩1\\t成绩2\\t成绩3\\n");for (int i = 0; i < N; ++i) { ...

C语言如何用printf打印数组问题
include <stdio.h> \/\/增加头文件printf()用到 int main(){ int a[5]={1,2,3,8,9};\/\/printf("%d",a[5]); \/\/a[5]表示数组a的第六个元素,越界了 \/\/整型数组,不能一下子简单输出出来,必须用循环 int i;for( i=0;i<5;i++ )printf("%d " , a[i] );printf("\\n");...

C语言打印数组问题
只适用于字符型数组元素的判断。另外,数组a和b在栈中的内存是紧挨在一起的,数组a最后一个元素的后面就数组b第一个元素,所以当for循环条件判断不能判定数组a的结束时,就把数组b的内容也打印出来了。改成:for(pa = a; pa - a < 6; pa++)...

C语言打印数组的内容
楼主想打印的是的数组里面的内容的话,那就只能遍历打印里面的内容了。char* format="%08x-%02x%02x%02x%02x%02x";memset(b,0,100);sprintf(b,format,d,a[0],a[1],a[2],a[3],a[4]);这个样子就可以了,将数组里面的内容按照16进制打印,每一个占用2个字符就ok啦。

c语言中char类型数组的输出问题--输出时为何需要&符?
在C语言中数组的名字即数组的起始地址,也是数组第一个元素的地址。因此,假设有一个char类型的数组a表示成如下代码:char a[20];那么a表示字符数组的起始地址,它和&a[0]是一个意思。使用printf()输出字符数组a的内容:printf("%s\\n", a);就等同于printf("%s\\n", &a[0]);输出的时候用:i...

C语言新手做了个录入和输出数组的程序,一直有问题,求大神解答,谢谢啦...
1楼正解,你用的是可变长数组,但有的编译器并不支持,有C99标准的编译器才支持。

C语言写一个函数,实现数组的遍历打印?
void print_array(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d ", arr[i]);} printf("\\n");} 该函数接受一个整数数组 arr 和数组大小 size 作为参数,使用 for 循环遍历数组中的所有元素,并使用 printf 函数打印每个元素的值。最后使用 printf 函数...

c语言如何打印的数组中的一个单独的元素?
include <stdio.h> int main(void){ int Arr[10]={1,2,3,4,5,6,7,8,9,0};\/\/ 通过下标 printf("%d\\n",Arr[5]);\/\/ 指针偏移法 printf("%d\\n",*Arr+4);int* PArr=Arr;\/\/ 指针偏移法 printf("%d\\n",*PArr+3);return 0;} ...

华容县18461746539: C语言,数组问题,打印一下图形 -
鄣阎五加: #include "stdio.h"#include "conio.h" int main(void) { int i, j, n; int b, e, s; printf("input a number: "); scanf("%d", &n); for (i = 0; i < n; i++) { if ((i % 2) == 0) { s = 1; b = i * n + 1; e = (i + 1) * n + 1; } else { b = (i + 1) * n; e = i * n; s = -1; } for (j = b; ...

华容县18461746539: 定义10个数的数组,初始化数组并打印这10个数,的c语言程序题 -
鄣阎五加: #include <stdio.h> int main(){//定义并初始化数组,数组中元素全被初始化为0int array[10];//从键盘读取10个数int i;for(i=0;i<10;i++){scanf("%d",&array[i]);}//将数组中10个数打印出来for(i=0;i<10;i++)printf("%d ",array[i]);//回车换行printf("\n");return 0; }

华容县18461746539: c语言要求:编写程序将十个元素的个数组a[10]从大到小打印输出… -
鄣阎五加: #include <stdio.h> int main() {int a[10];int i, j;int t; for (i = 0; i < 10; i++){scanf("%d",&a[i]);} for (j = 0; j < 9; j++)for(i = 0; i < 9 - j; i++)if (a[i] > a[i+1]){t = a[i];a[i] = a[i+1];a[i+1] = t;}for (i = 0; i < 10; i++)printf("%d ", a[i]);return 0; }

华容县18461746539: C语言,数组问题,打印以下数据图形. -
鄣阎五加: int main() {int arry[5] = {1,3,6,2,9}; int i,j; for (i = 0; i{ for (j=0;j { printf("%d",arry[(i+j)%5]); } printf("\n"); } return 0; }

华容县18461746539: C语言中一般是怎么打印出字符数组的? -
鄣阎五加: 首先附值的时候为了使空间更准确可以这样char c[]="wowow"; 第二是printf("%s", c); 而不是你的s% .

华容县18461746539: c语言数组打印不出来 -
鄣阎五加: 你的数组i没有初始化,就算打印出来也是乱码 把你的输出结果的图贴一下吧

华容县18461746539: c语言中能不能用printf函数直接输出数组?如printf("%d",a[3][3]); -
鄣阎五加: 限制在C语言中,利用printf直接输出数组是不可以的.但是你的做法是可以的.只是问题出在你数组使用越界了. 解释一下: printf不能直接用来输出数组. 例如:1 2 3 4 5 6 7#include<stdio.h> intmain(){ inta[3]={1,2,3}; inti; for(i=0;i<3;i++) ...

华容县18461746539: c语言怎样将数组打印出来,如想把int a[3][3]={{1,2,3},{4,5,6},{7,8,9,}这个数组打印出来,请给我完整代码 -
鄣阎五加: #include <stdio.h> void main() {int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j;// 利用两个for循环嵌套打印二维数组for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d ",a[i][j]);printf("\n"); } }

华容县18461746539: C语言怎么并列打印两个的二维数组 -
鄣阎五加: #includeint main() { int a[3][3]={1,2,3,4,5,6,7,8,9},b[3][3]={10,20,30,40,50,60,70,80,90}; int i,j; printf("%-13s%-10s\n"," A数组:"," B数组:"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%3d",a[i][j]); printf(" "); for(j=0;j<3;j++) printf("%3d",b[i][j]); printf("\n"); } return 0; }

华容县18461746539: C语言打印一窜数字的所有组合 -
鄣阎五加: 1.楼主的数太多了,我的机器有点落伍,显示的时间有点漫长~~~~,我把数改成了1,2,3,3,4,7,7.显示上也简单点,原理是一样的...另外不是很清楚楼主的所有组合是不是包括取出一部分字符串做排列组合,我弄的是所有 数字用上的全排列...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网