C语言编程题目三道

题目在图片里,求大佬解答

#include<stdio.h>
void cal(int n1,int n2,char f);
int main()
{
    int n1,n2;
    char f;
    printf("分别输入两个小于100整数及一个运算符号:\n");
    scanf("%d%d",&n1,&n2);
    getchar();
    scanf("%c",&f);
    cal(n1,n2,f);
    return 0;
}
void cal(int n1,int n2,char f)
{
    int an=0;
    switch(f)
    {
        case '+':an=n1+n2;break;
        case '-':an=n1-n2;break;
        case '*':an=n1*n2;break;
        case '/':an=n1/n2;break;
        case '%':an=n1%n2;break;
    }
    printf("%d%c%d=%d\n",n1,f,n2,an);
}

#include<stdio.h>
#include<string.h>
void count(char *str1,char *str2);
int main()
{
    char str1[100]={0},str2[8]={0};
    gets(str1);
    scanf("%s",str2);
    count(str1,str2);
    return 0;
}
void count(char *str1,char *str2)
{
    int cnt=0,len1=strlen(str1),len2=strlen(str2),i,j,flag=0;
    for(i=0,j=0;i<len1;i++,j++)
    {
        if(j==len2)
            j=-1;
        if(str1[i]!=' ' && flag)
            continue;
        if(str1[i]==' ' && flag)
        {
            flag=0;
            j=-1;
            continue;
        }
        if(str1[i]!=' ' && str2[j]!=str1[i])
        {
            flag=1;
            continue;
        }
        if((str1[i]==' ' || i==len1-1) && !flag)
        {
            cnt++;
            j=-1;
        }
    }
    printf("%s %d\n",str2,cnt);
}

#include<stdio.h>
#include<string.h>
void dele(char *str,char c);
int main()
{
    char str[50]={0},c;
    gets(str);
    scanf("%c",&c);
    dele(str,c);
    printf("%s\n",str);
    return 0;
}
void dele(char *str,char c)
{
    int len=strlen(str),i,j;
    for(i=0;i<len;i++)
    {
        if(str[i]==c)
        {
            for(j=i;j<len-1;j++)
            {
                str[j]=str[j+1];
            }
            str[len-1]=0;
            len--;
            i--;
        }
    }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-20

第一道题:

代码:

#include <stdio.h>
void cal(int a,int b,char c){
int result=0;
if(c=='/'&&b==0){
printf("除数不能为0\n");
}else{
switch(c){
case '+': result = a+b;break;
case '-': result = a-b;break;
case '*': result = a*b;break;
case '/': result = a/b;break;
case '%': result = a%b;break;
}
printf("%d%c%d=%d\n",a,c,b,result);
}

}
void main(){
int a,b;
char c;
scanf("%d %d %c",&a,&b,&c);
cal(a,b,c);
}

运行:

第二道题:

代码:

#include <stdio.h>
#include <string.h>
void count(char *s,char *w){
int i=0,j=0,k=0,num=0;
char tw[8]; // 保存临时的单词

for(i=0;s[i];i++){
if(s[i]!=' '){
tw[j]=s[i];
j++;

}else{
for(k=0;k<j;k++){
if(w[k]!=tw[k]){
break;
}
}
if(k==j){
num++;
}
j=0; //开始下一个单词
}
    }
printf("%s %d\n",w,num);
}
void main()
{
    char string[100];
    char word[8];
    gets(string);
gets(word);
count(string,word);
}

运行:

第三道题:

代码:

#include <stdio.h>
#include <string.h>
void dele(char *str,char ch){
int i=0,j=0,n=0;
n = strlen(str);
for(i=0;i<n;i++){
if(str[i]==ch){
for(j=i+1;j<n;j++){
str[j-1]=str[j];
}
str[j-1]='\0';
n = strlen(str);
}
    }
printf("%s\n",str);
}
void main()
{
    char str[50];
    char ch;
int n=0;
    gets(str);
scanf("%c",&ch);
dele(str,ch);
}

运行:

Over!

第2个回答  2018-12-20
你好,我可以做这三个题哦,
可以留一下你的邮箱追问

也谢谢您