Так что я некоторое время работаю над этими программами. Они для курса, который я беру. Я работал над ними некоторое время, и я застрял сейчас. Я немного нуб, когда дело доходит до C, и я не ожидаю чего-то слишком сложного (я нахожусь на уровне многомерных массивов, строк и рекурсии и всех этих забавных вещей). Вот две проблемы, с которыми я сейчас сталкиваюсь. Любая помощь очень и искренне ценится. (Я прошу прощения, если мой английский не является хорошим, его не мой первый язык)Нужна помощь для заданий
ПЕРВАЯ ПРОГРАММА:
Написать программу с рекурсивной функцией, которая принимает целое число п в качестве параметра и возвращает сумму из первых n элементов в следующей последовательности, ½ + 2/3 + ¾ .... + n/n + 1
Имя функции должно быть суммой. Распечатайте результат в главном окне.
Эта программа почти закончена, мне просто нужно выяснить, как сделать ее рекурсивной. Мой прогресс в 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--;
}
}
ВТОРАЯ ПРОГРАММА (один я действительно REAAAAAAALY нужна помощь): Я сделал Imgur альбом с скрин-шоты, чтобы не делать это слишком долго, вот что мне нужно сделать: теория http://imgur.com/a/q5Ein
Set в общем, сбивает с толку, и у меня есть некоторый прогресс в этом. Моя проблема прямо сейчас - я понятия не имею, с чего начать на подмножестве A в части B (и т. Д.), И я не знаю, как я буду выводить Trues и Falses в качестве символов. Я подумывал сделать еще один огромный цикл «за» и проверить индекс для вывода буквы, но это кажется несколько непрактичным. У меня также нет CLUE, как 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
умножу признателен за любую помощь вы можете предложить. :)
Пожалуйста, ваш код _in в question_, а не снаружи. – Arc676
Это не способ задать ваши вопросы. Пожалуйста, сломайте его. Один пост для одного основного вопроса. А затем включите любой код, который вы делали до сих пор. – itsols
'total + = n/(n + 1)': 'n/(n + 1)' всегда становится '0'. – BLUEPIXY