但是这样做有限制:
char
str[255]
用scanf("%s",str)获得输入时,最多容纳254个字符,因为读入操作会在后面加个"\0"
用printf("%s",str)
输出时,数组一定要是用"\0"结束的。
不遵守以上规则会产生数组越界,导致不可知的错误。
1、如果是二维数组,将就可按行输出就行:for(i=0i<3i++)
//按每一行输出,每循环一次输出一行
{
for(j=0j<3j++)
//输出每一行中的每一列
printf("%3d",a[i][j])
printf("\n")
//每输出一行,输出一个换行符
}
2、如果是一维数组,可按每行输出的数的个数来控制:
for(i=0i<9i++)
{
printf("%3d",a[i])
//a为一维数组
if((i+1)%3==0)
printf("\n")
//每行输出三个数,因为数组的下标i从0开始,所以先加个1再除3取余数
}
C语言程序如下:
#include <stdio.h>
void fun(int a[],int n,int *k)
{
int i,maxxr,j
maxxr=a[0]
for(i=0i<ni++)
{
if(maxxr<a[i])
{
maxxr=a[i]
}
}
for(i=0i<ni++)
{
if(maxxr==a[i]){
j=i
break
}
}
*k=j
}
int main(void)
{
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k
fun(a, 10, &k)
printf("%d,%d", k, a[k])
}
扩展资料:
思路:
1、先定义数组(其数组长度取最大值,题目要求为10),然后通过for循环给数组一个个赋值,即可得到一个数组;
2、找数组的最大值,这一步是最关键的一步,由于所输入的值不确定那个是最大值,故可以先设置另一个一个变量(index)来存储最大值变量的下标。
3、紧接着继续在数组里for循环,逐一跟下标为index的值相比较,如果比下标为index的值大,这时候就将两者中数值大的下标赋值给index。
4、按要求输出。