Вычислить и напечатать сумму отрицательных одинаковых элементов.
#include <stdio.h>
#define N 18
int main()
{
int a[N] = {-5, -5, 6, 13, 10, 16, -18, -18, 11, 17, -3, -3, -7, -7, 9, 31, -4, -4};
int checked[N] = {0};
int total = 0;
for(int i = 0; i < N - 1; i++)
{
if(a[i] < 0)
{
int sum = a[i];
for(int j = i + 1; j < N; j++)
{
if(!checked[j] && a[i] == a[j])
{
sum += a[j];
checked[j] = 1;
}
}
if(sum != a[i])
{
total += sum;
}
}
}
(total) ? printf("total sum %d", total)
: printf("not found");
return 0;
}
#include <stdio.h>
#define N 18
int main()
{
int a[N] = {-5, -5, 6, 13, 10, 16, -18, -18, 11, 17, -3, -3, -7, -7, 9, 31, -4, -4};
int checked[N] = {0};
int total = 0;
for(int i = 0; i < N - 1; i++)
{
if(a[i] < 0)
{
int count = 1;
for(int j = i + 1; j < N; j++)
{
if(!checked[j] && a[i] == a[j])
{
count++;
checked[j] = 1;
}
}
if(count > 1)
{
total += a[i] * count;
// Тут сложение можно заменить умножением
printf("number %d count %d sum %d\n", a[i], count, a[i] * count);
}
}
}
(total) ? printf("total sum %d", total)
: printf("not found");
return 0;
}
int k = 30, m = 560, n = 99;
int* a[] = { &k, &m, &n };
for (int i = 0; i < std::size(a) - 1; ++i)
{
for (int j = 0; j < std::size(a) - i - 1; ++j)
{
if (*a[j] < *a[j + 1])
{
std::swap(*a[i], *a[i + 1]);
}
}
}
std::cout << k << " < " << m << " < " << n;
struct string InputToText()
{
char character = EOF;
struct string text = { .pointer = malloc(sizeof(char)), .length = 1 };
while ((character = getchar()) != EOF)
{
text.pointer[text.length - 1] = character;
text.pointer = realloc(text.pointer, ++text.length);
}
text.pointer[text.length - 1] = '\0';
// printf("\Проверка корректного чтения:%s %d\n\n", text.pointer, strlen(text.pointer));
if(feof(stdin)) clearerr(stdin);
return text;
}
#define ENTER 10
while ((character = getchar()) != ENTER)
//...
if(feof(stdin)) clearerr(stdin);
-0.1 0.386718
0.0 0.400000
0.1 0.413278
0.2 0.426212
FILE* fptr;
float arg = 0.0;
float res = 0.0;
fptr = fopen("my.txt", "r");
if(fptr != NULL)
{
while(fscanf(fptr, "%f %f", &arg, &res) != EOF)
{
if(arg == 0.0)
{
printf("f(%.1f) : %f\n", arg, res);
}
}
}
fclose(fptr);
#include<stdio.h>
int main(int argc, char* argv[])
{
if(argc > 0)
{
for(int i = 0; i != argc; ++i)
printf("%s\n", argv[i]);
}
}
Когда заврешается выполнение функции?
что значить Звёздочка после типа?
Для чего после double стоит *, ведь это символ разыменования, а что мы разыменуем?
Зачем перед malloc стоит (double*)
#include <stdio.h>
#include <string.h>
#define BUF 128
void doit(char* buf, char* cmd)
{
char command[BUF] = {0};
char cmdbuf[BUF] = {0};
FILE* nextfp;
char* filename = strtok(buf, " ");
while(filename)
{
sprintf(command, "%s %s", cmd, filename);
if((nextfp = popen(command, "r")) != NULL)
{
while(fgets(cmdbuf, BUF, nextfp) != NULL)
{
puts(cmdbuf);
}
pclose(nextfp);
}
filename = strtok(NULL, " ");
}
}
void pipeline(FILE* fp, char* cmd)
{
char buf[BUF] = {0};
while(fgets(buf, BUF, fp) != NULL)
{
doit(buf, cmd);
}
}
int main()
{
FILE *check = popen("ls *.c", "r");
if (check != NULL)
{
pipeline(check, "cat");
pclose(check);
}
return 0;
}
Больше всего я тут не понял эти моменты: _Bool
Что значит _Bool это стиль такой? Или другой bool тип данных? Не понятно...
f F форматирует число с плавающей запятой в виде [-]d.d, где d - произвольные десятичные числа
double d, l, s, pi; /*Объявляем пременные*/
int r = 0;
pi = 3.14159;
printf("Enter radius of your circle:\n");
scanf("%d", &r);
printf("%.2f is the diameter of your circle\n", d = 2 * r); // %.[кол-во знаков]f
printf("%.2f fis the perimeter of your circle\n", l = 2 * pi * r);
printf("%.2f is the square of your circle\n", s = pi * (r * r));
Enter radius of your circle: 10
20.00 is the diameter of your circle
62.83 fis the perimeter of your circle
314.16 is the square of your circle
//Searsh Red nearly
if (rd[0])
{
for (int i = 0; i < rSize; i++)
for (int j = 0; j < rSize - 1; i++)
//...
//Searsh Green nearly
Аналогично
//Searsh Blue nearly
...
for (int k = 0; k < 8; k++)
if (red[i].cot[k] = red[j].ID)
kot = true;
//...
else if (a = b)
//...