首页
学习
活动
专区
工具
TVP
发布

PTA题解 --- N个数求和(C语言

今天是PTA题库解法讲解的第二天,今天我们要讲解N个数求和,题目如下: 要解决这个问题,我们可以用C语言编写一个程序来处理和简化分数。程序的基本思路如下: 1....定义一个函数来计算两个数的最大公约数(GCD),用于分数的简化。 2. 读取输入的N个分数,每次读取两个整数作为分子和分母。 3. 定义两个变量来存储累加的分数的分子和分母。 4....    scanf("%d", &N);          long long sum_numerator = 0; // 累加的分数的分子     long long sum_denominator...= 1; // 累加的分数的分母     for (int i = 0; i < N; i++) {         long long numerator, denominator;        ...    if (sum_numerator % sum_denominator == 0) {         // 如果分子能整除分母,则只输出整数部分         printf("%lld\n"

7010

C语言用指针对10个数排序

例31:C语言用指针方法对10个整数按由大到小顺序排序。 解题思路:在主函数中定义数组,用来存放10个整数,定义int *型指针变量p指向a[0],定义函数sort将数组中的元素按由大到小排序。...排序函数: void sort(int x[],int n)//自定义排序函数  {   int i,j,k,t;//定义整型变量    for(i=0;i<9;i++)//外层for循环    {     ...);     p++;   }   printf("\n");//换行    return 0;//主函数返回值为0  } void sort(int x[],int n)//自定义排序函数  {   ...++); 在上一节小林说过,给指针变量赋的是地址,如下: int i,*p,a[10]; p=a; 但上述代码中却是这样赋值: int i,*p,a[10]; p=&a; 是因为我定义的a就是数组,在C语言中...C语言 | 用指针对10个数排序 更多案例可以go公众号:C语言入门到精通

2.6K2320
您找到你想要的搜索结果了吗?
是的
没有找到

C语言 | 用指向指针的指针对n个整数排序

例82:C语言用指向指针的指针的方法对n个整数排序并输出;要求将排序单独写成一个函数;n个整数在主函数中输入,最后在主函数中输出。...C语言源代码演示: #include//头文件  int main()//主函数  {   void sort(int **point,int number); //sort排序函数声明...    int i,number,data[20],**point,*pstr[20]; //定义变量    printf("输入要排序个数number:");//提示语句    scanf("%d"...=*(point+i);         *(point+i)=*(point+j);         *(point+j)=temp;       }     }   } } 编译运行结果: 输入要排序个数...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 更多案例可以go公众号:C语言入门到精通

1.4K22

N 个数

所以,要想找出序列中第 n 位对应的数字,我们的第一步应该是先去寻找出这个数字来源于哪个数字。...那么,要想找出序列中第 n 位对应的数位,我们的第一步应该是先去寻找出这个数位来源于哪个数字。 先来找规律。...对于长度为 6 的数字来说: 1、第一个数字是 100000,n = 1 、2、3、4、5、6 都是在这个数字上 2、第二个数字是 100001,n = 7、8、9、10、11、12 都是在这个数字上...根据上面的结论,n 是以 6 为单位不停的在长度为 6 的 100000 这个数字上累加 1 ,意味着 n 每隔 6 个数就来到下一个数字,那么将 n 对 6 取余后的数字就是它在这个数字上的顺序。...curNum 表示落在哪个数字上 len 表示这个数字的长度 count 表示在这个数字的第几个位置上 由此,这道题目就解决了,总结一下: 1、先找出 n 是落在长度为多少的数字上 2、再找出 n 落在哪个数字上

58810

希尔排序 C语言

我们首先来看直接插入排序,其基本思路是,一般先孤立这堆数字的第一个数,那么它自己一个就是有序了,再拿后面的数和它比较,找到大小位置合适的插进去,完了之后这一小堆还是有序的,再拿后面的来和前面的比较,找到合适的位置插进去...直接插入排序的劣势 但有一种情况是,假设是从小到大排序,前面已经排好了一万个有序数,到这10001个数的时候,恰好它是最小的那一个,那么就要和前面的数全部交换一次,,这就出现了交换距离过长的问题,这是我们不希望看到的...也就是说,我们要先对这一堆数进行预排序,具体操作是,先选定一个数interval(一般是数字的总数的一半)作为第一增量,然后把间隔为interval的数作为一个小组,对这个小组进行直接插入排序,然后缩小...代码 #include void insert(int a[],int n) { int i,temp,j,interval=n/2; while(interval>0)//和直接插入相比...{ for(i=interval;i<n;i=i+interval)//划分小组。 for(j=i;j>0;j=j-interval)//小组内进行直接插入排序

12720

C语言 | 希尔排序

例100:C语言实现希尔排序。  解题思路:希尔排序是插入排序的一种又称缩小增量排序,是直接插入排序算法的一种更高效的改进版本,希尔排序是非稳定排序算法。...C语言源代码演示: #include//头文件 int main()//主函数 {   void shsort(int s[],int n); //函数声明   int array[11...",array[i]);//输出排序后的10个数   }   printf("\n"); //换行   return 0;//函数返回值为0 } void shsort(int s[],int n) {...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线    C语言开发工具 VC6.0、Devc++、VS2019使用教程...更多案例可以go公众号:C语言入门到精通

1.2K42

C语言 | 选择排序

“要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例83:C语言用选择排序对10个数进行排序。...解题思路:选择排序是指第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾,,直到全部待排序的数据元素的个数为零...:\n");//提示语句 for(i=1;i<=10;i++)//输出排序后的数 { printf("%5d",array[i]); } printf("\n");//换行

1.2K52

C语言——冒泡排序

冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。...以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。...{ if (arr[j] > arr[j+1])//这是升序排法,前一个数和后一个数比较,如果前数大则与后一个数换位置 { tem = arr[j]; arr[j] =...\n"); for (i = 0; i < 10; i++) //接收用户的数值 { scanf("%d", &arr[i]); } printf("排序前的数组>"); for (i...= 0; i < 10; i++) { printf("%d ", arr[i]); } printf("\n排序后的数组>"); Bubble_sort(arr, 10); for (

1.2K10

C语言 | 选择排序

例83:C语言用选择排序对10个数进行排序。...解题思路:选择排序是指第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾,,直到全部待排序的数据元素的个数为零...C语言源代码演示: #include//头文件  int main()//主函数  {   int i,j,temp,array[11];//定义变量    printf("请输入10...:\n");//提示语句    for(i=1;i<=10;i++)//输出排序后的数    {     printf("%5d",array[i]);   }    printf("\n");//换行...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 更多案例可以go公众号:C语言入门到精通

1.4K22
领券