Closed. This question needs to be more
focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过
editing this post专注于一个问题。
4年前关闭。
因此,我从事这些程序已有一段时间了。他们是我上的一门课程。我从事这些工作已有一段时间了,现在我被困住了。对于C语言,我有点菜鸟,而且我并不期望遇到任何困难(我处于multidim数组,字符串和递归以及所有其他有趣的东西)。这是我目前正在努力解决的两个问题。任何帮助都将由衷地感谢。 (如果我的英语不好,不是我的母语,我也表示歉意)
第一个程序:
用递归函数编写一个程序,该程序将整数n作为参数,并按以下顺序返回前n个元素的和,即½+ 2/3 +¾…。 + n / n + 1
函数的名称应为sum。在main中打印结果。
该程序几乎完成,我只需要弄清楚如何使其递归即可。这篇文章结尾处我在pastebin中的进度。我真的想不出一种递归的方法。
#include <stdio.h>
int sum (int n);
//**************************************************************
// NAME: main
// PURPOSE: get n's value and call sum function, print result
// PASSED: none
// RETURNED: none
//**************************************************************
int main () {
int n, add;
printf("Enter a number: ");
scanf("%d", &n);
add=sum(n);
printf("The result is %d.", add);
}
//*************************************************
// NAME: sum
// PURPOSE: calculate the sum of n/n+1 until n=0
// PASSED: int n
// RETURNED: none
//*************************************************
int sum (int n) {
int i, total=0;
for (i=0; i<n; i++) {
total+=n/(n+1);
n--;
}
}
第二个程序(我真的很需要帮助):我制作了一张带屏幕截图的imgur专辑,以免使其过长,这是我需要做的:
http://imgur.com/a/q5Ein
总体而言,集合论令人困惑,我对此有所进步。我现在的问题是我不知道从A(是B(等)部分)的子集开始,也不知道如何将True和False输出为字符。我当时正在考虑制作另一个巨大的“ for”循环并检查索引以输出字母,但这似乎不切实际。我也不知道typedef如何为所有这些工作。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "simpio.h"
#include "strlib.h"
char C;
//char array1[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
//char array2[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
bool array1[26] = {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false};
bool array2[26] = {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false};
bool union_array[26];
bool intersect_array[26];
char A[26];
char B[26];
bool unions (bool array1[26], bool array2[26]);
bool intersection (bool array1[26], bool array2[26]);
void contain(char A[], char B[]);
int main () {
int x=0;
printf("\nEnter the values of A. Enter a \".\" when done:\n");
do {
scanf(" %c", &A[x]);
if (A[x]=='.') {
A[x]='\0';
break;
}
x++;
} while (A[x]!='.' && x!=26);
x=0;
printf("\nEnter the values of B. Enter a \".\" when done:\n");
do {
scanf(" %c", &B[x]);
if (B[x]=='.') {
B[x]='\0';
break;
}
x++;
} while (B[x]!='.' && x!=26);
for (x=0;x<26;x++) {
if (A[x]=='a') {array1[0]=true;}
if (A[x]=='b') {array1[1]=true;}
if (A[x]=='c') {array1[2]=true;}
if (A[x]=='d') {array1[3]=true;}
if (A[x]=='e') {array1[4]=true;}
if (A[x]=='f') {array1[5]=true;}
if (A[x]=='g') {array1[6]=true;}
if (A[x]=='h') {array1[7]=true;}
if (A[x]=='i') {array1[8]=true;}
if (A[x]=='j') {array1[9]=true;}
if (A[x]=='k') {array1[10]=true;}
if (A[x]=='l') {array1[11]=true;}
if (A[x]=='m') {array1[12]=true;}
if (A[x]=='n') {array1[13]=true;}
if (A[x]=='o') {array1[14]=true;}
if (A[x]=='p') {array1[15]=true;}
if (A[x]=='q') {array1[16]=true;}
if (A[x]=='r') {array1[17]=true;}
if (A[x]=='s') {array1[18]=true;}
if (A[x]=='t') {array1[19]=true;}
if (A[x]=='u') {array1[20]=true;}
if (A[x]=='v') {array1[21]=true;}
if (A[x]=='w') {array1[22]=true;}
if (A[x]=='x') {array1[23]=true;}
if (A[x]=='y') {array1[24]=true;}
if (A[x]=='z') {array1[25]=true;}
}
for (x=0;x<26;x++) {
if (B[x]=='a') {array2[0]=true;}
if (B[x]=='b') {array2[1]=true;}
if (B[x]=='c') {array2[2]=true;}
if (B[x]=='d') {array2[3]=true;}
if (B[x]=='e') {array2[4]=true;}
if (B[x]=='f') {array2[5]=true;}
if (B[x]=='g') {array2[6]=true;}
if (B[x]=='h') {array2[7]=true;}
if (B[x]=='i') {array2[8]=true;}
if (B[x]=='j') {array2[9]=true;}
if (B[x]=='k') {array2[10]=true;}
if (B[x]=='l') {array2[11]=true;}
if (B[x]=='m') {array2[12]=true;}
if (B[x]=='n') {array2[13]=true;}
if (B[x]=='o') {array2[14]=true;}
if (B[x]=='p') {array2[15]=true;}
if (B[x]=='q') {array2[16]=true;}
if (B[x]=='r') {array2[17]=true;}
if (B[x]=='s') {array2[18]=true;}
if (B[x]=='t') {array2[19]=true;}
if (B[x]=='u') {array2[20]=true;}
if (B[x]=='v') {array2[21]=true;}
if (B[x]=='w') {array2[22]=true;}
if (B[x]=='x') {array2[23]=true;}
if (B[x]=='y') {array2[24]=true;}
if (B[x]=='z') {array2[25]=true;}
}
printf("\nFor the sets: \n");
printf("A = {");
for (x=0; x<sizeof(A); x++) {
if (A[x]=='\0') {break;}
printf("%c, ", A[x]);
}
printf("\b\b}\n");
printf("B = {");
for (x=0; x<sizeof(B); x++) {
if (B[x]=='\0') {break;}
printf("%c, ", B[x]);
}
printf("\b\b}\n");
unions(array1, array2);
intersection(array1, array2);
}
bool unions (bool array1[26], bool array2[26]) {
int x=0;
for (x=0;x<26;x++) {
if (array1[x]==true || array2[x]==true) {union_array[x]=true;}
}
printf("A Union B = {");
for (x=0; x<26; x++) {
if (union_array[x]==true) {printf("T, ");}
if (union_array[x]==false) {printf("F, ");}
}
printf("\b\b}\n\n");
}
bool intersection (bool array1[26], bool array2[26]) {
int x=0;
for (x=0;x<26;x++) {
if (array1[x]==true && array2[x]==true) {intersect_array[x]=true;}
}
printf("A Intersect B = {");
for (x=0; x<26; x++) {
if (intersect_array[x]==true) {printf("T, ");}
if (intersect_array[x]==false) {printf("F, ");}
}
printf("\b\b}\n");
}
这是我的代码的文本转储:
http://pastebin.com/nZugygkJ
我将不胜感激您可以提供的任何帮助。 :)
我是一名优秀的程序员,十分优秀!