2021-12-07作业

第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
image.png
scanf("%c",&t);///为什么必须带\n 
image.png
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
image.png
//打开后面注释后
image.png

正确代码如下
字符串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

你可能感兴趣的:(2021-12-07作业)