电子科技大学MOOC程序设计C&C++第五章指针课后作业小计

最大整数(25分) 题目内容:
输入3个整数a,b,c,用指针p=&a,q=&b,请用max指向最大整数并输出。输出按照如下格式输出: printf(“max=%d\n”,*pmax);
输入样例:
1,2,3
输出样例:
max=3

在这里插入代码片
#include<stdio.h>
#include<stdlib.h>
int main() {
   int a, b, c;
   scanf_s("%d,%d,%d", &a, &b, &c);
   int *p, *q, *pmax;
   p = &a;
   q = &b;
   pmax = &c;
    if (a > c)
         pmax = p;
   if (b > *pmax)
         pmax = q;
 printf("max=%d\n", *pmax);
 return 0;
 }
 题目内容: 删除字符串中连续的重复字符(25分)

功能:实现删除字符串中连续的重复字符(除字母和数字)。 输入为字符串,将字符串中连续重复的,非字母和数字的字符删去,然后输出处理后的字符串。要求用指针指向输入的字符串进行操作。
输入格式:
输入字符串最长50个字符,之后截断,只输出处理后的字符串。
输入样例

   1+++2==3
   
   输出样例:
   
   1+2=3

注意:尽量不用string库的函数处理,否则可能会出现错误扣分的情况(可能和网站编译系统有关)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
 char a[51];
 char b[51];
 gets_s(a, 50);
 char *p, *q;
 p = a;
 q = b;
 int i = 0,j=0;
 while (p[i] != '\0') 
 {
       if (p[i] >= 'a'&&p[i] <= 'z' || p[i] >= '0'&&p[i] <= '9')
         {
                  q[j] = p[i];
                   i++;
                   j++;
        }
       else
       {
                q[j] = p[i];
                int count = 0;
            while (p[i + 1] == p[i])
                 {
                  count++;
                    i++;
                 }
   i++;
   j++;
        }
  }
 for (int k= 0; k<j; k++)
 {
  printf("%c", q[k]);
 }
 return 0;

}

3.比较字符串是否相等(25分) 题目内容:编写程序,输入两个字符串,通过2个指针p和q分别指向这2个字符串,比较字符串是否相等。 要求不使用strcmp函数。
输入格式:string1回车string2回车 string1和string2最长为256,可能包含空格
输出格式:
相等输出: equal不等输出: unequal
输入样例:
string1string2
输出样例:
unequal

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
 char *p, *q;
 char buffer1[257], buffer2[257];
 gets_s(buffer1, 256);
 gets_s(buffer2, 256);
 int len1 = strlen(buffer1);
 int len2 = strlen(buffer2);
 if (len1 != len2)
  printf("unequal");
 else
 {
  p = buffer1;
  q = buffer2;
  int i = 0;
  int count = 0;
 while ((p[i] != '\0')&&(q[i] != '\0'))
  {
   if (p[i] != q[i])
   {
    count++;
    }
   i++;
  }
  if (count == 0)
   printf("equal");
   else
   printf("unequal");
 }
}
  1. 题目内容:编写程序,输入一个字符串,分别统计输出该字符串中 的字母个数和数字个数。要求用指针指向这个字符串进行处理。
    输入格式:
    字符串
    输出格式:
    英文逗号分隔的2个整数,第一个整数是字母个数,第二个整数的数字个数。
    输入样例:
    the day the month the year 123
    输出样例:
    21,3
#include<stdio.h>
#include<stdlib.h>

int main() {
char *p;
char buffer[1000];
gets_s(buffer,999);
p = buffer;
int count1 = 0, count2 = 0;
int i = 0;
while (p[i]!='\0')
{
     if (p[i] >= 'a'&& p[i] <= 'z' || p[i] >= 'A'&&p[i] <= 'Z')
                 count1++;
      if (p[i] >= '0' && p[i] <= '9')
      {
         count2++;
       }
 i++;
 }
printf("%d,%d", count1, count2);
return 0;
} 



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值