数组a包括10个元素,把a中所有的后项除以前项的商取整后存入数组b中,每3个元素换行
#include <stdio.h>
int main(){
int a[10],b[10];
int i;
printf("please input data:\n");
for(i=0;i<10;i++){
scanf("%5d",a+i);
}
for(i=1;i<10;i++){
b[i]=a[i]/a[i-1];
}
for(i=1;i<10;i++){
if((i-1)%3==0){
printf("\n");
}
printf("%5d",b[i]);
}
return 0;
}
最开始出现问题是在printf
函数中写成了printf(“%5d”,b+i);这是错误的,b+i是地址。
第二题:不用strcat的函数,来实现将b数组的前5个元素连接到a数组当中。
int main(){
char a[30]="teacher",b[]="niceperson";
int i,j;
for(i=0;a[i]!='\0';i++);
for(j=0;j<5;j++){
a[i++]=b[j];
}
puts(a);
}
从键盘键入一个字符串a,并且寻找最大元素,在其后面插入字符串b,(b为“ab”):
int main(){
char a[30],b[2]="ab";
int i,j;
int max=a[0];
printf("please input string a:\n");
gets(a);
/*for(i=0;i<30;i++){
if(a[i]>max)
max=a[i];
j=i;
}
*/
while(a[i]!='\0'){
if(a[i]>max){
max=a[i];
j=i;
}
i++;
}
for(i=strlen(a)+2;i>j;i--)
a[i]=a[i-2];
a[i+1]='a';
a[i+2]='b';
printf("output the a:");
puts(a);
return 0;
}
这里用while语句行的通,用for使不得!为啥呢!