第7章
7.1
二
(2).选择排序
#include
#define N 10
int main(void)
{
int n,i,j,k,t,a[N];
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d integers:",n);
for(i=0;ia[t])
t=j;
}
k=a[i];a[i]=a[t];a[t]=k;
}
for(i=0;i
四.拓展编程题
(1)找出不是两个数组共有的元素
#include
#define N 15
int main(void)
{
int n,m,i,j,k=0,c[N],a[N],b[N];
//
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d integers:",n);
for(i=0;i=m){//if(j>=m)////////错误写法:if(j==m&&a[i]!=b[j-1])
c[k]=a[i];k++;
}
}
for(i=0;i=n){
c[k]=b[i];k++;
}
}
///对算法优化c[k]数组第一个无需比较,可直接输出
printf("%d",c[0]);
for(i=1;i
(4)装箱问题
#include
int main(void){
static int box[1000];
int s[1000];
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&s[i]);
for(i=1,j=1;i<=n;i++)
{
if(s[j]+box[i]<=100)
{
box[i]+=s[j];
printf("%d %d\n",s[j],i);
j++; i=0;
}
}
for(i=1;i<=n;i++)
{
if(box[i]==0)
break;
}
printf("%d",--i);
return 0;
}
7.2二维数组
二、基础编程题
(1)矩阵运算
#include
int main(void)
{
int n,i,j,s=0;
//输入
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d an array:\n",n);
int a[n][n];
for(i=0;i
7.3字符串
二、基础编程题
(2)查找指定字符
遇到的问题!!!!!!!!!!!!!!!!!!
int i,j,index=-1;
char t,ch,str[80];
printf("Enter a character:");
scanf("%c\n",&t);
printf("Enter a string:");
ch=getchar(); for(i=0;ch!='\n';i++){ str[i]=ch; ch=getchar(); }
//for(i=0;(str[i]=getchar())!='\n';i++);//(课本P176)
for(j=0;j
scanf("%c",&t);///为什么必须带\n
int i,j,index=-1;
char t,ch,str[80];
printf("Enter a character:");
scanf("%c",&t);///为什么必须带\n
//t=getchar(); ///为什么不行
printf("Enter a string:");
//ch=getchar(); for(i=0;ch!='\n';i++){ str[i]=ch; ch=getchar(); }
scanf("%s",&str); printf("str输出结果:%s\n",str);
//for(i=0;(str[i]=getchar())!='\n';i++);//(课本P176)
for(j=0;j
//打开后面注释后
正确代码如下
字符串scanf里面不需要&,注意%c与%*c
//%c:读入一个字符。
//%*c:读入一个字符,但忽略它(即不赋值给任何变量)
//%s 读入一个字符串,遇空格、制表符或换行符结束。
int i,j,index=-1;
char t,ch,str[80];
printf("Enter a character:");
scanf("%c%*c",t);///%*c
//t=getchar(); ///为什么不行 ??
printf("Enter a string:");
for(i=0;(str[i]=getchar())!='\n';i++);//(课本P176)
for(j=0;j
(5)
#include
#define N 15
int main(void)
{
int i,j,k,flag=1,num=0;
char t,ch,str[20],sl[20];
printf("Enter a string:");
//scanf("%s",&str); printf("str=%s\n",str);
//gets(str);//puts(str);printf("str=%s\n",str);
for(i=0;(str[i]=getchar())!='#';i++);//puts(str);
//正负号
for(j=0;j='0'&&str[j]<='9')||(str[j]>=65&&str[j]<=70)||(str[j]>=97&&str[j]<=102)){
break;
} ;
}
if(k='0'&&str[j]<='9')||(str[j]>=65&&str[j]<=70)||(str[j]>=97&&str[j]<=102)){
sl[k]=str[j];k++;
}
}puts(sl);printf("%d ",k);
for(j=0;j<=k+2;j++){/////为什么
if(str[j]>='0'&&str[j]<='9')num=num*16+str[j]-'0';
else if(str[j]>='a'&&str[j]<='f')num=num*16+str[j]-'a'+10;
else if(str[j]>='A'&&str[j]<='F')num=num*16+str[j]-'A'+10;
}
if(flag>0)printf("%d",num);
else printf("%d",-num);
//
return 0;
}
四、拓展编程题
(2).1删除指定字符
#include
#define N 15
int main(void)
{
int i,j,k;
char t,str[20],newstr[20];
printf("Enter a string:");
for(i=0;(str[i]=getchar())!='\n';i++);//puts(str);
printf("Enter delete character:");
t=getchar();
//scanf("%c%*c",t);putchar(t);////为什么不行??
for(j=k=0;j
(2).2删除重复字符
#include
#define N 20
int main(void)
{
int i,j,k,m,flag=0;
char t,str[20],newstr[20];
printf("Enter a string:");
for(i=0;(str[i]=getchar())!='\n';i++);//puts(str);
//scanf("%c%*c",t);putchar(t);////why not do????
for(m=k=0;m