1127作业8(2)

21 篇文章 0 订阅

8.写一个 宏MIN,这个宏输入两个参数并返回较小的一个。

#define MIN(A,B) ((A) <= (B) ? (A) : (B))
另外,当你写下面代码时会发生什么事? least = MIN(*p++,b);
宏定义#define MIN(A,B) ((A) <= (B) ? (A) : (B))对MIN(*p++, b)的作用结果是:((*p++) <= (b) ? (*p++) : (b)) 这个表达式会产生副作用,指针p会作两次++自增操作。

9.找出题中错误,并解释

	void test1()
	{
		char string[10];
		char* str1 = "0123456789"//错误处
		strcpy(string, str1);
	}//char *strl 定义了一个字符型指针变量,string[10]只存放10 个字符,字符串“0123456789”有11个字符,包括“\0”,数组下标越界。

10.找出题中错误,并解释

	void GetMemory( char *p )  
	{  
		p = (char *) malloc( 100 );  
	}   //原来的函数只传递了p的内容而没有传递地址导致空间分配给p之后并未影响到str,str依旧没有空间可以用
//void GetMemory2(char **p) { *p=(char*)malloc(100); }
	void Test( void )   
	{  
		char *str = NULL;  
		GetMemory( str );   
		strcpy( str, "hello world" );  
		printf("%s", str);  
	}

11.输入一段字符串,无论是否有重复字母出现,都只打印出现过的小写字母,并按照小写字母顺序打印。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void Sorted(char strl[],int len)
    {
    int i , j;
    char c;
    for (i = 0;i < len - 1; i++)
        {
        for (j = 0;j < len - i -1;j++)
            {
            if (strl[j] > strl[j+1])
                {
                c = strl[j];
                strl[j] = strl[j+1];
                strl[j+1] = c;
                }
            }
        }
    }


void List(char *str,int length)
    {
    char strl[100];
    int i = 0,j = 0,k , l;
    int len;
    while ((str[i]!='\0')&&i < length)
        {
            strl[j] = '\0';
        if (str[i] >= 'a' && str[i] <= 'z')
            {
            for(k = 0 ; k < j ; k++)
            {
                for (l = 0 ; l < j ; l++)
                {
                    if(strl[k] == strl[l])
                    {
                        goto loop;
                    }
                }
            }
loop:          strl[j] = str[i];
               ++i;
               ++j;
            }
        else
            i++;
            strl[j] = '\0';
            
        }

    len = strlen (strl);
    Sorted(strl, len);
    puts(strl);

    }

int main(void)
    {

    char strl[100]={'\0'};
    int len;
    printf ("plz input sth:\n");
    gets (strl);
    len = strlen (strl);
    List (strl,len);
    return 0;
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GAMES101作业8是一个计算机图形学课程的作业项目。根据引用中提供的信息,该作业涉及到源代码和GitHub链接,供有兴趣的朋友自行尝试。而引用中给出了Rope类的一个成员函数simulateVerlet的实现代码,该函数用于模拟绳子的Verlet算法。该算法通过更新质点的位置和速度来模拟绳子的运动。具体的实现细节可以参考引用中的代码。 另外,根据引用中的说明,这个作业可能存在一些问题,因为作业PDF中的内容不完整。但是作者在终端运行了一些代码来安装必要的库。所以在尝试运行该作业前,建议先确保所需的库已经安装好。 总的来说,GAMES101作业8是一个涉及计算机图形学的作业项目,具体的内容和实现可以参考引用和引用[2]中的信息和代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【GAMES101】作业8 显式/半隐式欧拉与Verlet方法模拟绳子运动(含GIF)](https://blog.csdn.net/ycrsw/article/details/124565133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [GAMES101作业(08)- 质点弹簧系统(编译坑)](https://blog.csdn.net/weixin_43399489/article/details/122002171)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值