11.9
阵列的复制
不能:a[10]=n
`a=v`
#include<stdio.h>
#include<stdio.h>
#include<time.h>
void hanshi(int a[10]);
void hanshi2(int b);
int main(){
srand(time(0));
int c=1,i,n[10],v[10];
for(i=0;i<10;i++){
n[i]=rand()%100;
}
for(i=0;i<10;i++){ //一个一个复制
v[i]=n[i];
}
hanshi(n);
hanshi(v);
hanshi2(c);
printf("%d",c); //c还是1,函式中的c是又复制了一遍,而非本身的c
return 0;
}
void hanshi(int a[10]){
int i;
for(i=0;i<10;i++){ //特殊:函式中的阵列即为原来的函式
printf("%d ",a[i]);
}
printf("\n");
}
void hanshi2(int b);{
c++;
}
在函式间传送阵列
一般资料形态会将引述复制一份传入函式,但阵列不行,阵列直接作为引数传入,因此函式回传值不能是阵列,不合法
有关阵列的一些错误
int a[3]={1,2,3};
printf("%d",a[0.5]);
X编译错误 必须为整数
printf("%d",a[3/2.]);
X编译错误
printf("%d",a[3])
X未定义行为
数字炸弹的练习
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
srand(time(0));
int ans,gue,max,min;
ans=rand()%99+1;
printf("请输入一个数字:");
scanf("%d",&gue);
max =99;
min =0;
while(gue!=ans){
if(gue<ans){
printf("数字炸弹在%d 到%d之间,请再输入一个数:",gue,max);
min=gue;
scanf("%d",&gue);
} else if(gue>ans){
printf("数字炸弹在%d到%d之间,请再输入一个数:",min,gue);
max=gue;
scanf("%d",&gue);
}
}
printf("炸弹爆炸了!");
return 0;
}