Для домашней работы мне нужно создать программу, которая:
Получить 2 строки (в формате char
, макс. 100 символов) из scanf
(например: {1, 2,3, 4} и {0,1, 2,0})
Возьмите числа между пробелами (сейчас я использую strtok
)
Преобразовать их в double
(для этого я использую strtod
)
Сделать скалярное произведение
Прежде чем скопировать мой настоящий код, я хочу спросить вас, ребята, знаете ли вы, как легко освоить этот тип манипуляции;мой экзамен будет таким: беру струны, разбираю их, но мне очень сложно научиться.И человек, и моя книга упрощены, и я не могу понять.
Спасибо всем, я надеюсь, что вы можете помочь мне, прежде чем я определенно буду без ума от этого.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//TODO TAKE ARGOMENTS
//TODO EXTRACT THE NUMBERS
//TODO CONVERT THEM TO DOUBLE
//TODO DO THE SCALAR PRODUCT
//prototypes:
unsigned manipulate_string(char vet[100]);
//functions:
unsigned manipulate_string(char vet[100]){
const char s[4] = " ,{}";
double vfinal[100];
char *token;
char *stringPtr;
char *todPtr
//get the first token
token = strtok(vet, s);
//walk through other tokens
while( token != NULL ) {
printf( " %s\n", token );
token = strtok(NULL, s);
double d = strtod(vet, &stringPtr);
vfinale[100]=d
return d;
}
}
int main () {
char vet1[100];
char vet2[100];
double vet1f[100];
double vet2f[100];
const char s[4] = " ,{}";
char *token;
printf("inseert first vector\n");
scanf("%[^\n\r]", vet1);
printf("insert second vector\n");
scanf("%[^\n\r]", vet2);
vet1f[100]=manipulate_stringvet1[100]);
vet2f[100]=manipulate_string(vet2[100]);
printf("the first one is\n",vet1f);
printf("the second one is\n",vet2f);
}
Теперь код предназначен только для просмотра манипуляции со строкой, после, не думаю, что яможет возникнуть проблема с выполнением функции, которая выполняет скалярное произведение.
Спасибо, еще раз, за помощь и время, потраченное на это.